Ошибки, баги, вопросы - страница 1941

 

Подскажите, знающие люди, как МТ5 может выдавать в ходе оптимизации такие результаты??

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

Более того, одиночный тест с визуализацией и без дадут совершенно разные результаты тестов.

Более того, если несколько раз прогнать тест, то тоже результаты могут отличаться порой радикально.

=====

Это началось с терминалом последнюю неделю. До этого вроде он работал адекватно. Ну или я не замечал косяков. 

Подобная проблема была у меня год назад. Там тестер тоже выдавал результаты при невозможных настройках советников. Например, если у советника Тейк профит отключить он выдавал один результат теста, а если поставить его, например, 10000000000 пунктов (т.е. понятно, что он никогда не может быть достигнут, а значит, считай отключен), то тестер выдавал совершенно другие результаты.


Как бороться с подобными багами? Почему такая проблема может возникать? Может я что-то не так делаю? 

Файлы:
ky1b.jpg  590 kb
 
Andrey Koldorkin:

Подскажите, знающие люди, как МТ5 может выдавать в ходе оптимизации такие результаты??

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

Более того, одиночный тест с визуализацией и без дадут совершенно разные результаты тестов.

Более того, если несколько раз прогнать тест, то тоже результаты могут отличаться порой радикально.

=====

Это началось с терминалом последнюю неделю. До этого вроде он работал адекватно. Ну или я не замечал косяков. 

Подобная проблема была у меня год назад. Там тестер тоже выдавал результаты при невозможных настройках советников. Например, если у советника Тейк профит отключить он выдавал один результат теста, а если поставить его, например, 10000000000 пунктов (т.е. понятно, что он никогда не может быть достигнут, а значит, считай отключен), то тестер выдавал совершенно другие результаты.


Как бороться с подобными багами? Почему такая проблема может возникать? Может я что-то не так делаю? 

Вставьте в начало своего советника две строки

#define REPORT_TESTER // В тестере будут автоматически записываться отчеты
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

Это заставит тестер сохранять подробные отчеты для каждого прохода оптимизатора и для одиночного прогона.

Сравните полученный отчет прогона из оптимизатора и его вариант одиночного прогона.

 
MQL5-компилятор молчит, а MQL4++ предупреждает
m_pixels[y*m_width+x]=(r<<16|g<<8|b<<0|255<<24) &0xffffffff; // check operator precedence for possible error; use parentheses to clarify precedence

Кто прав?

 
Ошибка компиляции (MT5b1641)
void NewFunc( int ) {}

#define MACROS(A) New##A

void OnStart()
{  
  NewFunc(0);      // OK
  MACROS(Func(0)); // Error: 'NewFunc(0)' - undeclared identifier
}
 

Прошу включить макросы

__SCRIPT__ - компилируемый mq5-файл является Скриптом.

__INDICATOR__ - компилируемый mq5-файл является Индикатором.

__EXPERT__ - компилируемый mq5-файл является Советником.

__SERVICE__ - компилируемый mq5-файл является Сервисом.


Ситуация, когда MQLInfoInteger нельзя использовать

#ifdef __EXPERT__

void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)  
  {
    Print("FirstTick!");
    
    FirstRun = false;
  }
  
  OldOnTick();
}

#endif // __EXPERT__

#ifdef __SERVICE__

void OnTick( const string &Symb )
{
  static bool FirstRun = true;
  
  if (FirstRun)  
  {
    Print("FirstTick!");
    
    FirstRun = false;
  }
  
  OldOnTick(Symb);
}

#endif // __SERVICE__

#define OnTick OldOnTick

// Дальше код советника/сервиса.

 
Как через MQL получить PR-Агента? Замеряю скорость работы Агента, хотел взять PR, но здесь его нет.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
Как через MQL получить PR-Агента? Замеряю скорость работы Агента, хотел взять PR, но здесь его нет.

А смысл? Все равно не получится агентов выбирать. Обрубать задачу, если она слишком долго выполняется, можно и без PR.

 
Stanislav Korotky:

А смысл? Все равно не получится агентов выбирать. Обрубать задачу, если она слишком долго выполняется, можно и без PR.

Смысл в возможности указания несоответствия PR-Агента его реальной производительности. Или наоборот - показать адекватность расчета рейтинга.

 
Не получается открыть MT4-демосчет на MetaQuotes-Demo.
 

MT4-тестер в режиме "Все тики" совершает сделки на барах, которых нет в истории

Причина обращения: