#property description "Expert Advisor for ParameterGetRange() function demonstration." #property description "Should be launched in the optimization mode of the Strategy Tester" //--- 输入参数 input int Input1=1; input double Input2=2.0; input bool Input3=false; input ENUM_DAY_OF_WEEK Input4=SUNDAY; //+------------------------------------------------------------------+ //| 专家初始化函数 | //+------------------------------------------------------------------+ int OnInit() { //--- EA是只为策略测试操作而设计的 if(!MQL5InfoInteger(MQL5_OPTIMIZATION)) { MessageBox("Should be launched in the optimization mode of the Strategy Tester!"); //--- 提前完成EA操作并从图表删除 return(INIT_FAILED); } //--- 成功完成初始化 return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| TesterInit 函数 | //+------------------------------------------------------------------+ void OnTesterInit() { //--- 长整型输入参数的示例 string name="Input1"; bool enable; long par1,par1_start,par1_step,par1_stop; ParameterGetRange(name,enable,par1,par1_start,par1_step,par1_stop); Print("First parameter"); PrintFormat("%s=%d enable=%s from %d to %d with step=%d", name,par1,(string)enable,par1_start,par1_stop,par1_step); //--- 双精度型输入参数的示例 name="Input2"; double par2,par2_start,par2_step,par2_stop; ParameterGetRange(name,enable,par2,par2_start,par2_step,par2_stop); Print("Second parameter"); PrintFormat("%s=%G enable=%s from %G to %G with step=%G", name,par2,(string)enable,par2_start,par2_stop,par2_step); //--- 布尔型输入参数的示例 name="Input3"; long par3,par3_start,par3_step,par3_stop; ParameterGetRange(name,enable,par3,par3_start,par3_step,par3_stop); Print("Third parameter"); PrintFormat("%s=%s enable=%s from %s to %s", name,(string)par3,(string)enable, (string)par3_start,(string)par3_stop); //--- 枚举型输入参数的示例 name="Input4"; long par4,par4_start,par4_step,par4_stop; ParameterGetRange(name,enable,par4,par4_start,par4_step,par4_stop); Print("Fourth parameter"); PrintFormat("%s=%s enable=%s from %s to %s", name,EnumToString((ENUM_DAY_OF_WEEK)par4),(string)enable, EnumToString((ENUM_DAY_OF_WEEK)par4_start), EnumToString((ENUM_DAY_OF_WEEK)par4_stop)); } //+------------------------------------------------------------------+ //| TesterDeinit函数 | //+------------------------------------------------------------------+ void OnTesterDeinit() { //--- 优化完成后将会显示该信息 Print(__FUNCTION__," Optimization completed"); } |