Tester Control – library MetaTrader 4

Idea: As far as i know, many times i need backtest some EA to find a proper settings. Run backtest from time1 to time2, change settings and run again… after 1h waiting, must click to Start and test is again.

If u use summary report or something similar or newer, u can fully automated the whole backtest pocedure. Just using this library… 😀

So the inspiration was the Mike Furlender – script, but his code is not as good enough (btw thanks), ofc my code isnt so good…

Library:

2 files needed:

– MetaTrader\experts\include -> testerControl.mqh
– MetaTrader\libraries -> specialUser32.mq4
u must compile specialUser32 solo, because some control handling need different type of SendMessageA function from user32.dll, in this file the lparam is string not an integer.
and testerControl file using this specialUser32 as a library importing by ex4 file.

Sample:

– MetaTrader\experts\scripts -> AutomataTesterSample.mq4

In this sample demonstrate how u can use this library, simply as enough. Specify multiple experts,symbol,period,(from-to) time… Ofc use them in your own way, just few requirements needed:
use this funtion on Init() procedure – this rutin detect a Tester window and controls…

Alternative:  NDA_e - indicator MetaTrader 4
InitTester();

and set the tester options by

SetTesterOptions(...);

and run it by

StartTester();

thats all folks.

Update 1.1

Every comobox items, enough to write unique pre-name e.g. advisor name: ea_symr_tes but Full name is ea_symr_test, Copyright © 2011, Symr

new method present – settings are similar the expert properties window

#define TST_POS_LONG_ONLY        "Long only"
#define TST_POS_SHORT_ONLY       "Short only"
#define TST_POS_LONG_SHORT       "Long & Short"

#define TST_OPT_BALANCE          "Balance"
#define TST_OPT_PROFIT_FACTOR    "Profit Factor"
#define TST_OPT_EXPECTED_PAYOFF  "Expected Payoff"
#define TST_OPT_MAXIMAL_DRAWDOWN "Maximal Drawdown"
#define TST_OPT_DRAWDOWN_PERCENT "Drawdown Percent"

void SetTestingOptions(string advisor, int money, string currency, string positions, string optpar, bool genetic = false);
Features for futures:

– u can edit optimalization parameters via this library

📈 ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks