[英]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.