Ошибка открытия ордера в новом терминале: invalid lots amount for OrderSend function

 

Здравствуйте! Скажите, пожалуйста, чем вызвана ошибка в работе советника -  invalid lots amount for OrderSend function    . В старом терминале советник работает, а в новом нет. В коде ошибки нет. Лот передается как 0.100000 ну я не знаю сколько нулей (демо-счет). Я уже пробовал нормализовать лот до 0.10 - все равно ошибка. В чем может быть дело?

                      // этот код исполняется 
 if(CountSellSYM_1()==0 && CountBuySYM_1()==0 && frUP >0 && frLOW ==0)
     {
      ticket=OrderSend(symbol_1,OP_SELL,NormalizeDouble(Lots,2),Bid,Slippage,0,0,name,Magic2,0,Red);
      if(ticket>0) // && TakeProfit > 0)
        {
        Print ("Продажа по " + symbol_1 + " прошла успешно.");
        }
     }
 //   а при выполнении этого - invalid lots amount for OrderSend function

  if(CountSellSYM_1()==1 && CountSellSYM_2()==0)
   {
      ticket_opp = OrderSend(symbol_2,OP_SELL,NormalizeDouble(Lots,2),Bid,Slippage,0,0,name,Magic2,0,Red); 
      if(ticket_opp>0)  Print ("Продажа по " + symbol_2 + " прошла успешно.");
   } 

 Принт перед ордер сендом второго ордера пишет Lots = 0.01

Т.е. все нормально. Может быть у кого то случался такой казус? Как его решили? 

 
Цена Bid для какого символа?
 
abolk:
Цена Bid для какого символа?
для текущего.... Но каким боком она к лоту??
 

Bid -- это цена графика, к которому прикреплён советник. И символ графика может отличаться и от символа symbol_1, и от символа symbol_2. Во втором случае уж точно отличается.

Получается, что идёт продажа по хрен знает какой цене.

Вот и боком она к лоту. 

 
abolk:

Bid -- это цена графика, к которому прикреплён советник. И символ графика может отличаться и от символа symbol_1, и от символа symbol_2. Во втором случае уж точно отличается.

Получается, что идёт продажа по хрен знает какой цене.

Вот и боком она к лоту. 

Спасибо!
 
Помогите пожалуйста разобраться с такой же ошибкой.
Файлы:
 
enfinitum:
Помогите пожалуйста разобраться с такой же ошибкой.

Надо нормализовать размер лота

lot = NormalizeDouble(min_lot*x, MathLog10(MarketInfo(_Symbol, MODE_LOTSTEP)));
 
AlexeyVik:

Надо нормализовать размер лота

Спасибо
 

Здравствуйте. Посмотрите пожалуйста где в коде ошибка. На старом билде советник работал. Сейчас пишет: invalid lots amount for OrderSend function

Скомпилировал в старом билде, установил в новый все ошибки ушли за исключением этой.

Ниже код советника. Спасибо.

 

Код советника во вложении.

Файлы:
 
Dmitriy Belovol:

Код советника во вложении.


Это не весь советник. Он еще использует несколько включаемых файлов:

#include <Fibonacci.mqh>
#include <Logging.mqh>
#include <Trading.mqh>
#include <MagicNumber.mqh>
#include <Session.mqh>
#include <Config.mqh>
#include <Hedging.mqh>