簡體   English   中英

如何使用 OrderModify() 修改所有當前打開的 position 的獲利?

[英]How do i modify TakeProfit of all current open position using OrderModify()?

我已經開設了多達五筆買入交易,他們各自的獲利了結。 我想將前四次買入交易的止盈更改為第五次買入交易的止盈。 modifyAllBuyOrdTP()是為修改止盈而創建的 function,而findTpL_BuyOrd() function 將獲得剛剛完成的最后一筆交易的止盈。 它在策略測試器中不起作用。 我將感謝任何可以幫助我解決這個問題的人。 先感謝您。

void modifyAllBuyOrdTP(){
       
       if(CountTradesBuy()>=2){
          for(int l_pos_4 = OrdersTotal() - 1; l_pos_4 >= 0; l_pos_4--)
          {
             OrderSelect(l_pos_4, SELECT_BY_TICKET);
             if(OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber)
                continue;
             if(OrderTakeProfit() == findTpL_BuyOrd())
                continue;
             if(OrderStopLoss() == 0 && OrderTakeProfit() != findTpL_BuyOrd() && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){
               if(OrderType() == OP_BUY){
                   ModifyStopsByPrice(OrderTicket(),0,findTpL_BuyOrd());//Print(" b tp ",findTpL_BuyOrd());
               }
             }
          }
      }
   }
    
double findTpL_BuyOrd(){
   double l_ord_TP = 0;
      for(int l_pos_4 = OrdersTotal() - 1; l_pos_4 >= 0; l_pos_4--)
      {
         OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES);
         if(OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber)
            continue;
         if(OrderTakeProfit() == 0)
            continue;
         if(OrderTakeProfit()!=0 && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){
           if(OrderType() == OP_BUY){
               l_ord_TP = OrderTakeProfit();
               break;
           }
         }
      }
  return l_ord_TP;
}

modifyAllBuyOrdTP() function 中,如果您對它們進行迭代,您應該通過SELECT_BY_POS訂購 select 訂單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM