Как нормализвать лот к исходному состоянию?

 
Вот простой кусок кода:

  if (martin == 1) 
  {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) 
             {
               Lots = FixedLots;
               break;
             }  
         if(OrderProfit()<0) losses++;
        }
      if(losses > 0) Lots = Lots *losses;
    }
   }

Типа расчет лота по мартингейлу. При убыточных позициях увеличивать лот, при первой прибыльной - лот в приводлить к начальному.

Проблема в том, что после прибыльной сделки он ещё раз увеличивает лот, а только потом делает лот нормальным. Что я только не перепробывал. И вместо order-1 ставил просто order, и т.д. и т.п. Как сделать что бы после прибыльной сделки сразу нормализовал лот к исходному состоянию? Где ошибка?

 
Q.fin писал (а):
Вот простой кусок кода:

  if (martin == 1) 
  {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) 
             {
               Lots = FixedLots;
               break;
             }  
         if(OrderProfit()<0) losses++;
        }
      if(losses > 0) Lots = Lots *losses;
    }
   }

Типа расчет лота по мартингейлу. При убыточных позициях увеличивать лот, при первой прибыльной - лот в приводлить к начальному.

Проблема в том, что после прибыльной сделки он ещё раз увеличивает лот, а только потом делает лот нормальным. Что я только не перепробывал. И вместо order-1 ставил просто order, и т.д. и т.п. Как сделать что бы после прибыльной сделки сразу нормализовал лот к исходному состоянию? Где ошибка?

if (OrderProfit() >= 0) {
Lots = FixedLots;
// Убытки пофиксены. Проинициализируем соответствующую переменную
losses = 0;
break;
} else {
losses++;
}