При загрузке нового советника на MQL5 выдает ошибку "no treading operations EURUSD H1"

 

При загрузке советника на MQL5 выдает ошибку: "no treading operations EURUSD H1"  - нет торговых операций на EURUSD H1
Загружаю в тестере EURUSD H1 и советник благополучно торгует.

Что это и как с этим быть?

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

no trading operations

Sergey Golubev, 2020.04.16 10:59

Я так понимаю, что тут для каждого кода может быть свое решение этой "no trading operations".
И вот нашел две ветки.

1. Замучила ошибка there are no trading operations
Там в посте #31 один товарищ решил для себя проблему.

2. Маркет: no trading operations
Читать с шестого листа (с 6-го по 8-й лист), там варианты решения с кодами и т.д.

----------------

То есть, для каждого кода может быть свое решение.
Вот, например -

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибка "there are no trading operations" при выгрузке продукта на маркет

Vitalii Ananev, 2019.10.12 10:53

Я уже разобрался в чем дело было. У меня была функция которая проверяла на достаточность средств и при этом еще проверяла на допустимую величину объема. Если средств не хватало то функция писала в журнал сообщение о нехватки средств и сделку не открывала, а вот если был недопустимый объем то функция ни чего не писала и сделки не открывались. Сделал в случае если задан недопустимый объем открытие сделки минимально допустимым объемом  и тогда тест прошел нормально. 


 
Mikhail Nazarenko:

При загрузке советника на MQL5 выдает ошибку: "no treading operations EURUSD H1"  - нет торговых операций на EURUSD H1
Загружаю в тестере EURUSD H1 и советник благополучно торгует.

Что это и как с этим быть?

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

надо до отправки приказов проверять не только корректность, но и их необходимость.

Как правило подобное (перенести SL как и был, передвинуть отложку на 0 пунктов) сигнализирует про ошибку в торговом алгоритме.

 

Помогло:

double checkLotSize( double value)

{
   double maxVolume  = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MAX );
   double minVolume  = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN );
   double volumeStep = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP );
   int ratio         = ( int ) MathRound (value/volumeStep);
  value = value > maxVolume ? maxVolume : (value < minVolume ? minVolume: ( MathAbs (ratio*volumeStep - value) > 0.0000001 ? ratio * volumeStep : value ));
   return NormalizeDouble (value, 2 );
}