Трейлинг стоп для всех ордеров

 

Привет,

проблема есть несколько ордеров на бай и на сел надо сделать трейлинг стоп но для все ордеров (прибыльних и убыточных )

void ProfitBuy()
{
int i, TotalOrder = OrdersTotal();
bool res;

for (i = TotalOrder-1; i >= 0; i--)
 {
  if(OrderSelect(i, SELECT_BY_POS) && OrderType()==OP_BUY && OrderSymbol() == _Symbol && OrderMagicNumber() == magic)
   {
    if(OrderOpenPrice()+3*Point < Bid)
     {
      if (OrderStopLoss() < Bid-3*Point)
       {
        res = OrderModify(OrderTicket(),OrderOpenPrice(),Bid-3*Point,OrderTakeProfit(),0,Blue);
       }
     }
   }

  if(OrderSelect(i, SELECT_BY_POS) && OrderType()==OP_SELL && OrderSymbol() == _Symbol && OrderMagicNumber() == magic)
   {
    if(OrderOpenPrice()+3*Point < Ask)
     {
      if(OrderStopLoss() < Ask+3*Point)
       {
        res = OrderModify(OrderTicket(),OrderOpenPrice(),Ask+3*Point,OrderTakeProfit(),0,Blue);
       }
     }
   }
 }
}

когда тренд восходящий то ордера на бай оно тралит а ордера на сел пишет  OrderModify error 1

а надо все ордера закрыть по одной цене 

подскажите где я допустил ошибку?

 
новый лисапет...
 
MrSnaKe:

Привет,

проблема есть несколько ордеров на бай и на сел надо сделать трейлинг стоп но для все ордеров (прибыльних и убыточных )

когда тренд восходящий то ордера на бай оно тралит а ордера на сел пишет  OrderModify error 1

а надо все ордера закрыть по одной цене 

подскажите где я допустил ошибку?

 

 

Стоп который ставится ниже текущей цены для ордера BUY является стоплоссом, а для ордера SELL тейкпрофитом (независимо от того ордер в плюсе или в минусе). У вас для обоих типов ордеров модифицируется стоплосс. 
Причина обращения: