Тестер МТ5 генерирует тики ЗАГАДОЧНЫМ ОБРАЗОМ. - страница 4

 
Stanislav Korotky #:
В тестере МТ5 есть проблемы - никто не спорит, но тот мой абзац, который вы процитировали - абсолютно точный. Так что чушь тут порете вы. Если есть пример исходника, который у вас работает как-то не так - публикуйте. И повежливее, плиз.
у меня все работает так как надо. если у Вас есть код который в мт5 при разных прогонах дает разный результат, выкладывайте его, выкладывайте тесты, обсудим, а не пишите что я чушь порю. да и спред установить вручную не забудьте при тестах установить.
 
Mikhail Pityugov #:
у меня все работает так как надо. если у Вас есть код который в мт5 при разных прогонах дает разный результат, выкладывайте его, выкладывайте тесты, обсудим, а не пишите что я чушь порю. да и спред установить вручную не забудьте при тестах установить.

Другие люди постоянно натыкаются на особенности MQL5, сказывающиеся в тестере, и полно обсуждений на форуме - всё уже давно выложено и разобрано. Вы процитировали мое сообщение с ненадлежащим комментарием - это и есть чушь - от непонимания проблемы или незнания как платформа работает. В частности:

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

Тестер МТ5 генерирует тики ЗАГАДОЧНЫМ ОБРАЗОМ.

Mikhail Pityugov, 2026.08.21 10:09

если один и тот же кусок кода на одном и том же участке истории дает разные результаты это проблема именно в тестере.

 - это не так. В 99.99% - это проблема в коде MQL5.

 
Stanislav Korotky #:

Другие люди постоянно натыкаются на особенности MQL5, сказывающиеся в тестере, и полно обсуждений на форуме - всё уже давно выложено и разобрано. Вы процитировали мое сообщение с ненадлежащим комментарием - это и есть чушь - от непонимания проблемы или незнания как платформа работает. В частности:

 - это не так. В 99.99% - это проблема в коде MQL5.

я говорю то что знаю из практики. я здесь работаю с 2012 года. сделал более 1400 проектов. имею безупречные отзывы и золотой трофей от mql5. по отзывам видно что есть клиенты которые ходят ко мне годами. более того, у меня лучшая на этом сайте статистика по качественным показателям таким как процент арбитражей, просрочки и т.д. на данный момент она недостижима ни для кого здесь. за 14 лет у меня не было ни одного проигранного арбитража. по сему имею право полагать что мое мнение имеет экспертный уровень. так вот, я конечно не часто тестирую чужие совы, но я ни разу не видел чтобы при заданном вручную спреде и тесте без задержек, при тестах не через длительное время, а при тестах подряд один и тот же советник давал существенно отличающиеся результаты. если Вы хотите это обсудить, присылайте код, присылайте тесты, обсудим. у меня таких кодов нет и никогда не было. а посты вроде Вашего что советник может быть так написан что давать разные результаты в тестере МТ5 просто подрывают доверие людей к МТ5 и к использованию советников. 
 
Mikhail Pityugov #:
я говорю то что знаю из практики. я здесь работаю с 2012 года. сделал более 1400 проектов. имею безупречные отзывы и золотой трофей от mql5. по отзывам видно что есть клиенты которые ходят ко мне годами. более того, у меня лучшая на этом сайте статистика по качественным показателям таким как процент арбитражей, просрочки и т.д. на данный момент она недостижима ни для кого здесь. за 14 лет у меня не было ни одного проигранного арбитража. по сему имею право полагать что мое мнение имеет экспертный уровень. так вот, я конечно не часто тестирую чужие совы, но я ни разу не видел чтобы при заданном вручную спреде и тесте без задержек, при тестах не через длительное время, а при тестах подряд один и тот же советник давал существенно отличающиеся результаты. если Вы хотите это обсудить, присылайте код, присылайте тесты, обсудим. у меня таких кодов нет и никогда не было. а посты вроде Вашего что советник может быть так написан что давать разные результаты в тестере МТ5 просто подрывают доверие людей к МТ5 и к использованию советников. 

Вы уж определитесь со своей точкой зрения. Сейчас пишете, что никогда не встречали, чтобы советник давал отличающиеся результаты. А ранее писали безапеляционно, что "если один и тот же кусок кода на одном и том же участке истории дает разные результаты это проблема именно в тестере". Пришлите тест-кейс для подтверждения проблем в тестере или все-таки согласитесь, что несоответствия возникают из-за некорректного кода MQL5.

Мои посты служат единственной цели - выяснить проблемы в МТ5 и найти пути их решения. Софта без проблем не бывает.

PS. вот один из многих топиков на тему различий в результатах тестера (на английском, но есть и на русском).

PPS. чтобы не искать суть - вот еще пост на русском форуме:

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

Особенности языка mql5, тонкости и приёмы работы

fxsaber, 2019.01.17 14:37

В дополнение к ранее сказанному, одной из самых распростаненных причин несовпадения одинаковых прогонов в Тестере - ошибочная инициализация или ее отсутствие.


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


Чтобы поймать такие потенциальные проблемы, можно в начале советника вставить такие строки

// Помогает найти причину потенциальной ошибочной инициализации
template <typename T>
int ArrayResize2( T &Array[], const int NewSize, const string Str )
{
  const int PrevSize = ArraySize(Array);
  const int Res = ArrayResize(Array, NewSize);
  
  if ((PrevSize < NewSize) || (Res != NewSize))
  {
  #define TOSTRING(A) ", " + #A + " = " + (string)(A)
    Print(Str + (string)Res + TOSTRING(PrevSize) + TOSTRING(NewSize));
  #undef TOSTRING     
  
    TesterStop();
  }
  
  return(Res);
}

