Watch how to download trading robots for free

Interesting script?
So post a link to it -
let others appraise it

You liked the script? Try it in the MetaTrader 5 terminal


Auto optimizer - library for MetaTrader 4

Igor Malcev | English Español Русский 中文 Deutsch 日本語 Português

votes: 12
2016.03.25 14:10

The detailed article on the usage of the auto optimizer library and principles of its operation can be found here:

The code to insert in your EA:

extern int SetHour   = 0;                 //Optimization starting hour 
extern int SetMinute = 1;                 //Optimization starting minute 
int    TestDay       = 3;                 //Number of days for optimization
int    TimeOut       = 4;                 //Optimization end timeout in minutes
string NameMTS       = "Expert_Name";     //EA's name
string NameFileSet   = "SetFileName.set"; //Name of the Set-file with the settings
string PuthTester    = "PathTester";      //Path to the tester
//--- Filtering order
int    Gross_Profit   = 1;                //Sorting by Maximal profit
int    Profit_Factor  = 2;                //Sorting by Maximal profit factor
int    Expected_Payoff= 3;                //Sorting by Maximal expected payoff
//--variable names for optimization
string Per1 = "variables_1";
string Per2 = "variables_2";
string Per3 = "variables_3";
string Per4 = "variables_4";
bool StartTest=false;
datetime TimeStart;
//--- Include the auto optimizer library
#include <auto_optimization.mqh>
The code to insert in the start() function
// Not to be launched at testing and optimizing   
if(!IsTesting() && !IsOptimization())
    // Compare the current hour with that preset for launching
    if(TimeHour(TimeLocal()) == SetHour)
        // Protection against restarting
            // Compare the minute range to the minute preset for launching
            if(TimeMinute(TimeLocal()) > SetMinute - 1)
                // the range is necessary, if for some reason 
                // no new tick is available for a long time
                if(TimeMinute(TimeLocal()) < SetMinute + 1)
                    TimeStart = TimeLocal();
                    StartTest = true;   // Flag of tester launching
                    Tester(TestDay, NameMTS, NameFileSet, PuthTester, TimeOut, 
                           Gross_Profit, Profit_Factor, Expected_Payoff, Per1, 
                           Per2, Per3, Per4);
    variables_1 = GlobalVariableGet(Per1);
    variables_2 = GlobalVariableGet(Per2);
    variables_3 = GlobalVariableGet(Per3);
    variables_4 = GlobalVariableGet(Per4);
// If the tester launching is flagged
    // If more time has elapsed the launching than it was set 
    // to be the test waiting time
    if(TimeLocal() - TimeStart  > TimeOut*60)
        StartTest = false;  // Zero the flag
Added the auto optimizer library modified for the 204 Build -а  auto_optimization_204.mqh 
Accordingly, the code for calling the library will be as follows
//--- Include the auto optimizer library
#include <auto_optimization_204.mqh>

Translated from Russian by MetaQuotes Software Corp.
Original code:

s_wininet s_wininet

Example of using wininet.dll for downloading a web page.

The WaveMarker script set The WaveMarker script set

A set of scripts for quick drawing the Elliott waves.

Converting hst-files into csv files Converting hst-files into csv files

The hst2csv script is used for converting *.hst files to *.csv files, that can be imported into the MetaTrader 4 client terminal with no errors.

History analysis on presence of holes and gaps History analysis on presence of holes and gaps

The history_data_analysis_v3 script checks the history for missing bars, determines the size of the holes, gaps and makes a list of them.