Xin giúp đỡ về code xóa lệnh chờ khi đạt TP

Thảo luận trong 'Lập trình MQL - Expert Advisor - Indicator' bắt đầu bởi willcyan, 10/03/2019.

  1. Chào cả nhà, em thuộc loại zero-programming background, em tự mày mò tập tễnh tự học code trên mạng. Hiện tại em bị kẹt ở đoạn xóa hết lệnh chờ khi hit TP, em lay hoay mãi nhưng ko có ý tưởng như thế nào, em code thì nó xóa lệnh trade chờ nếu là trade đầu tiên nhưng đến trade 2, 3, 4 thì đặt lệnh chờ xong nó xóa liền luôn, mong cả nhà vào giải ngố cho em xíu ạ


    Mã:
    void ManageTrades()
    {
       int total = OrdersTotal();
       int CurrentType, CurrentTicket;
       if (total >= 0)
       {
          for(int cnt=total;cnt>=0;cnt--)
          {
             if(OrderSelect(cnt,SELECT_BY_POS))
             {
                if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)
                {
                   CurrentType = OrderType();
                   CurrentTicket = OrderTicket();
                   if (total < 2 )        //check cho nay         
                   {
                      if (CurrentType == OP_BUYSTOP || CurrentType == OP_SELLSTOP)
                      {
                         OrderDelete(CurrentTicket);
                      }
                  }
               }
              }
           }
        }
    }
     
    Mô Hình Tam Giác Cân - Phương Pháp Và Mẹo Giao Dịch Kiếm Lợi Nhuận
    George Soros - Tư Duy Và Triết Lý Giao Dịch Của Một Huyền Thoại Đầu Cơ
    Hình ảnh khóa học Làm Sao Để Trở Thành Trader Giỏi Hơn - Dr.Alexander Elder - 07/01/2020
    Các Triệu Phú Trader Nghĩ Gì Và Trade Như Thế Nào?
    Phân Tích Vàng & Forex Theo Price Action Tuần 13/01-17/01
    10 Quy Tắc Bất Di Bất Dịch Của Một Price Action Trader
    Mô Hình Bị Vỡ Và Cách Kiếm Tiền Từ Các Giao Dịch Thất Bại
    Cách Học Trade Hiệu Quả Qua Chia Sẻ của Brett Steenbarger - Chuyên Gia Tâm Lý Thị Trường
    Đang tải...
  2. Ae thiện lành ai bít hộ lão ấy cái nèo
     
  3. + if (total >= 0) để làm gì sao ko phải là if (total > 0)
    + if (total < 2 ) thì mới xóa lệnh chờ thì khi còn 1 lệnh nó sẽ ko xóa mà chỉ xóa từ lệnh 2 trở đi
    + if (total < 2 ): biến total được gọi ngay từ đầu bằng tổng số lệnh và ko hề được cập nhật
     
  4. Cùng chung ý tưởng ^^.
    Số là mình muốn xóa một lệnh chờ khi lệnh thị trường đã có TP thì phải code như thế nào.
    Mình đặt một lệnh Buy và 1 lệnh Stoploss, khi lệnh buy có TP thì mình code để nó tự động xóa lệnh chờ Stoploss đi.
    Nhờ anh em giúp.
     
  5. Xóa lệnh chờ hay xóa StopLoss hả cụ? Cụ hỏi chẳng rõ gì cả.
    + Xóa lệnh chờ: Đặt điều điều kiện OrderTakeProfit() của lệnh Buy > 0 thì OrderDelete cái lệnh chờ kia đi là được mà.
    + Xóa StopLoss: khả năng cụ không có ý này.
     
  6. 1, Giả sử đặt lệnh 01 Buy và 01 OrderSend(SellStop). Khi lệnh Buy đạt TP thì xóa lệnh Sellstop. Đây là ý của em ^^.

    2,Ordertakeprofit: Returns take profit value of the currently selected order.
    Theo như bác mà Ordertakeprofit>0 nó là lợi nhuận hiện tại của lệnh chứ ko phải lệnh đạt được TakeProfit, tức là OrderTakefrofit<Takeprofit của lệnh.

    3, Em hỏi ngu tý:
    TH1:
    Ontick()
    {
    - If(ko có lệnh)
    đặt lệnh Buy, SellStop.
    - if(Lệnh Buy đạt TP)
    Xóa lệnh SellStop
    }
    => Nếu sắp xếp như vậy thì ko bao giờ xóa được lệnh Sellstop do luôn luôn có lệnh Buy chưa đạt TP.
    TH2:
    Ontick()
    {
    - if(Lệnh Buy đạt TP)
    Xóa lệnh SellStop
    - If(ko có lệnh)
    đặt lệnh Buy, SellStop.
    }
    => Làm thế nào để lấy được ticket của lệnh Buy và Sellstop của lượt trước đó để xét đạt lợi nhuận hay chưa của lệnh Buy và xóa của lệnh Sellstop.

    Em mới tập nên hỏi hơi ngu ngơ, các bác có kinh nghiệm cứ tặng gạch đá để mong một ngày được ngồi ném gạch như các bác.
     
  7. Migen

    Migen

    37
    86
    Mình cũng thuộc dạng không biết viết code, hồi đầu cũng phải tìm code trên diễn đàn và nhờ các bác đi trước chỉ giáo, giúp đỡ. Từ đợt mình đăng ký xài fxDreema để làm mindmap (sơ đồ chiến lược) rồi xuất code ra xài thấy tiện hẳn. Hơi mất công học cách lập sơ đồ nhưng đỡ hơn mò code. Bác thử ngó trang fxDreema xem sao, giờ phải xài lợi thế mới đỡ mệt .... chứ nghĩ tới đoạn mày mò code là em cũng ái ngại.
     
    Cafe ForexSantafe bài này.
  8. Cảm ơn bác, nhìn có vẻ nó là cái e đang cần. Đã thường dùng nên Bác cho thêm một vài ý về hướng dẫn sử dụng để em tìm hiểu cho dễ.
    Cảm ơn Bác nhiều
     
  9. vn4xgr

    vn4xgr

    261
    121
    Đại khái là thuật toán sẽ như sau:

    1. nếu chưa buy và chưa sellstop, đặt lệnh buy, rồi đặt selstop.
    2. nếu buy, kiểm tra xem đã có sellstop chưa, nếu chưa có thì sellstop
    3. khi nào buy TP, thì chỉ còn sellstop, thế nên xóa lệnh.

     
  10. Cái này dùng mẹo chút.
    Với lệnh BUY:
    + Nếu Bid > TP - 50*Point thì xóa Pending. (xóa trước khi lệnh đạt TP)
    + Nếu Bid < TP - 50*Point thi mở lệnh Peding .

    :))))))
     
  11. minhnq

    minhnq

    1,611
    3,881

    Giả sử bạn vào lệnh buy tại giá X, lệnh sellstop vào đồng thời tại vị trí (X - GAP) -------------- GAP là khoảng cách giữa lệnh buy và lệnh sellstop của bạn. Bạn đặt OrderComment() của lệnh sellstop ví dụ là "SS" để chọn sau này.

    Sau đó, bạn chỉ việc kiểm tra nếu: Ask > (OrderOpenPrice() + GAP + TP) thì OrderDelete. Khi đó đương nhiên lệnh buy của bạn cũng TP đồng thời.
     
    Bonmua bài này.
  12. Cách này hay đấy, mưu mẹo chút ^^. Em làm tiếp mắc lain nhờ bác.
     
    Tôi Là Trader bài này.
  13. Em cũng làm như ý bác là nếu Bid>TP của buy thì xoá lệnh SellStop nhưng ko xoá dc. Để e về nhà post max code cho bác xem nó sai ở đâu. Thanks bác
     
  14. Nếu Buy = 0 va sellstop = 1 thì xoa sellstop
     

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

  • Trieu Vu trong Trao đổi - Chia sẻ về Trading tổng quát 20,737 Xem / 360 Trả lời
  • NguyênA trong Quyền chọn Nhị phân - Binary Options 36,482 Xem / 102 Trả lời
  • Babydog2512 trong Chuyện bên lề 3,462 Xem / 20 Trả lời
  • anhnguyen14 trong Quyền chọn Nhị phân - Binary Options 45,213 Xem / 2,578 Trả lời
  • Đang tải...

    Broker được cấp phép

    XTB
    Infinox Capital Ltd.
    FXCM
    EightCap
    SMInvest
    FBS
    AETOS
    FXTM
    OlympTrade
    OctaFX
    LiteForex
    Đang tải...