Ошибка Invalid Price при торговле USDRUB_TOM

 

Тестирую советник в терминале брокера "Открытие". Инструменты USDRUB_TOM, USDRUB_TOD и т.д.

Код открытия сделки:

double priceOpen=ND(Bid);
Trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,lot,priceOpen,0,0,"");

 Функция нормализации цены:

double ND(double x){
   double tickSize=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
   return(MathRound(x/tickSize)*tickSize);
}

 Изредка сделки открываются, а в основном Invalid Price... Может кто подскажет в чем может быть дело?

 
Sergey Zhilinskiy:

Тестирую советник в терминале брокера "Открытие". Инструменты USDRUB_TOM, USDRUB_TOD и т.д.

Код открытия сделки:

 Функция нормализации цены:

 Изредка сделки открываются, а в основном Invalid Price... Может кто подскажет в чем может быть дело?

"Bid" - нет такого оператора в MQL5.
 
Karputov Vladimir:
"Bid" - нет такого оператора в MQL5.

Я в курсе. Ранее Bid получен так:

double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);
 
Sergey Zhilinskiy:

Я в курсе. Ранее Bid получен так:

А Вы проверяете полученное значение на равенство нулю? И где вывод ошибки?
 
Цену нужно нормализовать перед вставкой в поле торгового ордера.
 
Karputov Vladimir:
А Вы проверяете полученное значение на равенство нулю? И где вывод ошибки?

Если уж быть точным, то фрагмент  кода такой:

double priceOpen=ND(Bid);
Print("Открываем SELL по цене: ",priceOpen," Bid=",Bid," Ask=",Ask);                        
if (!Trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,lot,priceOpen,0,00,"")){
    Print(Trade.ResultRetcodeDescription());
    Trade.PrintRequest();
}

 Значение priceOpen по крайней мере в Журнале тестера видно. Там точно не ноль.

 
Karputov Vladimir:
Цену нужно нормализовать перед вставкой в поле торгового ордера.

Имеется ввиду так?

Trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,lot,ND(Bid),0,0,"");
 
Sergey Zhilinskiy:

Имеется ввиду так?

Нет. Например так:

   SL=NormalizeDouble(SL,digits);                              // нормализуем Stop Loss
 
Karputov Vladimir:

Нет. Например так:

Вы ошибаетесь, шаг цены на этих иструментах не последний знак. 
 
Sergey Zhilinskiy:
Вы ошибаетесь, шаг цены на этих иструментах не последний знак. 
Не могу посмотреть - нет у меня такого символа.
 
Karputov Vladimir:
Не могу посмотреть - нет у меня такого символа.