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…
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