Индикатор MultiTimeFrame BackTesting mql4

Прежде чем публиковать какой-либо код, я хотел бы понять, возможно ли протестировать Пользовательский индикатор для Терминала MetaTrader4 на основе стратегии с несколькими таймфреймами.

Я просмотрел mql5 форум, но не нашел четких указаний или подхода к проблеме.


person fabio.geraci    schedule 26.09.2015    source источник


Ответы (1)


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

Как сделать шаг вперед?

Выберите свой собственный путь - Подход

В любом случае
можно использовать вызовы функций для извлечения значений, собранных с точки зрения другого таймфрейма, с использованием правильного указания
{ PERIOD_M1 | .. | PERIOD_H1 | PERIOD_H4 | .. }
в протокол вызова функции,

или

можно создавать и поддерживать собственный виртуальный суперкадр/подкадр независимо от "собственного" временного интервала текущего графа.

double v30SEC_O[], v30SEC_H[], v30SEC_L[], v30SEC_C[],
       vM1_O[   ], vM1_H[   ], vM1_L[   ], vM1_C[   ],
       vM3_O[   ], vM3_H[   ], vM3_L[   ], vM3_C[   ],
       vH7_O[   ], vH7_H[   ], vH7_L[   ], vH7_C[   ];    // vTF as needed

bool   v30SEC_newBarEVENT = False,
       vM1_newBarEVENT    = False,
       vM3_newBarEVENT    = False,
       vH7_newBarEVENT    = False;

void   aNewBarEventMONITOR(){ ...
       static int  v30SEC_Bars  = EMPTY,
                   vM1_Bars     = EMPTY,
                   vM3_Bars     = EMPTY,
                   vH7_Bars     = EMPTY;

    // check aNewBarEVENT:

    // update state-vars:

}

Работает ли он, несмотря на множество сообщений о неудачных результатах MTF [StrategyTester]?

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

Да, модульные тесты являются хорошей страховкой привычкой в этой области.

Недавние "новые"-MQL4.56789+ изменения и частые промежуточные обновления компилятора (синтаксиса) (вы получаете новую справку, чтобы заметить их) делают модульное тестирование обязательным. часть предрелизного тестирования + обслуживание производственного кода.

person user3666197    schedule 26.09.2015
comment
Это пользовательский индикатор, который собирает данные с Period_M1, M5, M15 и возвращает сигнал для открытия новой сделки. он работает в форвард-тесте, то есть на демо-счете он делает то, для чего предназначен, но я хотел бы протестировать его, чтобы оптимизировать точки входа. - person fabio.geraci; 26.09.2015
comment
Ясно, Фабио, а в чем проблема? - person user3666197; 26.09.2015
comment
Проблема в том, что при тестировании на истории я не получаю тех же записей и/или выходов, что и при ручном тестировании. Я читал, что это сложные вопросы тестирования стратегий, использующих индикаторы MTF, но я не мог найти ни примера, ни какой-либо литературы, объясняющей, как и что делать. Индикатор закодирован в соответствии с рекомендациями, приведенными по этой ссылке ссылка, но даже в прямом тест (демо/живой) не очень точен. - person fabio.geraci; 26.09.2015
comment
Ты понял, Фабио, что большинству упомянутых FF-тредов больше 3 лет, то есть до появления new-MQL4.56789? В любом случае, решение выполнимо, если вы должным образом проявите дополнительную осторожность, которая необходима. Обычно я предпочитаю использовать и поддерживать обработчики virtualTimeFrame и хранить всю логику в EA, чтобы избежать однопоточных перегрузок в механизме пользовательских индикаторов + это позволяет легкое внешнее тестирование / поддержку из (связанных сокетов обмена сообщениями) модулей python / numpy. - person user3666197; 27.09.2015
comment
Я видел, что сообщения mql4 были старыми, но я ничего не терял, пытаясь. так вы предлагаете кодировать индикатор как функцию в советнике? - person fabio.geraci; 27.09.2015
comment
также не могли бы вы привести пример реализации virtualTimeFrame, пожалуйста? - person fabio.geraci; 27.09.2015
comment
Да. Тривиально поместив расчет индикатора в советник, вы получаете лучшую переносимость. Хотя есть еще проблемы, которые остаются (например, нет прямого доступа к более глубокой истории после запуска в тестере стратегий. Существуют обходные пути). - person user3666197; 27.09.2015
comment
Давайте продолжим обсуждение в чате. - person fabio.geraci; 27.09.2015