i'm having some trouble with the tester terminal, i've searched for it and cant find what exactly is happening
i keep getting, over and over, this error
can anyone help me identify what this error means, so that i can correct the situation?
Can you see the OnInit () code?
the OnInit function is mainly the base template
got a few extras for testing purposes but none of the changes had any negative effect in previous versions of code
//+------------------------------------------------------------------+ //| Initialization function of the expert | //+------------------------------------------------------------------+ int OnInit() { TerminalInfoString(TERMINAL_COMMONDATA_PATH); //--- 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 if(Signal_AC_Weight != 0) { 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.Weight(Signal_AC_Weight); } //--- Creating filter CSignalAO if(Signal_AO_Weight != 0) { CSignalAO *filter1 = new CSignalAO; if(filter1 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter1"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter1); //--- Set filter parameters filter1.Weight(Signal_AO_Weight); } //--- Creating filter CSignalCCI if(Signal_CCI_Weight != 0) { if(Signal_CCI_Weight != 0) { CSignalCCI *filter2 = new CSignalCCI; if(filter2 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter2"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter2); //--- Set filter parameters filter2.PeriodCCI(Signal_CCI_PeriodCCI); filter2.Applied(Signal_CCI_Applied); filter2.Weight(Signal_CCI_Weight); } } //--- Creating filter CSignalMACD if(Signal_MACD_Weight != 0) { CSignalMACD *filter3 = new CSignalMACD; if(filter3 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter3"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter3); //--- Set filter parameters if(Signal_MACD_PeriodSlow > Signal_MACD_PeriodFast) { filter3.PeriodFast(Signal_MACD_PeriodFast); filter3.PeriodSlow(Signal_MACD_PeriodSlow); } else if(Signal_MACD_PeriodSlow < Signal_MACD_PeriodFast) { filter3.PeriodFast(Signal_MACD_PeriodSlow); filter3.PeriodSlow(Signal_MACD_PeriodFast); } else if(Signal_MACD_PeriodSlow == Signal_MACD_PeriodFast) { filter3.PeriodFast(Signal_MACD_PeriodFast); filter3.PeriodSlow(Signal_MACD_PeriodSlow + 1); } filter3.PeriodSignal(Signal_MACD_PeriodSignal); filter3.Applied(Signal_MACD_Applied); filter3.Weight(Signal_MACD_Weight); } //--- Creating filter CSignalRSI if(Signal_RSI_Weight != 0) { CSignalRSI *filter4 = new CSignalRSI; if(filter4 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter4"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter4); //--- Set filter parameters filter4.PeriodRSI(Signal_RSI_PeriodRSI); filter4.Applied(Signal_RSI_Applied); filter4.Weight(Signal_RSI_Weight); } //--- Creating filter CSignalRVI if(Signal_RVI_Weight != 0) { CSignalRVI *filter5 = new CSignalRVI; if(filter5 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter5"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter5); //--- Set filter parameters filter5.PeriodRVI(Signal_RVI_PeriodRVI); filter5.Weight(Signal_RVI_Weight); } //--- Creating filter CSignalStoch if(Signal_Stoch_Weight != 0) { CSignalStoch *filter6 = new CSignalStoch; if(filter6 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter6"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter6); //--- Set filter parameters filter6.PeriodK(Signal_Stoch_PeriodK); filter6.PeriodD(Signal_Stoch_PeriodD); filter6.PeriodSlow(Signal_Stoch_PeriodSlow); filter6.Applied(Signal_Stoch_Applied); filter6.Weight(Signal_Stoch_Weight); } //--- Creating filter CSignalTriX if(Signal_TriX_Weight != 0) { CSignalTriX *filter7 = new CSignalTriX; if(filter7 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter7"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter7); //--- Set filter parameters filter7.PeriodTriX(Signal_TriX_PeriodTriX); filter7.Applied(Signal_TriX_Applied); filter7.Weight(Signal_TriX_Weight); } //--- Creating filter CSignalBands if(Signal_Bands_Weight != 0) { CSignalBands *filter8 = new CSignalBands; if(filter8 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter8"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter8); //--- Set filter parameters filter8.PeriodBands(Signal_Bands_PeriodBands); filter8.Shift(Signal_Bands_Shift); filter8.Deviation(Signal_Bands_Deviation); filter8.Applied(Signal_Bands_Applied); filter8.Weight(Signal_Bands_Weight); } //--- Creating filter CSignalFrAMA if(Signal_FraMA_Weight != 0) { CSignalFrAMA *filter9 = new CSignalFrAMA; if(filter9 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter9"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter9); //--- Set filter parameters filter9.PeriodMA(Signal_FraMA_PeriodMA); filter9.Shift(Signal_FraMA_Shift); filter9.Applied(Signal_FraMA_Applied); filter9.Weight(Signal_FraMA_Weight); } //--- Creating filter CSignalSAR if(Signal_SAR_Weight != 0) { CSignalSAR *filter10 = new CSignalSAR; if(filter10 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter10"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter10); //--- Set filter parameters filter10.Step(Signal_SAR_Step); filter10.Maximum(Signal_SAR_Maximum); filter10.Weight(Signal_SAR_Weight); } //--- Creating filter CSignalTEMA if(Signal_TEMA_Weight != 0) { CSignalTEMA *filter11 = new CSignalTEMA; if(filter11 == NULL) { //--- failed printf(__FUNCTION__ + ": error creating filter11"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter11); //--- Set filter parameters filter11.PeriodMA(Signal_TEMA_PeriodMA); filter11.Shift(Signal_TEMA_Shift); filter11.Applied(Signal_TEMA_Applied); filter11.Weight(Signal_TEMA_Weight); } //--- Creating filter CSignalITF if(Signal_ITF_Weight != 0) { CSignalITF *filter12=new CSignalITF; if(filter12==NULL) { //--- failed printf(__FUNCTION__+": error creating filter0"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter12); //--- Set filter parameters filter12.GoodHourOfDay(Signal_ITF_GoodHourOfDay); filter12.BadHoursOfDay(Signal_ITF_BadHoursOfDay); filter12.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek); filter12.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek); filter12.Weight(Signal_ITF_Weight); } //+------------------------------------------------------------------+ //| onInit trail | //+------------------------------------------------------------------+ switch(ttype) { case 0: //None: { CTrailingNone *trailingN = new CTrailingNone; if(trailingN == NULL) { //--- failed printf(__FUNCTION__ + ": error creating trailing"); ExtExpert.Deinit(); return(32); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(trailingN)) { //--- failed printf(__FUNCTION__ + ": error initializing trailing"); ExtExpert.Deinit(); return(33); } break; } case 1: //Fixed: { CTrailingFixedPips *trailingF = new CTrailingFixedPips; if(trailingF == NULL) { //--- failed printf(__FUNCTION__ + ": error creating trailing"); ExtExpert.Deinit(); return(34); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(trailingF)) { //--- failed printf(__FUNCTION__ + ": error initializing trailing"); ExtExpert.Deinit(); return(35); } //--- Set trailing parameters trailingF.StopLevel(Trailing_FixedPips_StopLevel); trailingF.ProfitLevel(Trailing_FixedPips_ProfitLevel); break; } case 2: // MA { CTrailingMA *trailingMA = new CTrailingMA; if(trailingMA == NULL) { //--- failed printf(__FUNCTION__ + ": error creating trailing"); ExtExpert.Deinit(); return(36); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(trailingMA)) { //--- failed printf(__FUNCTION__ + ": error initializing trailing"); ExtExpert.Deinit(); return(37); } //--- Set trailing parameters trailingMA.Period(Trailing_MA_Period); trailingMA.Shift(Trailing_MA_Shift); trailingMA.Method(Trailing_MA_Method); trailingMA.Applied(Trailing_MA_Applied); break; } case 3: //ParabolicSAR: { CTrailingPSAR *trailingPS = new CTrailingPSAR; if(trailingPS == NULL) { //--- failed printf(__FUNCTION__ + ": error creating trailing"); ExtExpert.Deinit(); return(38); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(trailingPS)) { //--- failed printf(__FUNCTION__ + ": error initializing trailing"); ExtExpert.Deinit(); return(39); } //--- Set trailing parameters trailingPS.Step(Trailing_ParabolicSAR_Step); trailingPS.Maximum(Trailing_ParabolicSAR_Maximum); break; } case 4: //PersonalMA: { Etrailing = new TS_Trail; if(Etrailing == NULL) { //--- failed printf(__FUNCTION__ + ": error creating trailing"); ExtExpert.Deinit(); return(40); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(Etrailing)) { //--- failed printf(__FUNCTION__ + ": error initializing trailing"); ExtExpert.Deinit(); return(41); } Etrailing.Type(Trailing_trailapply); Etrailing.Period(Trailing_TS_period); Etrailing.Shift(Trailing_TS_shift); Etrailing.Method(Trailing_TS_method); Etrailing.Applied_Price(Trailing_TS_applied); Etrailing.PeriodCMO(Trailing_TS_periodcmo); Etrailing.PeriodEMA(Trailing_TS_periodema); Etrailing.FastEMA(Trailing_TS_fastema); Etrailing.SlowEMA(Trailing_TS_slowema); Etrailing.MABarsTrail(Trailing_MA_bars_trail); Etrailing.TrailBehindMA(Trailing_trail_behind_MA); Etrailing.TrailOnLine(Trailing_trail_line); Etrailing.TrailOnPrice(Trailing_trail_price); Etrailing.TrailStep(Trailing_trail_step); Etrailing.Show(Trailing_show); if(!ExtExpert.ValidationSettings()) { //--- failed printf(__FUNCTION__ + ": error in settings validation"); ExtExpert.Deinit(); return(41); } } } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| onInit money | //+------------------------------------------------------------------+ switch(mtype) { case FixedVolume: { CMoneyFixedLot *moneyFV = new CMoneyFixedLot; if(moneyFV == NULL) { //--- failed printf(__FUNCTION__ + ": error creating money"); ExtExpert.Deinit(); return(42); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(moneyFV)) { //--- failed printf(__FUNCTION__ + ": error initializing money"); ExtExpert.Deinit(); return(43); } //--- Set money parameters moneyFV.Percent(Money_FixLot_Percent); moneyFV.Lots(Money_FixLot_Lots); if(!ExtExpert.ValidationSettings()) { //--- failed printf(__FUNCTION__ + ": error in settings validation"); ExtExpert.Deinit(); return(43); } break; } case FixedMargin: { CMoneyFixedMargin *moneyFM = new CMoneyFixedMargin; if(moneyFM == NULL) { //--- failed printf(__FUNCTION__ + ": error creating money"); ExtExpert.Deinit(); return(44); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(moneyFM)) { //--- failed printf(__FUNCTION__ + ": error initializing money"); ExtExpert.Deinit(); return(45); } //--- Set money parameters moneyFM.Percent(Money_FixMargin_Percent); if(!ExtExpert.ValidationSettings()) { //--- failed printf(__FUNCTION__ + ": error in settings validation"); ExtExpert.Deinit(); return(45); } break; } case FixedRisk: { CMoneyFixedRisk *moneyR = new CMoneyFixedRisk; if(moneyR == NULL) { //--- failed printf(__FUNCTION__ + ": error creating money"); ExtExpert.Deinit(); return(46); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(moneyR)) { //--- failed printf(__FUNCTION__ + ": error initializing money"); ExtExpert.Deinit(); return(47); } //--- Set money parameters moneyR.Percent(Money_FixRisk_Percent); if(!ExtExpert.ValidationSettings()) { //--- failed printf(__FUNCTION__ + ": error in settings validation"); ExtExpert.Deinit(); return(47); } break; } case Minimum: { CMoneyNone *moneyM = new CMoneyNone; if(moneyM == NULL) { //--- failed printf(__FUNCTION__ + ": error creating money"); ExtExpert.Deinit(); return(48); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(moneyM)) { //--- failed printf(__FUNCTION__ + ": error initializing money"); ExtExpert.Deinit(); return(49); } if(!ExtExpert.ValidationSettings()) { //--- failed printf(__FUNCTION__ + ": error in settings validation"); ExtExpert.Deinit(); return(49); } break; } case Optimized: { CMoneySizeOptimized *moneyO = new CMoneySizeOptimized; if(moneyO == NULL) { //--- failed printf(__FUNCTION__ + ": error creating money"); ExtExpert.Deinit(); return(50); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(moneyO)) { //--- failed printf(__FUNCTION__ + ": error initializing money"); ExtExpert.Deinit(); return(51); } //--- Set money parameters moneyO.DecreaseFactor(Money_SizeOptimized_DecreaseFactor); moneyO.Percent(Money_SizeOptimized_Percent); if(!ExtExpert.ValidationSettings()) { //--- failed printf(__FUNCTION__ + ": error in settings validation"); ExtExpert.Deinit(); return(51); } break; } } //--- 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); }
my usual sequence of optimization goes from optimizing signals, then trail, then money
the personal MA trail part is a library created by me, and used with success, and no errors, in other project
the error is appearing during the indicator signal optimization, it starts ok and then starts giving the error
and one thing that keeps me scraching my head is that some runs it goes flawlessly and others, with the same exact paramethers, spam the error
i might need to do some filtering somewhere, like the MACD code changes, but cant find what is wrong
the OnInit function is mainly the base template
got a few extras for testing purposes but none of the changes had any negative effect in previous versions of code
my usual sequence of optimization goes from optimizing signals, then trail, then money
the personal MA trail part is a library created by me, and used with success, and no errors, in other project
the error is appearing during the indicator signal optimization, it starts ok and then starts giving the error
and one thing that keeps me scraching my head is that some runs it goes flawlessly and others, with the same exact paramethers, spam the error
i might need to do some filtering somewhere, like the MACD code changes, but cant find what is wrong
To understand, you need a detailed description: on what symbol, on what timeframe, ... - in general, you need data from two tabs of the tester:
You also need a complete code and a detailed description of the reproducible actions.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
i'm having some trouble with the tester terminal, i've searched for it and cant find what exactly is happening
i keep getting, over and over, this error
can anyone help me identify what this error means, so that i can correct the situation?