Фин.результат по открытым ордерам

 
      for(int i=OrdersTotal();i>=0;i--)
        {
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
          if(OrderSymbol()!=Symbol()) continue;
          if(OrderMagicNumber()!=MagicNumber) continue;
          if(count_select) OrderProfit2=OrderProfit()+OrderCommission()+OrderSwap(); count_select=false; Print("Второй ордер 2 "+OrderProfit2);
          if(!count_select) OrderProfit1=OrderProfit()+OrderCommission()+OrderSwap(); Print("Первый ордер 1 "+OrderProfit1); break;   
        }

Здравствуйте.

Мне нужно получить профиты по 2м открытым ордерам. Последний открытый ордер, называю OrderProfit2, а следующий - OrderProfit1.

Сначала открылся 1, потом 2й ордер, по-этому 1 попавшийся в цикле, у меня называется 2 )

Где ошибка?


 
Gregory Kovalenko:  Мне нужно получить профиты по 2м открытым ордерам. Последний открытый ордер, называю OrderProfit2, а следующий - OrderProfit1.

Где ошибка?

Нужно написать i=OrderTotal()-1; Ордера нумеруются с 0 и потому самый большой номер на 1 меньше количества ордеров

 
STARIJ:

Нужно написать i=OrderTotal()-1; Ордера нумеруются с 0 и потому самый большой номер на 1 меньше количества ордеров

Спасибо! Точно, у меня везде так и написано, тупо просмотрел...