Discussing the article: "Developing a multi-currency Expert Advisor (Part 11): Automating the optimization (first steps)"

 

Check out the new article: Developing a multi-currency Expert Advisor (Part 11): Automating the optimization (first steps).

To get a good EA, we need to select multiple good sets of parameters of trading strategy instances for it. This can be done manually by running optimization on different symbols and then selecting the best results. But it is better to delegate this work to the program and engage in more productive activities.

In general terms, our objectives can be formulated as follows: we want to get an EA that runs in the terminal and performs EA optimization with one instance of a trading strategy on several symbols and timeframes. Let these be EURGBP, EURUSD and GBPUSD, as well as timeframes H1, M30 and M15. We need to be able to select from the results of each optimization pass stored in the database those that will relate to a specific symbol and timeframe (and later to some other combinations of test parameters).

We will select a few best results according to different criteria from each group of results for one symbol-timeframe combination. We will place all selected instances into one (for now) instance group. Then we need to determine the group multiplier. A separate EA will do this in the future, but for now we can do this manually.

We form an initialization string to be used in the final EA based on the selected group and multiplier.

Author: Yuriy Bykov

 
Just four Tester automation functions (and only one of them with an input parameter) and everything works.
 

Yes, I didn't expect it to be so simple myself. At first I studied Validate, I thought I would have to write something of my own based on it, but then I realised that I could do with a simpler implementation.

Thanks again for a great library!