// Вариант с Reserve != 0 не предусмотрен
#define ArrayResize(A,B) ArrayResize2(A, B, __FUNCSIG__ + ", Line = " + (string)__LINE__ + \
                                            ": ArrayResize(" + #A + ", " + #B + ") = ")
// Помогает найти причину потенциальной ошибочной инициализации
template <typename T1, typename T2>
int ArrayInitialize2( T1 &Array[], const T2 Value, const string Str )
{
  const int Res = ArrayInitialize(Array, Value);
  
  if (!ArraySize(Array) || !Res)
  {
  #define TOSTRING(A) ", " + #A + " = " + (string)(A)
    Print(Str + (string)Res + TOSTRING(ArraySize(Array)));
  #undef TOSTRING     
  
    TesterStop();
  }
  
  return(Res);
}

#define ArrayInitialize(A,B) ArrayInitialize2(A, B, __FUNCSIG__ + ", Line = " + (string)__LINE__ +  \
                                                    ": ArrayInitialize(" + #A + ", " + #B + ") = ")


Если ситуация будет поймана, то в лог будет выведена подробная информация и прогон будет остановлен.


ЗЫ Пример применения.


Strategy optimization result do not match single run test result
Strategy optimization result do not match single run test result
  • 2021.08.22
  • www.mql5.com
The user is experiencing discrepancies between optimization test results and single test results in MT5, suspecting issues with parameter transmission, version compatibility, or indicator handling. They have tried various troubleshooting steps, including checking parameters, using different MT5 versions, and verifying test modes. They seek advice on resolving the inconsistency and ensuring reliable test results.
 
Stanislav Korotky #:

Вы уж определитесь со своей точкой зрения. Сейчас пишете, что никогда не встречали, чтобы советник давал отличающиеся результаты. А ранее писали безапеляционно, что "если один и тот же кусок кода на одном и том же участке истории дает разные результаты это проблема именно в тестере". 


моя точка зрения прежняя и соответствует Вашей цитате моего сообщения которую я выделил цветом. конечно в тестере проблема если он один и тот же кусок кода тестирует каждый раз с разным результатом. я конечно такого не встречал в своей практике. видимо не так плохо пишу код :)  но в целом-то мое первоначальное утверждение верное. кусок кода один и тот же. результаты теста разные - проблема в тестере значит. можно ругать код. но тестер-то не дописывает код. он берет то что есть и тестит. результаты должны быть одинаковые. если разные - проблема в тестере.

мне иногда приходилось разбираться с клиентами с такими вопросами, то каждый раз оказывалось что либо клиент что-то менял в настройках советника или в настройках тестирования, либо спред не ставил вручную и т.п. И когда мы потом тестили вместе уже внимательно все выставив и учтя все нюансы, оказывалось что все тестится одинаково. поэтому никаким постам я не верю. и кускам выдернутым из кода тоже. если Вы мне пришлете советник полностью, я протестю сам внимательно и увижу, тогда поверю. но если все-таки это окажется так, то опять же проблема значит в тестере. не должен он выдавать разные результаты на один и тот же кусок кода. итог обсуждения - мое первоначальное утверждение верно :)))

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

 
Mikhail Pityugov #:

моя точка зрения прежняя и соответствует Вашей цитате моего сообщения которую я выделил цветом. конечно в тестере проблема если он один и тот же кусок кода тестирует каждый раз с разным результатом. я конечно такого не встречал в своей практике. видимо не так плохо пишу код :)  но в целом-то мое первоначальное утверждение верное. кусок кода один и тот же. результаты теста разные - проблема в тестере значит. можно ругать код. но тестер-то не дописывает код. он берет то что есть и тестит. результаты должны быть одинаковые. если разные - проблема в тестере.

мне иногда приходилось разбираться с клиентами с такими вопросами, то каждый раз оказывалось что либо клиент что-то менял в настройках советника или в настройках тестирования, либо спред не ставил вручную и т.п. И когда мы потом тестили вместе уже внимательно все выставив и учтя все нюансы, оказывалось что все тестится одинаково. поэтому никаким постам я не верю. и кускам выдернутым из кода тоже. если Вы мне пришлете советник полностью, я протестю сам внимательно и увижу, тогда поверю. но если все-таки это окажется так, то опять же проблема значит в тестере. не должен он выдавать разные результаты на один и тот же кусок кода. итог обсуждения - мое первоначальное утверждение верно :)))

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

Вы можете оставаться при своем мнении, но у MQ мнение другое - они сделали свою платформу не для трейдеров, а для алготрейдеров-программистов, поэтому неявные ошибки кодирования MQL5 считаются ошибками MQL5, а не тестера. Если уж строго называть вещи своими именами, но по вашей логике ошибка не в тестере, а в MQL5 - в том как он (не)инициализирует данные и (не)обрабатывает ошибки сам, а отдает это на откуп прикладному программисту - что сделано со стороны MQ опять-таки намеренно в угоду скорости, как они говорят. Чтобы понять, как запуски тестера с одинаковыми настройками могут дать разные результаты - читайте обсуждения на форуме.

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

Не совпадают результаты оптимизации и одиночного прогона

fxsaber, 2021.11.25 12:05

Ни разу не использовал режим "Форвард-оптимизации". Могу сказать только за обычную оптимизацию.

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


Поэтому почти 100%, причина различий в исходном коде.


Также проверялся на баги и сам Тестер (мало ли где некорректно сработал). Не нашел проблем среди миллионов сделок. Идеальное совпадение с другим тестером. Единственное НО - досконально проверял только моновалютный режим.


Если в будущих билдах MT5 появятся косяки в Тестере, то с большой вероятностью обнаружу их.