Маркет: no trading operations

 

Кто может растолковать по какой причине маркет возвращает эту ошибку? Все проверки в советнике есть в наличии...

ну как бы суть я конечно понимаю - нет торговых операций, но по какой причине? 

Ограничения и проверки в экспертах
Ограничения и проверки в экспертах
  • www.mql5.com
При создании алгоритма для автоматической торговли необходимо не только уметь обрабатывать цены с целью выработки торговых сигналов, но и зачастую требуется получать множество вспомогательной информации об ограничениях, накладываемых на работу эксперта.  В этой статье будет рассказано о том как: получить информацию о торговых сессиях...
 
  • например - торговый лот в настройках = 0, советник не может открыть сделку потому, что лот = 0 . 
  • Ограничение на спред в советнике, не открывает позиции.
  • Действительно нет сигналов на открытие позиций в тестируемый период. 

А проверки только Вы видите, код Ваш не прикрепился. 

примеров тысячи....

 
Vladislav Andruschenko:
  • например - торговый лот в настройках = 0, советник не может открыть сделку потому, что лот = 0 . 
  • Ограничение на спред в советнике, не открывает позиции.
  • Действительно нет сигналов на открытие позиций в тестируемый период. 

А проверки только Вы видите, код Ваш не прикрепился. 

примеров тысячи....

Проверка на корректность Лота есть, сигналы точно есть - это сеточник, ограничений по спреду нет... 
 
Vladislav Andruschenko:
  • например - торговый лот в настройках = 0, советник не может открыть сделку потому, что лот = 0 . 
  • Ограничение на спред в советнике, не открывает позиции.
  • Действительно нет сигналов на открытие позиций в тестируемый период. 

А проверки только Вы видите, код Ваш не прикрепился. 

примеров тысячи....

Проверка на корректность Лота есть, сигналы точно есть - это сеточник, ограничений по спреду нет... Ничего не понимаю...
 
Maksim Neimerik:
Проверка на корректность Лота есть, сигналы точно есть - это сеточник, ограничений по спреду нет... 

ну тогда еще 100500 вариантов. 

сеточник спокойно проходит маркет тестирование. 

 
Vladislav Andruschenko:

ну тогда еще 100500 вариантов. 

сеточник спокойно проходит маркет тестирование. 

Согласен, но почему-то не этот:)
 
Maksim Neimerik:
Согласен, но почему-то не этот:)


Здесь запрещено обсуждать ботов из маркета. А выкладывать вы его в открытом виде не будете. Да и тем с таким названием уже 100500, как и причин такой темы. 

 
Maksim Neimerik:

Кто может растолковать по какой причине маркет возвращает эту ошибку? Все проверки в советнике есть в наличии...

ну как бы суть я конечно понимаю - нет торговых операций, но по какой причине? 

Неужели так сложно воспользоваться поиском по сайту и создать 100500 копию ветки!

https://www.mql5.com/ru/search#!keyword=no%20trading%20operations&method=2&module=mql5_module_forum

Поиск - MQL5.community
Поиск - MQL5.community
  • www.mql5.com
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
 

Просто хочу обсудить код:

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }

   double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

   int ratio=(int)MathRound(volume/volume_step);
   if(MathAbs(ratio*volume_step-volume)>0.0000001)
   {
      Print("Wrong lot size");
      return(min_volume);
   }
     
   if(volume<MarketInfo(Symbol(),MODE_MINLOT))
   {
      Print("Trade stop invalid lot size");
      Comment("Trade stop invalid lot size"); 
      return(MarketInfo(Symbol(),MODE_MINLOT));
   }
   return(volume);
}

немного доработал стандартную проверку что бы возвращала не ошибку а правильный лот...

здесь вызываем эту функцию:

   if(!OrderSend(Symbol(),cmd,CheckVolumeValue(Lot),NormalizeDouble(priceStep,Digits()),Slippage,0,0,"",magic,0))

В тестере и на реале у меня стоит этот робот - работает все четко! Даже при введении неправильного лота все равно подставляется правильный и работает дальше...

а сами знаете где возвращается ошибка 4051! Это вообще...!

 
Maksim Neimerik:

Просто хочу обсудить код:

немного доработал стандартную проверку что бы возвращала не ошибку а правильный лот...

здесь вызываем эту функцию:

В тестере и на реале у меня стоит этот робот - работает все четко! Даже при введении неправильного лота все равно подставляется правильный и работает дальше...

а сами знаете где возвращается ошибка 4051! Это вообще...!

а Lot чо не нормализован?
 
Maksim Neimerik:

Просто хочу обсудить код:

немного доработал стандартную проверку что бы возвращала не ошибку а правильный лот...

здесь вызываем эту функцию:

В тестере и на реале у меня стоит этот робот - работает все четко! Даже при введении неправильного лота все равно подставляется правильный и работает дальше...

а сами знаете где возвращается ошибка 4051! Это вообще...!

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }

   double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

   int ratio=(int)MathRound(volume/volume_step);
   if(MathAbs(ratio*volume_step-volume)>0.0000001)
   {
      Print("Wrong lot size");
      return(min_volume);
   }
     
   if(volume<MarketInfo(Symbol(),MODE_MINLOT))
   {
      Print("Trade stop invalid lot size");
      Comment("Trade stop invalid lot size"); 
      return(MarketInfo(Symbol(),MODE_MINLOT));
   }
   return(volume);
}
И до этого места никогда не дойдёт
Причина обращения: