Обсуждение статьи "Основы тестирования в MetaTrader 5" - страница 2

 
Rosh:
Читайте "Все индикаторы, созданные функциями из раздела Технические индикаторы или  IndicatorCreate()..."

Спасибо огромное, разобрался.

 

Почему в статье "Основы тестирования" нет ни слова о том, с чего ВСЕ начинают?

Я о тестировании ручных стратегий по типу того, как это делается в ФорексТестере - хотя бы без установки/сработки/модификации ордеров, но чтобы шли тики (хотя бы только побарная отрисовка) и можно было смотреть на индикаторы и делать графическую разметку "реалтайм" с возможностью переключения таймфреймов.

 

При запуске тестирования советника ExpertMACD ("встроенный") с предварительно сохраненным своим шаблоном tester.tpl (2 окна индикаторов)   в первом окне  происходит наложение  индикатора МАКД советника   на индикатор из шаблона. Так задумано???

Другие советники не проверял. Версию МТ обновлял сегодня.

 
VladMih:

Почему в статье "Основы тестирования" нет ни слова о том, с чего ВСЕ начинают?

Я о тестировании ручных стратегий по типу того, как это делается в ФорексТестере - хотя бы без установки/сработки/модификации ордеров, но чтобы шли тики (хотя бы только побарная отрисовка) и можно было смотреть на индикаторы и делать графическую разметку "реалтайм" с возможностью переключения таймфреймов.

Потому что речь идет об тестировании автоматических торговых систем.

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

 
Renat:

Потому что речь идет об тестировании автоматических торговых систем.

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

1. Я понял, но этого нет в названии статьи,  потому и спрашиваю.

И где можно было бы прочитать "речь о тестировании ручных систем"? Нигде? Извините, но получается что-то типа "кто не программист, тот не трейдер" (если не сказать "не человек"). Это "политика партии"? Так и будет или что-то планируется для простых смертных? Типа для непосвященных...

2.  Вы не поняли - они ПОКАЗЫВАЮТСЯ автоматически, но накладывается индикатор советника на индикатор шаблона тестера.

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

 

Моделирование времени в тестере

При тестировании локальное время TimeLocal() всегда равно серверному времени TimeTradeServer(). В свою очередь, cерверное время всегда равно времени, соответствующему времени GMT - TimeGMT(). Таким образом, все эти функции при тестировании выдают одно и то же время.

Здесь говорится, что при тестировании "серверное время" == TimeTradeServer() ==  TimeGMT(). В то же время, на форуме в отношении демо-счетов MQ утверждалось, что "серверное время MQ" == "среднеевропейское время" == GMT+1.

Запустил в оффлайне скрипт на ноутбуке (билд 674); показывает, что TimeTradeServer() ==  TimeGMT(). Правилен ли будет вывод, что "серверное время MQ" == TimeGMT(), а не GMT+1?

 

Всё течет и меняется. Возможно, когда то было так

В то же время, на форуме в отношении демо-счетов MQ утверждалось, что "серверное время MQ" == "среднеевропейское время" == GMT+1.

а теперь так

 TimeTradeServer() ==  TimeGMT()


 

Спс за разъяснение! Итак, для демо-счетов "серверное время MQ" == TimeGMT().

 

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

В режиме реального времени значения индикаторов вычисляются на каждом тике. В тестере принята экономичная модель вычисления индикаторов - индикаторы пересчитываются только непосредственно перед тем, как запускается на исполнение эксперт. Это означает, что пересчет значений индикаторов производится перед вызовом функций OnTick(), OnTrade() и OnTimer().

Неважно, есть вызов индикатора в конкретном обработчике события или нет, все индикаторы, чьи хэндлы были созданы функцией iCustom() или IndicatorCreate(), будут принудительно пересчитаны перед вызовом функции-обработчика события.

Следовательно, при тестировании в режиме "Все тики" расчет индикаторов происходит перед каждым вызовом OnTick(). Если в эксперте с помощью функции EventSetTimer() включен таймер, то индикаторы будут пересчитаны перед каждым вызовом обработчика OnTimer().

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

Возникают вопросы: в какой момент пересчитываются индикаторы, висящие на чужих символах? Их расчёт происходит при каждой отправке события NewTick, даже если у эксперта нет функции OnTick()? И если это так, то получается, что индикаторы пересчитываются с частотой тиков чужого символа?

 
Yedelkin:

Их расчёт происходит при каждой отправке события NewTick, даже если у эксперта нет функции OnTick()? И если это так, то получается, что индикаторы пересчитываются с частотой тиков чужого символа?
да
Причина обращения: