• Обзор
  • Отзывы (1)
  • Обсуждение (6)

WalkForwardLight MT5

Это упрощенная и эффективная версия библиотеки для walk-forward анализа торговых экспертов. Она собирает данные о торговле эксперта во время процесса его оптимизации в тестере MetaTrader и сохраняет их в промежуточные файлы в каталоге MQL5\Files. Затем на основе этих файлов автоматически строится кластерный walk-forward отчет и уточняющие его rolling walk-forward отчеты (все они - в одном HTML-файле). С помощью вспомогательного скрипта WalkForwardBuilder MT5 можно на тех же промежуточных файлах построить другие отчеты - для других критериев оптимизации. Это удобно тем, что исключает этап повторной оптимизации в тестере. Скрипт - бесплатный.

Имеется аналогичная библиотека для MetaTrader 4 - WalkForwardLight. У неё меньше возможностей, она требует выполнения части операций вручную.

Подробное Руководство пользователя опубликовано в блогах.

Данная библиотека выполняет walk-forward анализ нетрадиционным методом (детали - в Руководстве). Для тех, кто хочет придерживаться стандартной процедуры более точно, насколько это возможно при реализации на встроенном тестере без внешних программ, имеется библиотека WalkForwardOptimizer MT5 (доступна также в MetaTrader 4). Она поддерживает больше режимов работы и предоставляет больше гибкости в настройках, но соответственно более сложная и требовательная к ресурсам компьютера.


Заголовочный файл wfL.mqh

enum WFO_ESTIMATION_METHOD {wfo_profit, wfo_sharpe, wfo_pf, wfo_drawdown, wfo_profit_by_drawdown, wfo_profit_trades_by_drawdown, wfo_average};

input WFO_ESTIMATION_METHOD Estimator = wfo_profit;

#import "wfL.ex5"
  void wfl_OnTesterInit();
  void wfl_OnTesterPass();
  void wfl_OnTesterDeinit(const WFO_ESTIMATION_METHOD estimator);
  void wfl_OnInit();
  double wfl_OnTester();
  void wfl_OnTick();
#import


Пример использования в коде эксперта

input bool EnableWFL = false;

#include <wfL.mqh>

int OnInit()
{
  // ваш рабочий код
  // ...
  if(EnableWFL) wfl_OnInit();
  return(INIT_SUCCEEDED);
}

void OnTick()
{
  // ваш рабочий код
  // ...
  if(EnableWFL) wfl_OnTick();
}

void OnTesterInit()
{
  if(EnableWFL) wfl_OnTesterInit();
}

void OnTesterPass()
{
  if(EnableWFL) wfl_OnTesterPass();
}

void OnTesterDeinit()
{
  if(EnableWFL) wfl_OnTesterDeinit(Estimator);
}

double OnTester()
{
  if(EnableWFL) return wfl_OnTester();
  return 0;
}
ivanov1253
175
ivanov1253 2017.09.27 12:04   

После установки библиотеки и включении заголовочного файла в тело эксперта терминал выдает ошибку: cannot open file 'wfL.ex5'.

Попробовано на двух разных терминалах.