• Visão global
  • Comentários (8)
  • Discussão (185)
  • O que há de novo

WalkForwardOptimizer MT5

3.86

WalkForwardOptimizer library allows you to perform rolling and cluster walk-forward optimization of expert advisers (EA) in MetaTrader 5.

To use the library include its header file WalkForwardOptimizer.mqh into your EA source code, add call provided functions as appropriate.

Once the library is embedded into EA, you may start optimization according to the procedure described in the User guide. When it's finished, intermediate results are saved into a CSV file and some special global variables. Also a comprehensible report is generated as HTML page.

Warning! Do not pause optimization process. Clicking Start button (even if it resumes suspended optimization) will rewrite WF results from scratch. MQL5 API does not allow to distinguish new optimization from resumed old one.


This is a library. It requires a user to have some developer skills. If you do not have source codes of your EA (if it's a 3-rd party commercial EA) or do not understand the sources codes (if it's made for you by custom developer), please, contact the author/developer of the EA (source codes) to solve all problems. If he thinks there is a bug in the library, then let the author/developer contact me directly. I need technical details (which are hard to receive from non-developers) to provide proper support.

The text is shortened due to size limit - download full file from Comments.

WalkForwardOptimizer.mqh Header File

#define DAYS_PER_WEEK    7
#define DAYS_PER_MONTH   30
#define DAYS_PER_QUARTER (DAYS_PER_MONTH*3)
#define DAYS_PER_HALF    (DAYS_PER_MONTH*6)
#define DAYS_PER_YEAR    (DAYS_PER_MONTH*12)

#define SEC_PER_DAY     (60*60*24)
#define SEC_PER_WEEK    (SEC_PER_DAY*DAYS_PER_WEEK)
#define SEC_PER_MONTH   (SEC_PER_DAY*DAYS_PER_MONTH)
#define SEC_PER_QUARTER (SEC_PER_MONTH*3)
#define SEC_PER_HALF    (SEC_PER_MONTH*6)
#define SEC_PER_YEAR    (SEC_PER_MONTH*12)

#define CUSTOM_DAYS     -1

enum WFO_TIME_PERIOD {none = 0, year = DAYS_PER_YEAR, halfyear = DAYS_PER_HALF, quarter = DAYS_PER_QUARTER, month = DAYS_PER_MONTH, week = DAYS_PER_WEEK, day = 1, custom = CUSTOM_DAYS};

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

#import "WalkForwardOptimizer MT5.ex5" // !after install must be copied into MQL5/Libraries
void wfo_setEstimationMethod(WFO_ESTIMATION_METHOD estimation, string formula);
void wfo_setPFmax(double max);
void wfo_setCloseTradesOnSeparationLine(bool b);
void wfo_OnTesterPass();
int wfo_OnInit(WFO_TIME_PERIOD optimizeOn, WFO_TIME_PERIOD optimizeStep, int optimizeStepOffset, int optimizeCustomW, int optimizeCustomS);
int wfo_OnTick();
double wfo_OnTester();
void wfo_OnTesterInit(string optimizeLog);
void wfo_OnTesterDeinit();
#import

input WFO_TIME_PERIOD wfo_windowSize = year;
input int wfo_customWindowSizeDays = 0;
input WFO_TIME_PERIOD wfo_stepSize = quarter;
input int wfo_customStepSizePercent = 0;
input int wfo_stepOffset = 0;
input string wfo_outputFile = "";
input WFO_ESTIMATION_METHOD wfo_estimation = wfo_built_in_loose;
input string wfo_formula = "";


Example of Usage

#include <WalkForwardOptimizer.mqh>

...

int OnInit(void)
{
  // your actual code goes here
  ...

  wfo_setEstimationMethod(wfo_estimation, wfo_formula); // wfo_built_in_loose by default
  wfo_setPFmax(100); // DBL_MAX by default
  // wfo_setCloseTradesOnSeparationLine(true); // false by default
  
  // this is the only required call in OnInit, all parameters come from the header
  int r = wfo_OnInit(wfo_windowSize, wfo_stepSize, wfo_stepOffset, wfo_customWindowSizeDays, wfo_customStepSizePercent);
  
  return(r);
}

void OnTesterInit()
{
  wfo_OnTesterInit(wfo_outputFile); // required
}

void OnTesterDeinit()
{
  wfo_OnTesterDeinit(); // required
}

void OnTesterPass()
{
  wfo_OnTesterPass(); // required
}

double OnTester()
{
  return wfo_OnTester(); // required
}

void OnTick(void)
{
  int wfo = wfo_OnTick();
  if(wfo == -1)
  {
    // can do some non-trading stuff, such as gathering bar or ticks statistics
    return;
  }
  else if(wfo == +1)
  {
    // can do some non-trading stuff
    return;
  }

  // your actual code goes here
  ...
}
Comentários 8
Killerplautze
519
Killerplautze 2024.08.27 20:00 
 

Truly a powerful tool. A little complicated at first, but the support is very good. This is how it will work in the end.

BlackOpzFX
138
BlackOpzFX 2023.04.01 04:57 
 

WOW!! Incredible Tool!! - Such a Time Saver. Pretty Easy To Integrate Also. I have tools that can schedule multiple walk-forwards but the analysis report is worth its weight in gold for determining how often to optimize your EA. Other tools that have walk-forward integrate the 'rolling' option and stats. Why Metatrader didn't is a mystery (will probably update one day). Until its properly added to MT5 this library powerfully fills the gap!

Wells Velasquez Maciel
564
Wells Velasquez Maciel 2020.11.21 10:36 
 

Honestly, the best thing I ever bought for MT5! Congrats!

