Несовпадение сделок в тестере

 

Прогонку системы можно проводить двумя путями - с визуализацией и без таковой.

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

Прилагаю картинку. Сверху - без визуализации, снизу - результат визуализации. Очевидно, сделки разные. И при визуализации они верные.



Само собой, скрипт один, настройки идентичные.

Подскажите, что делать?

 

Более того, при детальном рассмотрении выяснилось, что значения индикатора, используемого для получения условий входа/выхода, в результатах без визуализации НЕ СОВПАДАЮТ со аналогичными значениями в результатах с визуализацией.

Это какой-то баг МТ5? Индикатор-то используется один и тот же.

Как теперь в принципе тестировать систему?

 

Мм, любопытно. Никогда не сталкивался (то ли не проверял, то ли всегда совпадало). Интуитивно конечно ожидаешь, что там всё одинаково должно быть.


Вероятно, получение ответа на вопрос может затянуться - сначала не ответят, потом спросят код стратегии и т.д.

Я бы начал сам копать сначала. Начать можно с выяснения, а какой вариант правильный. Вот есть один и тот же индикатор, можно посчитать "руками" правильное значение для конкретной свечи. И далее сравнить его с этими 2-мя. Так мы узнаем, какой из вариантов правильный. Дальше можно как-то копать в сторону попытки понять, что не так с "неправильным".

 
Replikant_mih #:

Мм, любопытно. Никогда не сталкивался (то ли не проверял, то ли всегда совпадало). Интуитивно конечно ожидаешь, что там всё одинаково должно быть.


Вероятно, получение ответа на вопрос может затянуться - сначала не ответят, потом спросят код стратегии и т.д.

Я бы начал сам копать сначала. Начать можно с выяснения, а какой вариант правильный. Вот есть один и тот же индикатор, можно посчитать "руками" правильное значение для конкретной свечи. И далее сравнить его с этими 2-мя. Так мы узнаем, какой из вариантов правильный. Дальше можно как-то копать в сторону попытки понять, что не так с "неправильным".

Да с правильным мы вроде определились. Но беда в том, что как так-то!? Одна и та же формула используется. Т.е. где-то внутри нехороший баг... 
Ну и да, правильный, судя по всему, в результатах с визуализацией. А это печально - любой тест проходит дольше, оптимизацию не используешь.

 

Читайте справку

Расчет индикаторов при тестировании

В режиме реального времени значения индикаторов вычисляются на каждом тике.

В тестере стратегий индикаторы рассчитываются только при обращении к ним за данными — то есть только в тот момент, когда запрашиваются значения индикаторных буферов. Исключение составляют пользовательские индикаторы с выставленным #property tester_everytick_calculate, в этом случае пересчет идет на каждом тике.

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

Расчет индикатора на каждом тике делается однократно, и все последующие обращения за данными индикатора до поступления нового тика не вызывают пересчета. Поэтому, если в эксперте с помощью функции EventSetTimer() включен таймер, то перед каждым вызовом обработчика OnTimer() будут запрошены данные индикатора с момента последнего тика. Если на последнем тике расчет индикатора еще не производился, то будут запущены вычисления значений индикатора. Если данные уже были подготовлены, то они будут предоставлены без нового пересчета.

Таким образом, все расчеты индикаторов делаются максимально экономно — если на данном тике индикатор уже был рассчитан, то данные индикатора отдаются как есть, повторный расчет индикатора не запускается.

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Тестирование торговых стратегий - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Rashid Umarov #:

Читайте справку

Расчет индикаторов при тестировании

Благодарю! Вроде помогло.