Как обратиться к OrderLots() ?

 
Вопрос такой...

Хочу чтобы OrderSend("Lot") - Брал параметр лот из какого-то предыдущего ордера.

Предварительно я выбрал OrderSelect прошлый ордер и вывел в переменную его значение типа L=OrderLots()

После, при функции OrderSend (L*2) - аля легкий мартингейл - терминал орет на ошибку Лотов, как исправить?

for (i = (OrdersHistoryTotal()-2); i <= (OrdersHistoryTotal()-1); i++){  // Запускаем цикл для перебора последних двух ордеров среди закрытых //
      if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) // Ищем по истории закрытых ордеров //
         if (OrderType() == OP_BUY && Ask >= OrderOpenPrice() && ProfitOrder >= (TakeProfit-30) && ProfitOrder <= (TakeProfit + 30)) // Ищем плюсовой ордер с прибылью +- 30 пунктов от Тейкпрофита //
               {int ProfitOrder1Buy = ProfitOrder; // устанавливаем прибыль по ордеру в переменную //
                int typeOrder11 = OrderType(); // запоминаем направление ордера
                LotsOrder11 = OrderLots();//запоминает объем ордера
                OrderCloseTime11 = OrderCloseTime();
                if (TimeCurrent() == OrderCloseTime())

OrderSend(Symbol(),OP_BUY,LotsOrder11*3,Ask,20,Ask-StopLoss*Point,Ask+TakeProfit*Point,NULL,211,0,Blue)


 
Макс Сопельцев:
Вопрос такой...

Хочу чтобы OrderSend("Lot") - Брал параметр лот из какого-то предыдущего ордера.

Предварительно я выбрал OrderSelect прошлый ордер и вывел в переменную его значение типа L=OrderLots()

После, при функции OrderSend (L*2) - аля легкий мартингейл - терминал орет на ошибку Лотов, как исправить?

for (i = (OrdersHistoryTotal()-2); i <= (OrdersHistoryTotal()-1); i++){  // Запускаем цикл для перебора последних двух ордеров среди закрытых //
      if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) // Ищем по истории закрытых ордеров //
         if (OrderType() == OP_BUY && Ask >= OrderOpenPrice() && ProfitOrder >= (TakeProfit-30) && ProfitOrder <= (TakeProfit + 30)) // Ищем плюсовой ордер с прибылью +- 30 пунктов от Тейкпрофита //
               {int ProfitOrder1Buy = ProfitOrder; // устанавливаем прибыль по ордеру в переменную //
                int typeOrder11 = OrderType(); // запоминаем направление ордера
                LotsOrder11 = OrderLots();//запоминает объем ордера
                OrderCloseTime11 = OrderCloseTime();
                if (TimeCurrent() == OrderCloseTime())

OrderSend(Symbol(),OP_BUY,LotsOrder11*3,Ask,20,Ask-StopLoss*Point,Ask+TakeProfit*Point,NULL,211,0,Blue)

Логика в этом коде совсем никакая.

Какой такой сакральный смысл проверять текущую цену с ценой открытия ордера из истории Ask >= OrderOpenPrice()

Что за переменная ProfitOrder? Где она получает значение? 

Дальше даже разбираться нет ни желания ни смысла.

 
нормализовать лоты пробовали?
 

Да, нормализация не помогла

 
Если код вставлять правильно, кнопкой "Код (Alt+S)", в нём будет легче разобраться посторонним. А так большинство проходит мимо этой каши.
Причина обращения: