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

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

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

willcyan

Member
20
6
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);
                  }
              }
           }
          }
       }
    }
}
 

Giới thiệu sách Trading hay
Mô Hình Biểu Đồ - Phương Pháp Hiệu Quả Để Tìm Kiếm Lợi Nhuận

Được xem là cẩm nang về mô hình biểu đồ của các nhà đầu tư, giao dich tài chính toàn cầu và là kiến thức bắt buộc phải nắm về Phân Tích Kỹ Thuật
+ 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
 
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.
 
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.
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.
 
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.
 
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.
 
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
 
Đạ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.

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.
 
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 .

:))))))
 
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.


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.
 
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.
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
 

BÌNH LUẬN MỚI NHẤT

  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 1,192 Xem / 71 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 294 Xem / 20 Trả lời
  • ngoi_sao_co_doc trong Phân tích Forex - Vàng - Hàng hóa 23,992 Xem / 82 Trả lời
  • Quíc Óp trong Phân tích Forex - Vàng - Hàng hóa 195 Xem / 3 Trả lời
  • Berkeley trong Phân tích Forex - Vàng - Hàng hóa 105 Xem / 2 Trả lời
  • LuTienSinh trong Phân tích Forex - Vàng - Hàng hóa 123 Xem / 3 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 234 Xem / 9 Trả lời
  • AdBlock Detected

    We get it, advertisements are annoying!

    Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

    Back
    Bên trên