#property description "ParameterGetRange() 함수 데모를 위한 Expert Advisor." #property description "Strategy Tester의 최적화 모드에서 실행되어야 함" //--- 입력 매개 변수 input int Input1=1; input double Input2=2.0; input bool Input3=false; input ENUM_DAY_OF_WEEK Input4=SUNDAY; //+------------------------------------------------------------------+ //| Expert 초기화 함수 | //+------------------------------------------------------------------+ int OnInit() { //--- Expert Advisor는 Strategy Tester에서만 작동하도록 설계되었습니다 if(!MQL5InfoInteger(MQL5_OPTIMIZATION)) { MessageBox("Strategy Tester의 최적화 모드에서 실행되어야 함!"); //--- Expert Advisor 작업을 미리 완료하고 차트에서 제거합니다. return(INIT_FAILED); } //--- 초기화의 성공적 완료 return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| TesterInit function | //+------------------------------------------------------------------+ void OnTesterInit() { //--- long 유형 입력 매개 변수 예제 string name="Input1"; bool enable; long par1,par1_start,par1_step,par1_stop; ParameterGetRange(name,enable,par1,par1_start,par1_step,par1_stop); Print("첫번째 매개변수"); PrintFormat("%s=%d enable=%s from %d to %d with step=%d", name,par1,(string)enable,par1_start,par1_stop,par1_step); //--- double 유형 입력 매개 변수 예제 name="Input2"; double par2,par2_start,par2_step,par2_stop; ParameterGetRange(name,enable,par2,par2_start,par2_step,par2_stop); Print("두번째 매개변수"); PrintFormat("%s=%G enable=%s from %G to %G with step=%G", name,par2,(string)enable,par2_start,par2_stop,par2_step); //--- example for bool type input parameter name="Input3"; long par3,par3_start,par3_step,par3_stop; ParameterGetRange(name,enable,par3,par3_start,par3_step,par3_stop); Print("세번째 매개변수"); 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("네번째 매개변수"); 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 function | //+------------------------------------------------------------------+ void OnTesterDeinit() { //--- 최적화 완료 후 이 메시지가 표시됩니다. Print(__FUNCTION__," Optimization completed"); } |