Produtos recomendados
The following library is proposed as a means of being able to use the OpenAI API directly on the metatrader, in the simplest way possible. For more on the library's capabilities, read the following article: https://www.mql5.com/en/blogs/post/756098 The files needed to use the library can be found here: Manual IMPORTANT: To use the EA you must add the following URL to allow you to access the OpenAI API as shown in the attached images In order to use the library, you must include the following Hea
Ajuste BRA50
Claudio Rodrigues Alexandre
4.4 (5)
Este script marca no gráfico do ativo BRA50 da active trades o ponto de ajuste do contrato futuro do Mini Índice Brasileiro (WIN), ***ATENÇÃO***  para este script funcionar é necessário autorizar a URL da BMF Bovespa no Meta Trader. passo a passo: MetaTrader 5 -> Ferramentas -> Opções -> Expert Adivisors * Marque a opção "Relacione no quadro abaixo as URL que deseja permitir a função WebRequest" e no quadro abaixo adicione a URL: https://www2.bmf.com.br/ este indicador usa a seguinte página pa
FREE
Free version. Only works on EURUSD Do you want to always know in a quick glance where price is going? Are you tired of looking back and forth between different timeframes to understand that? This indicator might just be what you were looking for. Trend Signal Multitimeframe shows you if the current price is higher or lower than N. candles ago, on the various timeframes. It also displays how many pips higher or lower current price is compared to N. candles ago. Number N. is customizable The data
FREE
K Trade Lib5
Kaijun Wang
2 (1)
MT4/5通用交易库(  一份代码通用4和5 ) #import "K Trade Lib5.ex5"    //简单开单    long OrderOpen( int type, double volume, int magic, string symbol= "" , string comment= "" , double opprice= 0 , double sl= 0 , double tp= 0 , int expiration= 0 , bool slsetmode= false , bool tpsetmode= false );    //复杂开单    void SetMagic( int magic, int magic_plus= 0 ); void SetLotsAddMode(int mode=0,double lotsadd=0);    long OrderOpenAdvance( int mode, int type, double volume, int step, int magic, string symbol= "" , string comm
FREE
This is a simplified and effective version of the library for walk forward analysis of trading experts. It collects data about the expert's trade during the optimization process in the MetaTrader tester and stores them in intermediate files in the "MQL5\Files" directory. Then it uses these files to automatically build a cluster walk forward report and rolling walk forward reports that refine it (all of them in one HTML file). Using the WalkForwardBuilder MT5 auxiliary script allows building othe
Intro to Range Breakout Strategy (pre-close clearance) Range = yesterday high - Yesterday low On track = opening price + range *k; Lower rail = Open price - range *K Stop-loss closing position: When the price breaks up the upper track or breaks down the lower track, it breaks the opening price of the day again Parameters: Pairs List (comma separated)       = "GBPUSD,GBPJPY,USDJPY,XAUUSD,XTIUSD,USTEC"; - TimeFrame = PERIOD_D1; - MagicNumber      = 60037;          - OrderComment     = "RangeBre
Background This product is a practical tool to check the market based on the cycle theory . When you need to use multi cycle charts to analyze a symbol , manually adding charts with different cycles and applying templates is a very large cost. This product can help you quickly add multi cycle charts of one or more symbols, and uniformly apply the same template . After adding, you can drag the charts to the sub screen, which is suitable for multi screen analysis. Usage Method Apply this script t
FREE
The Dfx Position Risk Calculation Tool is an MT5 indicator developed by DefenderFX Ltd. designed to assist traders in assessing risk and reward for their trades. The tool automatically calculates the risk-to-reward ratio based on user-defined parameters, such as lot size and take profit (TP) level. It provides visual lines on the chart for entry (Blue Color), stop loss (SL) – Red Color, and TP levels (Green Color), which traders can adjust by dragging. Key Features: Input Parameters : Traders ca
The Expert Advisor will help you forward all alert from  MetaTrader 5 to Telegram channel/ group.  All alert must save to folder <Data folder>MQL5\Files\Alerts\ , text file with format *.txt and screenshot with format *.gif or *.png. Parameters: - Telegram Bot Token: - create bot on Telegram and get token. - Telegram Chat ID:  - input your Telegram user ID,  group / channel ID - Forward Alert: - default true, to forward alert. - Send message as caption of Screenshot: - default false, set true
Trading Notes   is an innovative tool designed for traders to streamline their decision-making process by allowing them to write and display important reminders or short details directly over their trading charts. This essential feature ensures that traders have quick access to their personalized checklist before opening any positions, enhancing their trading efficiency and accuracy. MT4 Version -  https://www.mql5.com/en/market/product/120613 Key Features: Five Customizable Input Fields:   Trad
FREE
This OCO Closer is one of the most useful things in my toolbox. You can place as many pending orders as you want on your chart, then after adding this to the chart it will delete them all once a Buy or Sell Position Opens. This is great for those times when you think the price might reverse trend, or if you simply want to hedge your bets both ways. Bear in mind that this will only delete the pending orders on the current currency pair, so you can set Buy and Sell pending orders on as many pairs
AO Core
Andrey Dik
3 (2)
AO Core is the core of the optimization algorithm, it is a library built on the author's HMA (hybrid metaheuristic algorithm) algorithm. Pay attention to the MT5 Optimization Booster product , which makes it very easy to manage the regular MT5 optimizer . An example of using AO Core is described in the article: https://www.mql5.com/ru/articles/14183 https://www.mql5.com/en/blogs/post/756510 This hybrid algorithm is based on a genetic algorithm and contains the best qualities and properties of
Scientific Calculator MT5
Francisco Manuel Vicente Berardo
The Scientific Calculator is a script designed to compute science, engineering and mathematics expressions.  General Description   The expression to calculate must obey syntax rules and precedence order, being constituted by the following elements:   Integer and real numbers.  Mathematical operators for addition (+), subtraction (-), multiplication (*), division (/) and exponentiation (^).  Mathematical and trigonometric functions .  Curved parentheses (()) to define the precedence and contai
FREE
T5l Library é necessaria para o uso dos robos da TSU Investimentos, nele você tera todo o framework de funções para o funcionamento correto dos nossos Expert Advisors para MetaTrader 5  ツ . -   O Robos  Expert Advisors da TSU Invesitmentos não funcionarão sem esta biblioteca de funções, o T5L library podera receber atualizações e melhorias ao longo do tempo. - Na biblioteca que voçê encontrará f uncionalidades diversas como envio de ordens, compra e venda, verificação de gatilhos de entradas, an
This indicator allows to hide ATR oscillator (on all MT5 timeframes) from a date define by the user, with a vertical line (Alone) or a panel (with "Hidden Candles"). Indicator Inputs: Period Information on "Average True Range" indicator is available here:   https://www.metatrader4.com/en/trading-platform/help/analytics/tech_indicators/average_true_range ************************************************************* Hey traders!!  Give me your feeds!  We are a community here and we have the same o
FREE
Risk Controller Expert Advisor, um programa que permite controlar o risco total de seus consultores de negociação em sua conta. Com este programa, você pode controlar o risco máximo que será permitido na conta de todos os conselheiros. Por exemplo, você define o risco de 30% do rebaixamento máximo, o que significa que se seus robôs de negociação de ações excederem o risco de 30%, o Controlador de Risco fechará todas as posições dos consultores e também poderá fechar todos os gráficos abertos, p
The script allows to close all opened positions if Sum of Profit from all opened positions  is greater than value of the input parameter: SumProfit . Input parameters SumProfit = 100 You can change SumProfit  to any positive value ( in dollars , not in the points!). This script will close all positions for a given currency pair only. Keep in mind that you have to " Allow automated trading " on the "Expert Advisors" tab (Tools->Options).
Este é um EXPERT com FOCO em APRENDIZAGEM  e DESENVOLVIMENTO PROFISSIONAL !!! A ideia deste produto é comercialiar o código-fonte, permitindo que aqueles que querem desenvolver seus próprios robôs, ou iniciar uma atividade profissional de desenvolvimento de experts customizados tenham um código-fonte de referência que os ajude no processo de aprendizagem e desenvolvimento. Este código-fonte será incrementado, ou seja, novas funcionalidades serão criadas, permitindo assim que o projeto continue
SymbolAutoChanger PRO MT5   There is also version for MetaTreader4 This tool allows you to automatically change the chart symbols in a row. Example: EUR → GBP → JPY → CHF → CAD → AUD → NZD You need only to set up interval in seconds between auto switch. Also, you can choose whether to switch between all symbols provided by your broker or only between symbols available in the Market Watch window. PRO version  has following featuters: Next button Previous button Pause/Continue botton With this e
Ofir Blue exporter is a handy utility to export your orders history to a JSON file . You'll need it if you want to back-test Ofir blue or Ofir Hedging , using your own trading history. How it works: Install the indicator on a chart Press export all or export <current symbol> (for example GBPUSD) The indicator will create the json file in the directory files/ofirblue/export. This directory is in the common file area. The file will be automatically taken in charge by Ofir blue strategy tester
FREE
Nmt5
Liang Qi Quan
这段代码是一个简单的交易专家顾问(Expert Advisor)示例,主要功能如下: 使用两个移动平均线(MA)作为交易信号: 快速MA(FastMA)和慢速MA(SlowMA) 初始化函数(OnInit): 创建两个MA指标句柄 设置数组为时间序列模式 清理函数(OnDeinit): 释放指标句柄,防止内存泄漏 主要交易逻辑(OnTick): 获取最新的MA值 判断趋势和交易信号 在无持仓时执行交易 交易规则: 上升趋势+买入信号时开多单 下降趋势+卖出信号时开空单 使用固定的止损和止盈点数 风险管理: 使用输入参数设置交易手数、止损和止盈 每次只允许一个持仓(inTrade变量) 使用MQL5的Trade库进行交易操作,简化了下单过程 这个EA适合初学者学习,展示了基本的EA结构和简单的交易策略实现方法。但在实际使用前,还需要进行更多的测试和优化。
The utility is designed for manually placing the first order in trading with a user-defined magic number that corresponds to the magic number of the currently running EA. You can choose the direction for opening an order and open it using "The First Orders". After that, disable "The First Orders" and enable your trading expert, which picks up the newly placed order and considers it to be its own, managing it accordingly. Trading experience helps traders to better determine the trade direction th
A script for closing positions If you need to quickly close several positions, but it requires specifying maximal deviation and the number of attempt to close, this script will do all the routine for you! Allow AutoTrading before running the script. Usage: Run the script on a chart. Input Parameters: Language of messages displayed (EN, RU, DE, FR, ES) - language of the output messages (English, Russian, German, French, Spanish). Slippage - acceptable slippage when closing. Specified as for 4-d
Native Websocket
Racheal Samson
5 (5)
An   easy to use, fast,  asynchronous   WebSocket library  for MQL5. It supports: ws://   and   wss://  (Secure "TLS" WebSocket) text   and   binary   data It handles: fragmented message  automatically (large data transfer) ping-pong   frames  automatically (keep-alive handshake) Benefits: No DLL required. No OpenSSL installation required. Up to 128 WebSocket Connections from a single program. Various Log Levels for error tracing Can be synchronized to MQL5 Virtual Hosting . Completely native to
The script shows statistics of trades for the specified period. For example, if you want to know the details of trades of the ATC2010 Winner ( bobsley ): Login with his account using the investor (read-only) password (MetaTrader5); Open the chart of his trading symbol (EURUSD); Run this script on the chart; Specify 2010.10.1 in "date from", and the diagram will be shown.
Propfirm targets
Martin Muriu Maina
Its main features include: Works with any trading instruments — currency pairs, CFDs, equities, indices, commodities, futures, cryptocurrencies. Calculation inputs and results are displayed in a graphical panel. The panel can be moved freely across the chart. You can easily close or minimize it. All calculation parameters can be adjusted inside the panel in one or two mouse clicks. Entry, stop-loss, and take-profit lines can be dragged directly on the chart. You can choose to set stop-loss and t
Eu acho que você quer usar muitos recursos bonitos da plataforma Metatrader em um só lugar e sem perder. Nós projetamos um painel de negociação apenas para você. Conheça todos os recursos mágicos que você perdeu. O Nova Ultimate Trade Panel oferece a melhor e conveniente experiência de negociação! É um painel auxiliar que funciona de forma extremamente rápida e está codificado para atender a todas as suas solicitações. Você pode usá-lo facilmente em todas as suas transações comercia
Simple Trading Controller
Pierpaolo De Nicolo
4.67 (3)
The "Simple Trading Controller" for MetaTrader 5 sets a new standard for speed and efficiency in opening and closing market positions. Crafted with a clean and intuitive design, this tool is a response to the specific needs of traders, ensuring a seamless and rapid trading experience. All it provides is: Quick BUY and SELL Buttons Open multiple operations at the same time Set Trade Size Set Stop Loss Take Profit Points Close All Positions Let's go and see the advantages of using "Simple Trading
FREE
Nyse Usdxy
Mitchell Dean Ede
Displays a USD DXY chart in a seperate window below the main chart. YOUR BROKER MUST HAVE THESE SYMBOLS FOR THE INDICATOR TO WORK Based on EUR/USD, USD/JPY, GBP/USD, USD/CAD, USD/CHF and USD/SEK All these pairs must be added to Market Watch for the indicator to work correctly As this is calculated using a formula based on the 6 pairs it will only work when the market is open. YOUR BROKER MUST HAVE THESE SYMBOLS FOR THE INDICATOR TO WORK Displays a USD DXY chart in a seperate window below the
FREE
Drawdown Manager by Ofx
Osama Essameldin Ibrahim Abdelaal
In the ebb and flow of financial markets, the Drawdown Manager (by Ofx) stands out as an essential companion for traders utilizing grid and martingale strategies. This innovative tool is engineered to provide an analytical approach to managing trading drawdowns. By selectively utilizing floating and realized profits, the DDM tactically help traders control their drawdown exposure during market downturns. Its customizable settings empower traders with the flexibility to adjust operations accordi
Os compradores deste produto também adquirem
The library is dedicated to help manage your trades, calculate lot, trailing, partial close and other functions. Lot Calculation Mode 0: Fixed Lot. Mode 1: Martingale Lot (1,3,5,8,13) you can use it in different way calculate when loss=1 ,when profit=0. Mode 2: Multiplier Lot (1,2,4,8,16) you can use it in different way calculate when loss=1 ,when profit=0. Mode 3: Plus Lot (1,2,3,4,5) you can use it in different way calculate when loss=1 ,when profit=0. Mode 4: SL/Risk Lot calculate based on
Esta biblioteca permitirá que você gerencie negociações usando qualquer um de seus EA e é muito fácil de integrar em qualquer EA que você mesmo pode fazer com o código de script mencionado na descrição e também exemplos de demonstração em vídeo que mostram o processo completo. - Pedidos Place Limit, SL Limit e Take Profit Limit - Ordens Place Market, SL-Market, TP-Market - Modificar ordem de limite - Cancelar pedido - Consulta de pedidos - Mudança de alavancagem, margem - Ob
Cryptocurrency analysis has never been easier with Crypto Charts for MetaTrader 5. Now, trading on BitMEX has never been easier with BitMEX Trading API for MetaTrader 5. BitMEX Trading API library was built to be as easy to use as possible. Just include the library into your Expert Advisor or Script, call the corresponding methods and start trading! Features Trade on BitMEX and BitMEX Testnet. Build and automate your strategies. Concern more with the trading strategy logic and less with the c
Goliath Mt5
Nicolokondwani Biscaldi
Goliath MT5 - scalper fully automated Expert Advisor for medium-volatile forex markets P roperties: The Library trades 10 currency pairs (USDCHF, EURCHF, EURGBP, AUDUSD, USDCAD, GBPUSD, EURUSD, NZDUSD, CADCHF, EURAUD, EURCAD, AUDJPY) The Library does not use martingale The Library sets a fixed stop loss and take profit for all orders The Library only trades a user input volume The Library can be installed on any currency pair and any timeframe Recommendations: Before using on a real account,
Binance Library
Hadil Mutaqin SE
5 (1)
The library is used to develop automatic trading on Binance Spot Market from MT5 platform. Support all order types: Limit, Market, Stop-Limit and Stop-Market. Support margin trading. Automatically display the chart on the screen. Usage: - Open MQL5 demo account - Move BinanceLib.ex5 from folder \MQL5\Scripts\Market to MQL5\Libraries - Download Header   file and EA sample https://www.mql5.com/en/code/download/34972_260999.zip Copy Binance.mqh header file to folder \MQL5\Include Copy  BinanceEA-
The library is used to develop automatic trading on Binance Futures Market from MT5 platform. Support all order types: Limit, Market, Stop-Limit, Stop-Market , StopLoss and TakeProfit. Automatically display the chart on the screen. Usage: - Open MQL5 demo account - Move BinanceFuturesLib.ex5 from folder \MQL5\Scripts\Market to MQL5\Libraries -  Download Header file and EA sample https://www.mql5.com/en/code/download/34976_252386.zip Copy BinanceFutures.mqh header file to folder \MQL5\Include C
If you're a trader looking to use Binance.com and Binance.us exchanges directly from your MetaTrader 5 terminal, you'll want to check out Binance Library MetaTrader 5. This powerful tool allows you to trade all asset classes on both exchanges, including Spot, USD-M   and COIN-M futures, and includes all the necessary functions for trading activity. With Binance Library MetaTrader 5, you can easily add instruments from Binance to the Symbols list of MetaTrader 5, as well as obtain information ab
EA Toolkit
Esteban Thevenon
EA Toolkit   is a library that allows any developer to quickly and easily program Advisor experts. It includes many functions and enumerations such as trailing stop, lot, stop loss management, market trading authorisations, price table updates, trading conditions and many more. Installation + Documentation : You will find all the information to install this library and the documentation of its functions on this GitHub : https://github.com/Venon282/Expert-Advisor-Toolkit WARNING : The installa
This is standard library built for flexible neural Networks with performance in mind. Calling this Library is so simple and takes few lines of code:    matrix Matrix = matrix_utils.ReadCsv( "Nasdaq analysis.csv" );       matrix x_train, x_test;    vector y_train, y_test;         matrix_utils.TrainTestSplitMatrices(Matrix,x_train,y_train,x_test,y_test, 0.7 , 42 );    reg_nets = new CRegressorNets(x_train,y_train,AF_RELU_,HL, NORM_MIN_MAX_SCALER); //INitializing network       reg_nets.RegressorN
Hello everyone! I am a professional MQL programmer , Making EAs, Indicators and Trading Tools for my clients all over the world. I build 3-7 programs every week but I seldomly sell any ready-made Robots. Because I am fastidious and good strategy is so few...  this EA is the only one so far I think its good enough to be published here.  As we all know, the Ichimoku indicator has become world popular for decades, but still, only few people knows the right way of using it, and if we check the cl
Applying these methods, I managed to arrive at a nuanced conclusion that is crucial to understanding the importance of unique strategies in contemporary trading. Although the neural network advisor showed impressive efficiency in the initial stages, it proved to be highly unstable in the long run. Various factors such as market fluctuations, trend changes, external events, etc. cause its operation to be chaotic and eventually lead to instability. With these experiences, I accepted the challenge
Introducing "TG Trade Service Manager" — your all-in-one solution for seamless trade management in both MQL4 and MQL5 environments. With a focus on speed, reliability, and convenience, this powerful library simplifies the complexities of trade execution and management, empowering developers with a single interface for enhanced efficiency. Metatrader4 Version   |   All Products   |   Contact   Key Features: Unified Interface : TG Trade Service Manager" provides a unified interface for   MQL4   a
The library is dedicated to help manage your trades, calculate lot, trailing, partial close and other functions. Lot Calculation Mode 0: Fixed Lot. Mode 1: Martingale Lot (1,3,5,8,13) you can use it in different way calculate when loss=1 ,when profit=0. Mode 2: Multiplier Lot (1,2,4,8,16) you can use it in different way calculate when loss=1 ,when profit=0. Mode 3: Plus Lot (1,2,3,4,5) you can use it in different way calculate when loss=1 ,when profit=0. Mode 4: SL/Risk Lot calculate based on
WalkForwardOptimizer MT5
Stanislav Korotky
3.86 (7)
WalkForwardOptimizer library allows you to perform rolling and cluster walk-forward optimization of expert advisers (EA) in MetaTrader 5. To use the library include its header file WalkForwardOptimizer.mqh into your EA source code, add call provided functions as appropriate. Once the library is embedded into EA, you may start optimization according to the procedure described in the User guide . When it's finished, intermediate results are saved into a CSV file and some special global variables.
Esta biblioteca permitirá que você gerencie negociações usando qualquer um de seus EA e é muito fácil de integrar em qualquer EA que você mesmo pode fazer com o código de script mencionado na descrição e também exemplos de demonstração em vídeo que mostram o processo completo. - Pedidos Place Limit, SL Limit e Take Profit Limit - Ordens Place Market, SL-Market, TP-Market - Modificar ordem de limite - Cancelar pedido - Consulta de pedidos - Mudança de alavancagem, margem - Ob
GetFFEvents MT5 I tester capability
Hans Alexander Nolawon Djurberg
Want to get all events like Previous/Forecast/Actual values for each news to analyze/predict it? By this simple library you can do it easily,Just import/integrate the library into your system,then get all possible values for each news   Even In Strategy Tester   . Note: Please add the address " https://www.forexfactory.com/ " of news feed at your MT5 tab > Tools > Options > Expert Advisors > Check Allow web request for listed URL. Since the WebRequest() function can't be called from indicator ba
MetaCOT 2 CFTC ToolBox MT5
Vasiliy Sokolov
3.67 (3)
MetaCOT 2 CFTC ToolBox is a special library that provides access to CFTC (U.S. Commodity Futures Trading Commission) reports straight from the MetaTrader terminal. The library includes all indicators that are based on these reports. With this library you do not need to purchase each MetaCOT indicator separately. Instead, you can obtain a single set of all 34 indicators including additional indicators that are not available as separate versions. The library supports all types of reports, and prov
Order Book, known also as Market Book, market depth, Level 2, - is a dynamically updated table with current volumes of orders to buy and to sell specific financial instument at price levels near Bid and Ask. MetaTrader 5 provides the means for receiving market book from your broker, but in real time only, without access to its history. The library OrderBook History Library reads market book state in the past from archive files, created by OrderBook Recorder . The library can be embedded into you
Cryptocurrency analysis has never been easier with Crypto Charts for MetaTrader 5. Now, trading on BitMEX has never been easier with BitMEX Trading API for MetaTrader 5. BitMEX Trading API library was built to be as easy to use as possible. Just include the library into your Expert Advisor or Script, call the corresponding methods and start trading! Features Trade on BitMEX and BitMEX Testnet. Build and automate your strategies. Concern more with the trading strategy logic and less with the c
Teclado trader, é uma BIBLIOTECA que você pode chamar no OnChartEvent para abrir posição de compra/venda/zerar, os botões padrões são: V = venda C = compra Z = zerar posições a mercado S = zerar posições opostas e depois a mercado X = zerar posições opostas Além da função de teclado, é possível mostrar os estados do ExpertAdvisor usando o MagicId, com informação de: lucro mensal, semanal, diario, e posição aberta, para isto use o OnTick, ou qualquer outro evento (OnTimer / OnTrade / OnBookEv
Goliath Mt5
Nicolokondwani Biscaldi
Goliath MT5 - scalper fully automated Expert Advisor for medium-volatile forex markets P roperties: The Library trades 10 currency pairs (USDCHF, EURCHF, EURGBP, AUDUSD, USDCAD, GBPUSD, EURUSD, NZDUSD, CADCHF, EURAUD, EURCAD, AUDJPY) The Library does not use martingale The Library sets a fixed stop loss and take profit for all orders The Library only trades a user input volume The Library can be installed on any currency pair and any timeframe Recommendations: Before using on a real account,
Binance Library
Hadil Mutaqin SE
5 (1)
The library is used to develop automatic trading on Binance Spot Market from MT5 platform. Support all order types: Limit, Market, Stop-Limit and Stop-Market. Support margin trading. Automatically display the chart on the screen. Usage: - Open MQL5 demo account - Move BinanceLib.ex5 from folder \MQL5\Scripts\Market to MQL5\Libraries - Download Header   file and EA sample https://www.mql5.com/en/code/download/34972_260999.zip Copy Binance.mqh header file to folder \MQL5\Include Copy  BinanceEA-
Gold plucking machine   Gold plucking machine is an Expert Advisor designed specifically for trading gold. The operation is based on opening orders using the Fast and Slow lines indicator, thus the EA works according to the "Trend Follow" strategy, which means following the trend. Use grid strategy to place orders without stop loss operation, so please make sure the account has sufficient funds. magic number      -  is a special number that the EA assigns to its orders. Lot Multiplier        -
Gold plucking machine S   Gold plucking machine  S Gold plucking machine S   is an Expert Advisor designed specifically for trading gold. The operation is based on opening orders using the Fast and Slow lines indicator, thus the EA works according to the "Trend Follow" strategy, which means following the trend. Use grid strategy to place orders without stop loss operation, so please make sure the account has sufficient funds. magic number        -  is a special number that the EA assigns to its
The library is used to develop automatic trading on Binance Futures Market from MT5 platform. Support all order types: Limit, Market, Stop-Limit, Stop-Market , StopLoss and TakeProfit. Automatically display the chart on the screen. Usage: - Open MQL5 demo account - Move BinanceFuturesLib.ex5 from folder \MQL5\Scripts\Market to MQL5\Libraries -  Download Header file and EA sample https://www.mql5.com/en/code/download/34976_252386.zip Copy BinanceFutures.mqh header file to folder \MQL5\Include C
The Trade Tracker Library is used to automatically detect and display trade levels on custom charts. It is an especially useful add-on for EAs that trade on custom charts in MT5. With the use of this library, the EA users can see trades as they are placed via the EA (Entry, SL & TP levels) in real-time. The header file and two examples of EA skeleton files are attached in the comments section (first comment). The library will automatically detect the tradable symbol for the following custom
MT4/5通用交易库(  一份代码通用4和5 ) #ifdef __MQL5__      #define KOD_TICKET ulong      #define KOD_MAGIC   long #else        #define KOD_TICKET long      #define KOD_MAGIC   int #endif class ODLIST; #import "K Trade Lib Pro 5.ex5"       //祝有个美好开始,运行首行加入    void StartGood() ;    //简单开单    long OrderOpen( int type, double volume, int magic, string symbol= "" , string comment= "" , double opprice= 0 , double sl= 0 , double tp= 0 , int expiration= 0 , bool slsetmode= false , bool tpsetmode= false );    //复杂开单
If you're a trader looking to use Binance.com and Binance.us exchanges directly from your MetaTrader 5 terminal, you'll want to check out Binance Library MetaTrader 5. This powerful tool allows you to trade all asset classes on both exchanges, including Spot, USD-M   and COIN-M futures, and includes all the necessary functions for trading activity. With Binance Library MetaTrader 5, you can easily add instruments from Binance to the Symbols list of MetaTrader 5, as well as obtain information ab
1. What is this The MT5 system comes with very few optimization results. Sometimes we need to study more results. This library allows you to output more results during backtest optimization. It also supports printing more strategy results in a single backtest. 2. Product Features The results of the optimized output are quite numerous. CustomMax can be customized. The output is in the Common folder. It is automatically named according to the name of the EA, and the name of the same EA will be au
The Matrix
Omega J Msigwa
Matrix is the foundation of complex trading algorithms as it helps you perform complex calculations effortlessly and without the need for too much computation power, It's no doubt that matrix has made possible many of the calculations in modern computers as we all know that bits of information are stored in array forms in our computer memory RAM, Using some of the functions in this library I was able to create machine learning robots that could take on a large number of inputs To use this libra
Mais do autor
VolumeDeltaMT5
Stanislav Korotky
This indicator provides the analysis of tick volume deltas. It calculates tick volumes for buys and sells separately, and their delta on every bar, and displays volumes by price clusters (cells) within a specified bar (usually the latest one). This is a limited substitution of market delta analysis based on real volumes, which are not available on Forex. The indicator displays the following data in its sub-window: light-blue histogram - buy (long) volumes; orange histogram - sell (short) volumes
RenkoFromRealTicks
Stanislav Korotky
4.5 (2)
This non-trading expert utilizes so called custom symbols feature ( available in MQL API as well) to build renko charts based on history of real ticks of selected standard symbol. RenkoFromRealTicks generates custom symbol quotes, thus you may open many charts to apply different EAs and indicators to the renko. It also transmits real ticks to update renko charts in real time. The generated renko chart uses M1 timeframe. It makes no sense to switch the renko chart to a timeframe other than M1. T
CCFpExt
Stanislav Korotky
CCFpExt is an extended version of the classic cluster indicator - CCFp. Main Features Arbitrary groups of tickers or currencies are supported: can be Forex, CFDs, futures, spot, indices; Time alignment of bars for different symbols with proper handling of possibly missing bars, including cases when tickers have different trading schedule; Using up to 30 instruments for market calculation (only first 8 are displayed). Parameters Instruments - comma separated list of instruments with a common cu
AutomaticZigZag
Stanislav Korotky
4.5 (2)
This is a non-parametric ZigZag providing 4 different methods of calculation. Upward edge continues on new bars while their `highs` are above highest `low` among previous bars, downward edge continues on next bars while their `lows` are below lowest `high` among previous; Gann swing: upward edge continues while `highs` and `lows` are higher than on the left adjacent bar, downward edge continues while `highs` and `lows` are lower than on the left adjacent bar. Inside bars (with lower `high` and
FREE
Order Book, known also as Market Book, market depth, Level 2, - is a dynamically updated table with current volumes of orders to buy and to sell specific financial instument at price levels near Bid and Ask. MetaTrader 5 provides the means for receiving market book from your broker, but in real time only, without access to its history. The indicator OrderBook Cumulative Indicator accumulates market book data online and visualizes them on the chart. In addition, the indicator can show the market
CustomVolumeDelta
Stanislav Korotky
5 (1)
This indicator displays volume delta (of either tick volume or real volume) encoded in a custom symbol, generated by special expert advisers, such as RenkoFromRealTicks . MetaTrader does not allow negative values in the volumes, this is why we need to encode deltas in a special way, and then use CustomVolumeDelta indicator to decode and display the deltas. This indicator is applicable only for custom instruments generated in appropriate way (with signed volumes encoded). It makes no sense to ap
FREE
Order Book, known also as Market Book, market depth, Level 2, - is a dynamically updated table with current volumes of orders to buy and to sell specific financial instument at price levels near Bid and Ask. MetaTrader 5 provides the means for receiving market book from your broker, but in real time only, without access to its history. The library OrderBook History Library reads market book state in the past from archive files, created by OrderBook Recorder . The library can be embedded into you
TrueVolumeSurrogate MT5
Stanislav Korotky
5 (1)
This indicator provides a true volume surrogate based on tick volumes. It uses a specific formula for calculation of a near to real estimation of trade volumes distribution , which may be very handy for instruments where only tick volumes are available. Please note that absolute values of the indicator do not correspond to any real volumes data, but the distribution itself, including overall shape and behavior, is similar to real volumes' shape and behavior of related instruments (for example, c
WalkForwardDemo MT5
Stanislav Korotky
WalkForwardDemo is an expert adviser (EA) demonstrating how the built-in library WalkForwardOptimizer (WFO) for walk-forward optimization works. It allows you to easily optimize, view and analyze your EA performance and robustness in unknown trading conditions of future. You may find more details about walk-forward optimization in Wikipedia . Once you have performed optimization using WFO, the library generates special global variables (saved in an "archived" file with GVF-extension) and a CSV-f
FREE
Comparator
Stanislav Korotky
4.75 (4)
This indicator compares the price changes during the specified period for the current symbol and other reference symbol. It allows to analyze the similar movements of highly correlated symbols, such as XAUUSD and XAGUSD, and find their occasional convergences and divergences for trading opportunities. The indicator displays the following buffers: light-green thick line - price changes of the current symbol for TimeGap bars; light-blue thin line - price changes of the reference symbol ( LeadSymbo
FREE
Order Book, known also as Market Book, market depth, Level 2, - is a dynamically updated table with current volumes of orders to buy and to sell specific financial instument at price levels near Bid and Ask. MetaTrader 5 provides the means for receiving market book from your broker, but in real time only, without access to its history. This expert adviser OrderBook History Playback allows you to playback the market book events on the history using files, created by OrderBook Recorder . The exper
FREE
Order Book, known also as Market Book, market depth, Level 2, - is a dynamically updated table with current volumes of orders to buy and to sell specific financial instument at price levels near Bid and Ask. MetaTrader 5 provides the means for receiving market book from your broker in real time. The expert OrderBook Recorder records market book changes and stores them in local files for further usage in indicators and expert adviser, including testing in the tester. The expert stores market book
FREE
This is a demo version of a non-trading expert , which utilizes so called the custom symbols feature ( available in MQL as well ) to build renko charts based on historical quotes of selected standard symbol and to refresh renko in real-time according to new ticks. Also it translates real ticks to the renko charts, which allows other EAs and indicators to trade and analyze renko. Place the EA on a chart of a working instrument. The lesser timeframe of the source chart is, the more precise resulti
FREE
HZZM
Stanislav Korotky
4 (1)
This is an adaptive ZigZag based on modification of  HZZ indicator (original source code is available in this article ). Most important changes in this version: two additional indicator buffers added for zigzag evolution monitoring - they show cross signs at points where zigzag direction first changes; zigzag range (H) autodetection on day by day basis; time-dependent adjustment of zigzag range. Parameters: H - zigzag range in points; this parameter is similar to original HZZ, but it can take 0
FREE
This script allows performing a walk-forward analysis of trading experts based on the data collected by the WalkForwardLight MT5 library. The script builds a cluster walk forward report and rolling walk forward reports that refine it, in the form of a single HTML page. This script is optional, as the library automatically generates the report immediate after the optimization in the tester is complete. However, the script is convenient because it allows using the same collected data to rebuild th
FREE
ReturnAutoScale
Stanislav Korotky
5 (2)
The indicator calculates running total of linear weighted returns. It transforms rates into integrated and difference-stationary time series with distinctive buy and sell zones. Buy zones are shown in blue, sell zones in red. Parameters: period - number of bars to use for linear weighted calculation; default value - 96; smoothing - period for EMA; default value - 5; mode - an integer value for choosing calculation mode: 0 - long term trading; 1 - medium term trading; 2 - short term trading; defa
FREE
OrderBook Utilities is a script, which performs several service operations on order book hob-files, created by OrderBook Recorder . The script processes a file for work symbol of the current chart. The file date is selected by means of the input parameter CustomDate (if it's filled in) or by the point where the script is dropped on the chart. Depending from the operation, useful information is written into the log, and optionally new file is created. The operation is selected by the input parame
FREE
Time And Sales Layout indicator shows traded buy and sell volumes right on the chart. It provides a graphical representation of most important events in the time and sales table. The indicator downloads and processes a history of real trade ticks. Depending from selected depth of history, the process may take quite some time. During history processing the indicator displays a comment with progress percentage. When the history is processed, the indicator starts analyzing ticks in real time. The l
PointsVsBars
Stanislav Korotky
This indicator provides a statistical analysis of price changes (in points) versus time delta (in bars). It calculates a matrix of full statistics about price changes during different time periods, and displays either distribution of returns in points for requested bar delta, or distribution of time deltas in bars for requested return. Please, note, that the indicator values are always a number of times corresponding price change vs bar delta occurred in history. Parameters: HistoryDepth - numbe
FREE
Year2Year
Stanislav Korotky
This indicator shows price changes for the same days in past years. D1 timeframe is required. This is a predictor indicator that finds D1 bars for the same days in past 8 years and shows their relative price changes on the current chart. Parameters: LookForward - number of days (bars) to show "future" price changes; default is 5; Offset - number of days (bars) to shift back in history; default is 0; ShowAverage - mode switch; true - show mean value for all 8 years and deviation bounds; false - s
FREE
SOMFX1Builder
Stanislav Korotky
5 (1)
If you like trading by candle patterns and want to reinforce this approach by modern technologies, this script is for you. In fact, it is a part of a toolbox, that includes a neural network engine implementing Self-Organizing Map (SOM) for candle patterns recognition, prediction, and provides you with an option to explore input and resulting data. The toolbox contains: SOMFX1Builder  - this script for training neural networks; it builds a file with generalized data about most characteristic pric
FREE
Mirror
Stanislav Korotky
This indicator predicts rate changes based on the chart display principle. It uses the idea that the price fluctuations consist of "action" and "reaction" phases, and the "reaction" is comparable and similar to the "action", so mirroring can be used to predict it. The indicator has three parameters: predict - the number of bars for prediction (24 by default); depth - the number of past bars that will be used as mirror points; for all depth mirroring points an MA is calculated and drawn on the ch
If you like trading crosses (such as AUDJPY, CADJPY, EURCHF, and similar), you should take into account what happens with major currencies (especially, USD and EUR) against the work pair: for example, while trading AUDJPY, important levels from AUDUSD and USDJPY may have an implicit effect. This indicator allows you to view hidden levels, calculated from the major rates. It finds nearest extremums in major quotes for specified history depth, which most likely form resistence or support levels, a
EvoLevels
Stanislav Korotky
The indicator displays most prominent price levels and their changes in history. It dynamically detects regions where price movements form attractors and shows up to 8 of them. The attractors can serve as resistance or support levels and outer bounds for rates. Parameters: WindowSize - number of bars in the sliding window which is used for detection of attractors; default is 100; MaxBar - number of bars to process (for performance optimization); default is 1000; when the indicator is called from
This is an intraday indicator that uses conventional formulae for daily and weekly levels of pivot, resistance and support, but updates them dynamically bar by bar. It answers the question how pivot levels would behave if every bar were considered as the last bar of a day. At every point in time, it takes N latest bars into consideration, where N is either the number of bars in a day (round the clock, i.e. in 24h) or the number of bars in a week - for daily and weekly levels correspondingly. So,
Most of traders use resistance and support levels for trading, and many people draw these levels as lines that go through extremums on a chart. When someone does this manually, he normally does this his own way, and every trader finds different lines as important. How can one be sure that his vision is correct? This indicator helps to solve this problem. It builds a complete set of virtual lines of resistance and support around current price and calculates density function for spatial distributi
The indicator draws a histogram of important levels for several major currencies attached to the current cross rates. It is intended for using on charts of crosses. It displays a histogram calculated from levels of nearest extremums of related major currencies. For example, hidden levels for AUDJPY can be detected by analyzing extremums of AUD and JPY rates against USD, EUR, GBP, and CHF. All instruments built from these currencies must be available on the client. This is an extended version of
StatBars
Stanislav Korotky
The indicator provides a statistic histogram of estimated price movements for intraday bars. It builds a histogram of average price movements for every intraday bar in history, separately for each day of week. Bars with movements above standard deviation or with higher percentage of buys than sells, or vice versa, can be used as direct trading signals. The indicator looks up current symbol history and sums up returns on every single intraday bar on a specific day of week. For example, if current
This is an easy to use signal indicator which shows and alerts probability measures for buys and sells in near future. It is based on statistical data gathered on existing history and takes into account all observed price changes versus corresponding bar intervals in the past. The statistical calculations use the same matrix as another related indicator - PointsVsBars. Once the indicator is placed on a chart, it shows 2 labels with current estimation of signal probability and alerts when signal
CCFpExtra
Stanislav Korotky
CCFpExtra is an extended version of the classic cluster indicator - CCFp. This is the MT4 version of indicator  CCFpExt available for MT5. Despite the fact that MT5 version was published first, it is MT4 version which was initially developed and tested, long before MT4 market was launched. Main Features Arbitrary groups of tickers or currencies are supported: can be Forex, CFDs, futures, spot, indices; Time alignment of bars for different symbols with proper handling of possibly missing bars, in
Filtro:
Killerplautze
519
Killerplautze 2024.08.27 20:00 
 

Truly a powerful tool. A little complicated at first, but the support is very good. This is how it will work in the end.

ma814232
19
ma814232 2023.10.24 09:53 
 

商品のクオリティは高くデータもわかりやすく表示されます。ただし、どのように実装するかという点に関しまして、画像等が少なく、説明が分かりずらいため、時間がかかりました。その点を除けば満足です。 The quality of the product is high and the data is displayed clearly. However, it took a long time to understand how to implement the application because there were few images, etc., and the explanations were not easy to understand. Except for this point, I am satisfied.

Stanislav Korotky
45677
Resposta do desenvolvedor Stanislav Korotky 2023.10.24 13:16
I did my best to clarify every aspect in my blog and through the comments, but if you have had questions you should contact me directly - I'm ready to provide support.
BlackOpzFX
138
BlackOpzFX 2023.04.01 04:57 
 

WOW!! Incredible Tool!! - Such a Time Saver. Pretty Easy To Integrate Also. I have tools that can schedule multiple walk-forwards but the analysis report is worth its weight in gold for determining how often to optimize your EA. Other tools that have walk-forward integrate the 'rolling' option and stats. Why Metatrader didn't is a mystery (will probably update one day). Until its properly added to MT5 this library powerfully fills the gap!

Marcelo Pereira
25
Marcelo Pereira 2021.02.13 20:33 
 

It should have a better manual. I had some difficulties installing because the automatic deployment doesn't work. And, to put it to use, you need time. The results must show, or indicate, either the best parameters or the main set of parameters (the optimized parameters). For a while, I let side and continue with my method.

Wells Velasquez Maciel
564
Wells Velasquez Maciel 2020.11.21 10:36 
 

Honestly, the best thing I ever bought for MT5! Congrats!

Christopher G Jr Holben
223
Christopher G Jr Holben 2020.10.24 18:50 
 

Very valuable tool! Saves you a huge amount of time. It's exactly what MetaTrader is lacking and i couldn't be happier. slight learning curve as with anything else but worth every penny. Stanislav is also very helpful in providing necessary support!

Grigor Yordanov
221
Grigor Yordanov 2020.09.18 14:57 
 

O usuário não deixou nenhum comentário para sua avaliação

Winsor Hoang
3759
Winsor Hoang 2017.05.23 21:54 
 

O usuário não deixou nenhum comentário para sua avaliação

Responder ao comentário
Versão 1.16 2024.09.27
Recompilation using MT5 build 4570. Warning: ex5-file is incompatible with pre-4500+ builds.
Versão 1.15 2024.01.04
- In the report, relative drawdown estimate normalized by annual profits/losses is now shown for previously decreasing financial results as 100+% instead of 0.
- In the report, probability estimate of the drawdown is calculated by Monte Carlo method.
Versão 1.12 2023.10.26
A new bitwise flag for wfo_setAdvancedOptions function is added, which allows for resuming a paused slow/complete optimization or repeating a genetic optimization.
Versão 1.11 2020.10.04
Validation of standard meta-parameters (introduced in version 1.10) is made optional for easier intergation into custom EAs using MQL for internal WFO setup.
Versão 1.10 2020.09.23
- New experimental mode added: now you can specify forward step size not only in percents, but in days as well. To enable the mode enter negative values for wfo_customStepSizePercent. For example, optimization triplet [start, step, stop] can be [-10, -5, -50] to check forward steps of 10, 15, 20, 25, 30, 35, 40, 45, 50 days. Positive values work as before, presenting percents.
- Forward step size can now be equal to window size (in previous versions forward step should have been less than window).
- New function wfo_setAdvancedOptions(const ulong flags).
- Anchored mode restored (was accidentally disabled in 1.8).
- More diagnostic information provided in logs and reports.

Please find updated header file in Comments.
Versão 1.9 2020.09.21
Improved diagnosis of potential problems in setup, additional details are shown now in logs and in html-report.
Versão 1.8 2020.05.16
Minor bugfixes and improvements.

- The passes with numbers greater than 9007199254740992 will be skipped, as they lead to double overflow.

- Zero divide error for the rare situation with no valid passes is fixed.

- The ending date of forward period is excluded now - the same as in the tester.

- Expression evaluation engine for custom formulae is replaced with completely new one. In addition to previously supported operations, it handles now unary minus and logical negation, as well as ternary conditional statements w?t:f.

- The last parameter of FUNCPTR_WFO_CUSTOM prototype is changed to accept an array of doubles instead of a map: typedef double (*FUNCPTR_WFO_CUSTOM)(const datetime startDate, const datetime splitDate, const double &map[/*enum WFO_STATS_MAP size*/]);

- More changes in the html-report builder.
Versão 1.7 2019.08.22
Fixed a bug with datetime increments overflow, which could lead to multiple empty forward passes with zero dates 1970.01.01.
Versão 1.6 2017.12.19
Improvement: New function wfo_setCustomPerformanceMeter(FUNCPTR_WFO_CUSTOM funcptr) is added. It allows you to pass a reference to your special custom callback into the library. This callback function will be called by the library to get your custom trade efficiency mark (OnTester analogue). This can be handy if the existing approach with formula assigned via wfo_setEstimationMethod(WFO_ESTIMATION_METHOD estimation, string formula) is not sufficient for you. In the expert code one should implement a function of type FUNCPTR_WFO_CUSTOM (consult with the documentation for details).
Versão 1.5 2017.06.12
Bugfix: an overflow in calculation of forward steps for large window sizes (larger than approximately two years).
Versão 1.4 2017.06.01
Improvement: if optimization window size or forward step size is constant, cluster report is shown as a single table, which contains all performance indicators line by line.
Versão 1.3 2017.05.31
Fixed an error in calculation of the variance.