Обсуждение статьи "Walk-Forward оптимизация в MetaTrader 5 - своими руками"

 

Опубликована статья Walk-Forward оптимизация в MetaTrader 5 - своими руками:

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

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

Формирование walk-forward теста

Рис.1 Формирование walk-forward теста

Автор: Stanislav Korotky

 
Правильно ли понял, что walk-forward - это автооптимизация? Соответственно, кластерный анализ - это оптимизация автооптимизатора?
 
fxsaber:
Правильно ли понял, что walk-forward - это автооптимизация? Соответственно, кластерный анализ - это оптимизация автооптимизатора?

Не совсем так. Автооптимизация - это встроенный в советник алгоритм, которой на ходу подстраивает параметры советника (есть у меня в блоге на английском, в нескольких частях - начало). Walk-forward - это эмуляция данного процесса на истории, а не в онлайне, причем делает оптимизацию тестер, а советник сам себя оптимизировать не умеет - если бы умел, то тогда WFO не нужно было бы - просто запускаешь советник в тестере от морковкиных и получаешь полный отчет по форварду. Кроме того результаты кластерного анализа автоматически не применяются на следующий шаг walk-forward или простой оптимизации. Вероятно, в каких-то программах это реализовано.

MQL's OOP notes: On The Fly Self-Optimization of Expert Advisers: part 1
MQL's OOP notes: On The Fly Self-Optimization of Expert Advisers: part 1
  • www.mql5.com
Are you ready for a very very long story? It will be probably most complicated and prolonged publication in the series of MQL OOP so far, but it's surely worth reading, because its main theme is automatic self-optimization of expert advisers on the fly. This is one of the most frequently asked questions of MetaTrader users. And the answer so...
 

Если автооптимизация в Тестере, то это же и в онлайне реализовать можно. В общем, спасибо, понял.

Это дело можно реализовать и для советников без исходников.

 
fxsaber:

Если автооптимизация в Тестере, то это же и в онлайне реализовать можно. В общем, спасибо, понял.

Это дело можно реализовать и для советников без исходников.

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

 
Stanislav Korotky:

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

На данный момент не вижу ограничений.

 

Здравствуйте. Подскажите пожалуйста, можно ли средствами MT5 реализовать подобный подход по следующему алгоритму:

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

2. Сдвиг на определенный период (пусть опять будет месяц) с записью результатов в файл. Например - исследуем 2018 год.

1 месяц - оптимизация, 2 месяц тест на настройках с лучшей прибылью - запись результатов

2 месяц - оптимизация 3-месяц тест на настройках с лучшей прибылью - запись результатов

......

11 месяц - оптимизация 12-месяц тест на настройках с лучшей прибылью - запись результатов?

 
Luchezar Shalomaev:

Здравствуйте. Подскажите пожалуйста, можно ли средствами MT5 реализовать подобный подход по следующему алгоритму:

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

2. Сдвиг на определенный период (пусть опять будет месяц) с записью результатов в файл. Например - исследуем 2018 год.

1 месяц - оптимизация, 2 месяц тест на настройках с лучшей прибылью - запись результатов

2 месяц - оптимизация 3-месяц тест на настройках с лучшей прибылью - запись результатов

......

11 месяц - оптимизация 12-месяц тест на настройках с лучшей прибылью - запись результатов?

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

Делается через средства автоматического управления Тестером. Руки еще не дошли выложить готовое решение.

 
fxsaber:

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

Делается через средства автоматического управления Тестером. Руки еще не дошли выложить готовое решение.

Спасибо вот это будет работать если вставить туда свой советник?

#include <WalkForwardOptimizer.mqh>

...

int OnInit(void)
{
  // ваш рабочий код здесь
  ...

  // опционально, по умолчанию wfo_built_in_loose
  wfo_setEstimationMethod(wfo_estimation, wfo_formula);

  // опционально, по умолчанию DBL_MAX
  wfo_setPFmax(100);

  // опционально, по умолчанию false
  // wfo_setCloseTradesOnSeparationLine(true);
  
  // обязательно, все параметры из заголовочного файла
  int r = wfo_OnInit(wfo_windowSize, wfo_stepSize, wfo_stepOffset, wfo_customWindowSizeDays, wfo_customStepSizePercent);...............
 
Luchezar Shalomaev:

Спасибо вот это будет работать если вставить туда свой советник?

Это к автору статью. Но она все же рассчитана на программистов.

 
Luchezar Shalomaev:

Спасибо вот это будет работать если вставить туда свой советник?

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

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