What settings are you using for the Strategy Tester, maybe you can post a screenshot ?
Hi, first time running a back test on MT5 and I get the error message "set mode to math calculations or adjust testing dates".
Any suggestions how to correct this?
Below is the code I used for my algo.
Thanks!
//+------------------------------------------------------------------+ //| Simple_One.mq5 | //| vahan_arslanian@hotmail.com | //| vahan_arslanian@hotmail.com | //+------------------------------------------------------------------+ #property copyright "vahan_arslanian@hotmail.com" #property link "vahan_arslanian@hotmail.com" #property version "1.00" //+------------------------------------------------------------------+ //| Include | //+------------------------------------------------------------------+ #include <Expert\Expert.mqh> //--- available signals #include <Expert\Signal\SignalAC.mqh> #include <Expert\Signal\SignalAMA.mqh> #include <Expert\Signal\SignalMA.mqh> #include <Expert\Signal\SignalStoch.mqh> #include <Expert\Signal\SignalITF.mqh> //--- available trailing #include <Expert\Trailing\TrailingFixedPips.mqh> //--- available money management #include <Expert\Money\MoneyFixedLot.mqh> //+------------------------------------------------------------------+ //| Inputs | //+------------------------------------------------------------------+ //--- inputs for expert input string Expert_Title ="Simple_One"; // Document name ulong Expert_MagicNumber =15349; // bool Expert_EveryTick =false; // //--- inputs for main signal input int Signal_ThresholdOpen =10; // Signal threshold value to open [0...100] input int Signal_ThresholdClose =10; // Signal threshold value to close [0...100] input double Signal_PriceLevel =0.0; // Price level to execute a deal input double Signal_StopLevel =50.0; // Stop Loss level (in points) input double Signal_TakeLevel =50.0; // Take Profit level (in points) input int Signal_Expiration =4; // Expiration of pending orders (in bars) input int Signal_AMA_PeriodMA =8; // Adaptive Moving Average(8,3,...) Period of averaging input int Signal_AMA_PeriodFast =3; // Adaptive Moving Average(8,3,...) Period of fast EMA input int Signal_AMA_PeriodSlow =30; // Adaptive Moving Average(8,3,...) Period of slow EMA input int Signal_AMA_Shift =0; // Adaptive Moving Average(8,3,...) Time shift input ENUM_APPLIED_PRICE Signal_AMA_Applied =PRICE_CLOSE; // Adaptive Moving Average(8,3,...) Prices series input double Signal_AMA_Weight =1.0; // Adaptive Moving Average(8,3,...) Weight [0...1.0] input int Signal_MA_PeriodMA =50; // Moving Average(50,0,...) Period of averaging input int Signal_MA_Shift =0; // Moving Average(50,0,...) Time shift input ENUM_MA_METHOD Signal_MA_Method =MODE_SMA; // Moving Average(50,0,...) Method of averaging input ENUM_APPLIED_PRICE Signal_MA_Applied =PRICE_CLOSE; // Moving Average(50,0,...) Prices series input double Signal_MA_Weight =1.0; // Moving Average(50,0,...) Weight [0...1.0] input int Signal_Stoch_PeriodK =8; // Stochastic(8,3,3,...) K-period input int Signal_Stoch_PeriodD =3; // Stochastic(8,3,3,...) D-period input int Signal_Stoch_PeriodSlow =3; // Stochastic(8,3,3,...) Period of slowing input ENUM_STO_PRICE Signal_Stoch_Applied =STO_LOWHIGH; // Stochastic(8,3,3,...) Prices to apply to input double Signal_Stoch_Weight =1.0; // Stochastic(8,3,3,...) Weight [0...1.0] input int Signal_ITF_GoodHourOfDay =-1; // IntradayTimeFilter(-1,0,-1,...) Good hour input int Signal_ITF_BadHoursOfDay =0; // IntradayTimeFilter(-1,0,-1,...) Bad hours (bit-map) input int Signal_ITF_GoodDayOfWeek =-1; // IntradayTimeFilter(-1,0,-1,...) Good day of week input int Signal_ITF_BadDaysOfWeek =0; // IntradayTimeFilter(-1,0,-1,...) Bad days of week (bit-map) input double Signal_ITF_Weight =1.0; // IntradayTimeFilter(-1,0,-1,...) Weight [0...1.0] //--- inputs for trailing input int Trailing_FixedPips_StopLevel =110; // Stop Loss trailing level (in points) input int Trailing_FixedPips_ProfitLevel=110; // Take Profit trailing level (in points) //--- inputs for money input double Money_FixLot_Percent =10.0; // Percent input double Money_FixLot_Lots =0.1; // Fixed volume //+------------------------------------------------------------------+ //| Global expert object | //+------------------------------------------------------------------+ CExpert ExtExpert; //+------------------------------------------------------------------+ //| Initialization function of the expert | //+------------------------------------------------------------------+ int OnInit() { //--- Initializing expert if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber)) { //--- failed printf(__FUNCTION__+": error initializing expert"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Creating signal CExpertSignal *signal=new CExpertSignal; if(signal==NULL) { //--- failed printf(__FUNCTION__+": error creating signal"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- ExtExpert.InitSignal(signal); signal.ThresholdOpen(Signal_ThresholdOpen); signal.ThresholdClose(Signal_ThresholdClose); signal.PriceLevel(Signal_PriceLevel); signal.StopLevel(Signal_StopLevel); signal.TakeLevel(Signal_TakeLevel); signal.Expiration(Signal_Expiration); //--- Creating filter CSignalAC CSignalAC *filter0=new CSignalAC; if(filter0==NULL) { //--- failed printf(__FUNCTION__+": error creating filter0"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter0); //--- Set filter parameters filter0.Period(PERIOD_H1); //--- Creating filter CSignalAMA CSignalAMA *filter1=new CSignalAMA; if(filter1==NULL) { //--- failed printf(__FUNCTION__+": error creating filter1"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter1); //--- Set filter parameters filter1.PeriodMA(Signal_AMA_PeriodMA); filter1.PeriodFast(Signal_AMA_PeriodFast); filter1.PeriodSlow(Signal_AMA_PeriodSlow); filter1.Shift(Signal_AMA_Shift); filter1.Applied(Signal_AMA_Applied); filter1.Weight(Signal_AMA_Weight); //--- Creating filter CSignalMA CSignalMA *filter2=new CSignalMA; if(filter2==NULL) { //--- failed printf(__FUNCTION__+": error creating filter2"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter2); //--- Set filter parameters filter2.PeriodMA(Signal_MA_PeriodMA); filter2.Shift(Signal_MA_Shift); filter2.Method(Signal_MA_Method); filter2.Applied(Signal_MA_Applied); filter2.Weight(Signal_MA_Weight); //--- Creating filter CSignalStoch CSignalStoch *filter3=new CSignalStoch; if(filter3==NULL) { //--- failed printf(__FUNCTION__+": error creating filter3"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter3); //--- Set filter parameters filter3.PeriodK(Signal_Stoch_PeriodK); filter3.PeriodD(Signal_Stoch_PeriodD); filter3.PeriodSlow(Signal_Stoch_PeriodSlow); filter3.Applied(Signal_Stoch_Applied); filter3.Weight(Signal_Stoch_Weight); //--- Creating filter CSignalITF CSignalITF *filter4=new CSignalITF; if(filter4==NULL) { //--- failed printf(__FUNCTION__+": error creating filter4"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter4); //--- Set filter parameters filter4.GoodHourOfDay(Signal_ITF_GoodHourOfDay); filter4.BadHoursOfDay(Signal_ITF_BadHoursOfDay); filter4.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek); filter4.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek); filter4.Weight(Signal_ITF_Weight); //--- Creation of trailing object CTrailingFixedPips *trailing=new CTrailingFixedPips; if(trailing==NULL) { //--- failed printf(__FUNCTION__+": error creating trailing"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(trailing)) { //--- failed printf(__FUNCTION__+": error initializing trailing"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Set trailing parameters trailing.StopLevel(Trailing_FixedPips_StopLevel); trailing.ProfitLevel(Trailing_FixedPips_ProfitLevel); //--- Creation of money object CMoneyFixedLot *money=new CMoneyFixedLot; if(money==NULL) { //--- failed printf(__FUNCTION__+": error creating money"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(money)) { //--- failed printf(__FUNCTION__+": error initializing money"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Set money parameters money.Percent(Money_FixLot_Percent); money.Lots(Money_FixLot_Lots); //--- Check all trading objects parameters if(!ExtExpert.ValidationSettings()) { //--- failed ExtExpert.Deinit(); return(INIT_FAILED); } //--- Tuning of all necessary indicators if(!ExtExpert.InitIndicators()) { //--- failed printf(__FUNCTION__+": error initializing indicators"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- ok return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Deinitialization function of the expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ExtExpert.Deinit(); } //+------------------------------------------------------------------+ //| "Tick" event handler function | //+------------------------------------------------------------------+ void OnTick() { ExtExpert.OnTick(); } //+------------------------------------------------------------------+ //| "Trade" event handler function | //+------------------------------------------------------------------+ void OnTrade() { ExtExpert.OnTrade(); } //+------------------------------------------------------------------+ //| "Timer" event handler function | //+------------------------------------------------------------------+ void OnTimer() { ExtExpert.OnTimer(); } //+------------------------------------------------------------------+
Vahan Arslanian:
Hi, first time running a back test on MT5 and I get the error message "set mode to math calculations or adjust testing dates".
Any suggestions how to correct this?
This message would show when testing end date preceeds or is equal to start date. To test for a single day set end date to the day following it.
On the English forum, please write in English. Either use the automatic translation tool, or post in one of the other language forums.
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Tried to ran optimization but ran into this error
Tester set mode to math calculations or adjust testing dates
What is this?