- Generating ticks in tester
- Time management in the tester: timer, Sleep, GMT
- Testing visualization: chart, objects, indicators
- Multicurrency testing
- Optimization criteria
- Getting testing financial statistics: TesterStatistics
- OnTester event
- Auto-tuning: ParameterGetRange and ParameterSetRange
- Group of OnTester events for optimization control
- Sending data frames from agents to the terminal
- Getting data frames in terminal
- Preprocessor directives for the tester
- Managing indicator visibility: TesterHideIndicators
- Emulation of deposits and withdrawals
- Forced test stop: TesterStop
- Big Expert Advisor example
- Mathematical calculations
- Debugging and profiling
- Limitations of functions in the tester
Limitations of functions in the tester
When using the tester, you should take into account some restrictions imposed on built-in functions. Some of the MQL5 API functions are never executed in the strategy tester and some work only in single passes but not during optimization.
So, to increase performance when optimizing Expert Advisors, the Comment, Print, and PrintFormat functions are not executed.
The exception is the use of these functions inside the OnInit handler which is done to make it easier to find possible causes of initialization errors.
Functions that provide interaction with the "world" are not executed in the strategy tester. These include MessageBox, PlaySound, SendFTP, SendMail, SendNotification, WebRequest, and functions for working with sockets.
In addition, many functions for working with charts and objects have no effect. In particular, you will not be able to change the symbol or period of the current chart by calling ChartSetSymbolPeriod, list all indicators (including subordinate ones) with ChartIndicatorGet, work with templates ChartSaveTemplate, and so on.
In the tester, even in the visual mode, interactive chart, object, keyboard and mouse events are not generated for the OnChartEvent handler.