Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2693

 
Всем привет.
Создал советника для МТ4, на тестере все работает без ошибок, но при загрузки в маркет тест показывает ошибку при открытии ордера, что не верный объем, хотя в советнике стоит 0.01 лот.
Как быть, чтобы советник прошел тестирование на MQL5?
 
Maksim Gustomiasov #:
Всем привет.
Создал советника для МТ4, на тестере все работает без ошибок, но при загрузки в маркет тест показывает ошибку при открытии ордера, что не верный объем, хотя в советнике стоит 0.01 лот.
Как быть, чтобы советник прошел тестирование на MQL5?
По памяти проверьте раздел куда выкладываете мт4 или мт5.
Далее открывайте не 0.01 лота а проверку делайте в советнике на мин  допустимый  объём по символу к примеру тот и открывать - есть символы может на таких маркет автомат проверяет где объём минимальный 0.1 лота к примеру wheat и ваш 0.01 лот будет не правильный  объём о чём вам и сообщает автомат  маркета. Проводите нормализацию объёма по символу открытия и ок будет! С проверкой на мин и макс объём и количество знаков после запятой - мин шаг может быть лота 0.1 но не 0.01 лот.
 
Maksim Gustomiasov #:
Всем привет.
Создал советника для МТ4, на тестере все работает без ошибок, но при загрузки в маркет тест показывает ошибку при открытии ордера, что не верный объем, хотя в советнике стоит 0.01 лот.
Как быть, чтобы советник прошел тестирование на MQL5?

Добрый день! Для советника, написанного на языке MQL5, есть целая статья.

С уважением, Владимир.

 
MrBrooklin #:

Добрый день! Для советника, написанного на языке MQL5, есть целая статья.

С уважением, Владимир.

да кстати: 

Пример функции для проверки корректности объема

//+------------------------------------------------------------------+
//|  Проверяет объем ордера на корректность                          |
//+------------------------------------------------------------------+
bool CheckVolumeValue(double volume,string &description)
  {
//--- минимально допустимый объем для торговых операций
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
     {
      description=StringFormat("Объем меньше минимально допустимого SYMBOL_VOLUME_MIN=%.2f",min_volume);
      return(false);
     }

//--- максимально допустимый объем для торговых операций
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
     {
      description=StringFormat("Объем больше максимально допустимого SYMBOL_VOLUME_MAX=%.2f",max_volume);
      return(false);
     }

//--- получим минимальную градацию объема
   double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

   int ratio=(int)MathRound(volume/volume_step);
   if(MathAbs(ratio*volume_step-volume)>0.0000001)
     {
      description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
                               volume_step,ratio*volume_step);
      return(false);
     }
   description="Корректное значение объема";
   return(true);
  }
 

Приветствую. Подскажите, пожалста по мт4.


Можно ли чтоб робот работал по индикатору который берет данные с другого индикатора?  И если да, то как? Вообще нужно чтоб была цепочка из трех индикаторов: MACD, с него берет данные RSI, а с него берет данные MA. Возможно ли прописать такое? Или только самому писать такой индикатор из трех?

Вопрос про мт4.

 
И еще вопрос: можно ли написать индикатор мт4 чтоб меню было как у стоковых, чтоб можно было выбрать данные предыдущего индикатора? 
 
MrBrooklin #:

Добрый день! Для советника, написанного на языке MQL5, есть целая статья.

С уважением, Владимир.

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

test on EURUSD,H1 there are no trading operations test on NZDUSD,H1 there are no trading operations test on GBPUSDcheck,M30 there are no trading operations test on XAUUSDcheck,Daily there are no trading operations

при этом на тестере все есть и без ошибок


 
Maksim Gustomiasov #:

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

test on EURUSD,H1 there are no trading operations test on NZDUSD,H1 there are no trading operations test on GBPUSDcheck,M30 there are no trading operations test on XAUUSDcheck,Daily there are no trading operations

при этом на тестере все есть и без ошибок


советник должен торговать у вас он не торгует

нет торгов.

торговые условия проверьте...

 
Roman Shiredchenko #:

советник должен торговать у вас он не торгует

нет торгов.

торговые условия проверьте...

вот не могу понять почему у меня он торгует, а при автотесте на сайте нет. Условия там очень простые - открытие новой свечи выше линии тренда или ниже
 

А линия тренда откуда берётся? Как-то рассчитывается по ценам и добавляется программно или имеется ввиду графический объект, добавляемый пользователем на график в терминале?

Еще обратите внимание, что тестирование при валидации проходит на определённом временном интервале. Не помню, показывается ли он результатах валидации. Вы у себя тестируете в ноябре 2025 и сделки есть, а при валидации может быть их нет из-за другого промежутка? Хотя это не очень вероятная причина.