Watch how to download trading robots for free
Find us on Facebook!
Join our fan page
Interesting script?
So post a link to it -
let others appraise it
You liked the script? Try it in the MetaTrader 5 terminal
Libraries

Auto optimizer - library for MetaTrader 4

Views:
9322
Rating:
(19)
Published:
2016.03.25 14:10
\MQL4\Include\
MQL5 Freelance Need a robot or indicator based on this code? Order it on Freelance Go to Freelance

The detailed article on the usage of the auto optimizer library and principles of its operation can be found here: https://www.mql5.com/en/articles/1467

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
        if(!StartTest)
          {
            // 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(StartTest)
  {
    // 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 Ltd.
Original code: https://www.mql5.com/ru/code/7090

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.