Количество баров в истории тестера стратегий MT5

 
коллеги, приветствую, подскажите, как тестер стратегий определяет, сколько баров в истории нужно загрузить для тестирования?  и можно ли как-то повлиять на это число?
 
Nikita Chernyshov:
коллеги, приветствую, подскажите, как тестер стратегий определяет, сколько баров в истории нужно загрузить для тестирования?  и можно ли как-то повлиять на это число?

Напишу по памяти - пусть меня поправят, если что не так.

По умолчанию, тестер подгружает 1000 баров истории текущего рабочего таймфрейма перед стартовой датой теста. Но есть исключения:

  • Для таймфрейма D1 загружается текущий год и предыдущий.
  • На более старших таймфреймах (W+) доступны бары за 2 года (если они есть в истории).

В любом случае, на более младших таймфреймах, чем рабочий, будет доступно пропорционально большее количество баров.

Настроить (изменить) данное поведение нельзя (хотя давно просят сделать такую настройку).

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

 
Stanislav Korotky #:

Напишу по памяти - пусть меня поправят, если что не так.

По умолчанию, тестер подгружает 1000 баров истории текущего рабочего таймфрейма перед стартовой датой теста. Но есть исключения:

  • Для таймфрейма D1 загружается текущий год и предыдущий.
  • На более старших таймфреймах (W+) доступны бары за 2 года (если они есть в истории).

В любом случае, на более младших таймфреймах, чем рабочий, будет доступно пропорционально большее количество баров.

Настроить (изменить) данное поведение нельзя (хотя давно просят сделать такую настройку).

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

Да, спасибо, это и использую:

1. Если надо глубже историю, просто вызываю получение данных с каких-нибудь неделек в инициализации.

2. Если нужно определенное кол-во баров -да, гоняю вхолостую, пока не превысит нужное кол-во.

 
Nikita Chernyshov #:

Да, спасибо, это и использую:

1. Если надо глубже историю, просто вызываю получение данных с каких-нибудь неделек в инициализации.

2. Если нужно определенное кол-во баров -да, гоняю вхолостую, пока не превысит нужное кол-во.

По последним сведениям, моя информация о 1000 барах более не актуальна. Для внутридневных таймфреймов тот же принцип "одного года в запасе".

 

Что-то перестало брать историю больше, вызывая ТФ постарше: w, mn. Теперь ставит также 1 год :(

 
Nikita Chernyshov #:

Что-то перестало брать историю больше, вызывая ТФ постарше: w, mn. Теперь ставит также 1 год :(

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

 
Nikita Chernyshov #:

Что-то перестало брать историю больше, вызывая ТФ постарше: w, mn. Теперь ставит также 1 год :(

Не наблюдаю такого. На W1 берется история от конца 2019-го, на MN1 - от 2013-го.

Эксперт для проверки.

input int dummy = 0;

void OnTick()
{
  static bool once = false;
  if(once) return;
  once = true;
  datetime array[];
  Print(Bars(_Symbol, _Period));
  Print(CopyTime(_Symbol, _Period, 0, dummy ? dummy : Bars(_Symbol, _Period), array));
  Print(_LastError);
  Print(array[0]);
}
 
Stanislav Korotky #:

Не наблюдаю такого. На W1 берется история от конца 2019-го, на MN1 - от 2013-го.

Эксперт для проверки.

залил. вот результат) только 1 год


 

Можно подгружать роботом или скриптом

https://www.mql5.com/ru/docs/series/timeseries_access

внизу есть код для загрузки истории с указанной даты,

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

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

Можно подгружать роботом или скриптом

https://www.mql5.com/ru/docs/series/timeseries_access

внизу есть код для загрузки истории с указанной даты,

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

Ну да, можно. Сначала подгружаешь историю в реал тайме, затем уже в тестере вроде как можно обращаться глубже, вызывая старшие ТФ.

Можно еще по другому: провести тест на более глубокой истории. Это вызовет принудительную подгрузку. А потом уже начинать тестить с тех дат, которые нужны, опять же вызывая данные со старших ТФ. Но я надеюсь, что эти танцы с бубнами скоро закончатся, там где-то в соседней ветке обсуждали это и Ренат сказал, что "даешь настройки глубины".

https://www.mql5.com/ru/forum/438066/page2#comment_44027410

 
Nikita Chernyshov #:

залил. вот результат) только 1 год


Ну так у вас таймфрейм H1.

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