Tester set mode to math calculations or adjust testing dates

 

Tried to ran optimization but ran into this error

Tester set mode to math calculations or adjust testing dates

What is this? 

 
What settings are you using for the Strategy Tester, maybe you can post a screenshot ?
 

Please, check the date interval

 

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.

 
Dmitriy Bereshpolov # : Please, check the date interval

I had this error, when I changed the date range it worked, thanks for the suggestion.

Automated translation applied by moderator.

 
@Ramedjose Mendes Dos Santos #:

Automated translation applied by moderator.

On the English forum, please write in English. Either use the automatic translation tool, or post in one of the other language forums.