[Nhờ Vả] Cần sửa code giúp

Thảo luận trong 'Lập trình MQL - Expert Advisor - Indicator' bắt đầu bởi linhlinh, 15/05/2017.

  1. chào các Bác trong diễn đàn
    Bác nào sửa giúp em code này để nó chỉ thực hiện 1 giao dịch trên 1 nến (với bất kỳ khung thời gian )
    Em cảm ơn .
    Chúc các bác kiếm thật nhiều pipipipipppppppppssssssss.......

    extern int MagicNumber=10001;
    extern double Lots =0.1;
    extern double StopLoss=5;
    extern double TakeProfit=2;
    extern int TrailingStop=0;
    extern int Slippage=2;
    //+------------------------------------------------------------------+
    // expert start function
    //+------------------------------------------------------------------+

    int start()
    {
    double MyPoint=Point;
    if(Digits==3 || Digits==5) MyPoint=Point*10;
    double TheStopLoss=0;
    double TheTakeProfit=0;
    if( TotalOrdersCount()==0 )

    {
    int result=0;
    if(xx) Here is your open Sell rule
    {
    result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Bid_Ask",MagicNumber,0,Blue);
    if(result>0)
    {
    TheStopLoss=0;
    TheTakeProfit=0;
    if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
    if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
    OrderSelect(result,SELECT_BY_TICKET);
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
    }
    return(0);
    }
    if(zz) // Here is your open Sell rule
    {
    result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Bid_Ask",MagicNumber,0,Red);
    if(result>0)
    {
    TheStopLoss=0;
    TheTakeProfit=0;
    if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
    if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
    OrderSelect(result,SELECT_BY_TICKET);
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
    }
    return(0);
    }
    }
    for(int cnt=0;cnt<OrdersTotal();cnt++)
    {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()<=OP_SELL &&
    OrderSymbol()==Symbol() &&
    OrderMagicNumber()==MagicNumber
    )
    {
    if(OrderType()==OP_BUY)
    {
    if(TrailingStop>0)
    {
    if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
    {
    if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
    return(0);
    }
    }
    }
    }
    else
    {
    if(TrailingStop>0)
    {
    if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
    {
    if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
    return(0);
    }
    }
    }
    }
    }
    }
    return(0);
    }
    int TotalOrdersCount()
    {
    int result=0;
    for(int i=0;i<OrdersTotal();i++)
    {
    OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
    if (OrderMagicNumber()==MagicNumber) result++;
    }
    return (result);
    }
     

    Giới thiệu sách Trading hay
    Giao Dịch Theo Xu Hướng Để Kiếm Sống

    Sách chia sẻ chiến lược giao dịch, tâm lý, phương pháp quản lý vốn thực chiến của Trader 18 năm kinh nghiệm giao dịch theo xu hướng
    ✅ Tất Tần Tật Về DRAWDOWN - Mức Sụt Giảm Tài Khoản Tối Đa | TraderViet
    ✅ 4 Chỉ Báo Tốt Nhất Để Xác Định Tín Hiệu Phân Kỳ | TraderViet
    Điểm Nóng Forex Tuần 26-30/9 ✅ - Biến Động Cao Liệu Có Tiếp Diễn?! | TraderViet
    ✅ Tất Tần Tật Về Các Loại Cản Trader Cần Nắm | TraderViet
    ✅ Để Nằm Trong Top 5% Trader Giỏi Nhất, Hãy Làm Những Việc 95% Còn Lại Không Làm | TraderViet
    ✅ Phân Tích VÀNG-FOREX-BITCOIN Tuần 02-08/10 Theo Phương Pháp WYCKOFF | TraderViet
    ✅ Tất Tần Tật Về Reflation Trade (Giao Dịch Tái Hồi Phục) | TraderViet
    ✅ "Nguyên Liệu" Bí Mật Còn Thiếu Trong Công Thức Trở Thành Full-time Trader Thành Công | TraderViet
    Đang tải...
  2. Bạn chỉ cần đặt giá trị là if(open) là được,nếu bạn để nến là close thì 1 cây nến nó sẽ vào nhiều lần..
     
    linhlinhDuongHuy bài này.
  3. fx9327

    fx9327

    375
    496
    Ý của bạn là mỗi nến mở một lệnh hay chỉ mở một lệnh trong cả quá trình vậy @linhlinh ?
     
    linhlinhDuongHuy bài này.
  4. là mỗi nến mở 1 lệnh
    các bác sửa giúp em với
     
  5. bác sửa luôn giúp em với
    code trên là em lấy trên web nên k biết sửa chỗ nào
    Green Pips
    ahihi
     
  6. Taifx

    Taifx

    189
    821
    Code này chưa có logic xử lý điều kiện vào lệnh nên yêu cầu hỗ trợ của bạn sẽ gây ra lỗi khác khi bạn ráp điều kiện vào lệnh vô code đó nha.

    Để làm được theo như kỳ vọng của bạn thì tạo thêm 1 biến để chứa giá trị cây nến mà bạn vào lệnh cuối cùng (theo phút là chắc nhất) và trong điều kiện vào lệnh thì bạn kiểm tra thêm điều kiện này là ok.

    Nếu bạn biết code chút chút thì mò tài liệu hướng dẫn của MQL4 là ra hà, cách lấy giá trị phút của cây nến. Ngược lại bạn không biết code thì đặt hàng luôn cho người khác code, đừng ráng code mà đốt tiền vì không kiểm soát hết logic thực thi của EA.
     
    linhlinh bài này.
  7. cảm ơn các bác
    Green Pips
    :D:D:D:D:D:D:D:D:D
     
  8. N3TH

    N3TH

    17
    12
    Bác thêm đoạn code này trước các lệnh BUY/ SELL nhé

    //--- go trading only for first tiks of new bar
    if(Volume[0]>1) return;
    //--- get orders
    while(IsTradeContextBusy())
    Sleep(100);
     
    linhlinh bài này.

Bình luận mới nhất

  • nguyen001 trong Quyền chọn Nhị phân - Binary Options 1,384 Xem / 4 Trả lời
  • Trinh Phat trong Phân tích Chứng khoán Việt Nam 70,589 Xem / 755 Trả lời
  • Tiền Ăn Sáng trong Phân tích Forex - Vàng - Hàng hóa 4,596 Xem / 133 Trả lời
  • Ruby84 trong Phân tích Bitcoin - Altcoins - Cryptocurrency 2,384 Xem / 63 Trả lời
  • anh nhu trong Sách Trading - Tài liệu Trading 189,422 Xem / 1,441 Trả lời
  • Đang tải...
    Đang tải...
    0