Strategy tester (with/without) visual mode get different precise result (Build 2504) - page 2

To add comments, please log in or register
SungSungE
341
SungSungE  
Lorentzos Roussos:

Try running this on the same platform , i though spread was variable but it seems stable to me .Check yours.

Im running the Metaquotes MT5 and with open prices the spread is not varying across tests . Let me know 

Thanks  Lorentzos Roussos Use test code is more good to make sure ,where is the problem happen.

It's helpful And good ideal for check spreads. After PC C test display /non display.  I will do it later.



By the way ,I check for detail deal timing  that 2 PC make deal in very different timing ex


PC A make with display

deal3 :: 2012.6.04 01.23.26 in buy vol 0.04 price 1.24090 

deal5 :: 2012.6.04 18:51:43 in buy vol 0.08 price 1.24826

PC B make without display 

deal3 :: 2012.6.04 01.23.36 in buy vol 0.04 price 1.24080 

deal5 :: 2012.6.04 18:55:04 in buy vol 0.12 price 1.24958

note vol will relative to SAR different  timing will be different  vol size 

Lorentzos Roussos
22604
Lorentzos Roussos  
SungSungE:

Thanks  Lorentzos Roussos Use test code is more good to make sure ,where is the problem happen.

It's helpful And good ideal for check spreads. After PC C test display /non display.  I will do it later.



By the way ,I check for detail deal timing  that 2 PC make deal in very different timing ex


PC A make with display

deal3 :: 2012.6.04 01.23.26 in buy vol 0.04 price 1.24090 

deal5 :: 2012.6.04 18:51:43 in buy vol 0.08 price 1.24826

PC B make without display 

deal3 :: 2012.6.04 01.23.36 in buy vol 0.04 price 1.24080 

deal5 :: 2012.6.04 18:55:04 in buy vol 0.12 price 1.24958

note vol will relative to SAR different  timing will be different  vol size 

For now focus on one pc ,one platform ,different test types .
Its normal for different platforms to have different results . (different data feed)
Its even normal for same platforms on different pc's to have different results . (not the same data loaded perhaps - even though i think thats an MT4 issue only)

SungSungE
341
SungSungE  
Lorentzos Roussos:

For now focus on one pc ,one platform ,different test types .
Its normal for different platforms to have different results . (different data feed)
Its even normal for same platforms on different pc's to have different results . (not the same data loaded perhaps - even though i think thats an MT4 issue only)

Ya, I think one platform is better choose .

But I need to know which one can get solid result no matter setting (But the the test result is the lowest cpu power get few deviation result  between with/without display case ~~ the result is not as original guess  =,=)


And I think before I use VPS (is different PC with my PC)  or I use cloud computer as agents to find out optimization. All relative to different hardware , If hardware is a parameter to EA. I need to make sure it or something else in my code or some bug in MQL?     


Now ,I just buy one new graph card upgrade my PC. Maybe update result few days.

SungSungE
341
SungSungE  
The new test on the test code use MetaQuotes code generate it.

//+------------------------------------------------------------------+
//|                                                     gen_macd.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalMACD.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingParabolicSAR.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title                 ="gen_macd";  // Document name
ulong                    Expert_MagicNumber           =1035;        //
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_MACD_PeriodFast       =12;          // MACD(12,24,9,PRICE_CLOSE) Period of fast EMA
input int                Signal_MACD_PeriodSlow       =24;          // MACD(12,24,9,PRICE_CLOSE) Period of slow EMA
input int                Signal_MACD_PeriodSignal     =9;           // MACD(12,24,9,PRICE_CLOSE) Period of averaging of difference
input ENUM_APPLIED_PRICE Signal_MACD_Applied          =PRICE_CLOSE; // MACD(12,24,9,PRICE_CLOSE) Prices series
input double             Signal_MACD_Weight           =1.0;         // MACD(12,24,9,PRICE_CLOSE) Weight [0...1.0]
//--- inputs for trailing
input double             Trailing_ParabolicSAR_Step   =0.02;        // Speed increment
input double             Trailing_ParabolicSAR_Maximum=0.2;         // Maximum rate
//--- 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 CSignalMACD
   CSignalMACD *filter0=new CSignalMACD;
   if(filter0==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodFast(Signal_MACD_PeriodFast);
   filter0.PeriodSlow(Signal_MACD_PeriodSlow);
   filter0.PeriodSignal(Signal_MACD_PeriodSignal);
   filter0.Applied(Signal_MACD_Applied);
   filter0.Weight(Signal_MACD_Weight);
//--- Creation of trailing object
   CTrailingPSAR *trailing=new CTrailingPSAR;
   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.Step(Trailing_ParabolicSAR_Step);
   trailing.Maximum(Trailing_ParabolicSAR_Maximum);
//--- 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();
  }
//+------------------------------------------------------------------+

Test Result PC A

up without display,down with display 

Test result on PC B is similar.



I think I want to check my indicator that work with muti Time Frame that use CopyBuffer , if use signal time frame without those maybe batter ?
And I use old Expert framework maybe will due to bad performance , if MQL5 newer than 2440 get grate improve ?  

Files:
Lorentzos Roussos
22604
Lorentzos Roussos  
SungSungE:
The new test on the test code use MetaQuotes code generate it.

Test Result PC A

up without display,down with display 

Test result on PC B is similar.



I think I want to check my indicator that work with muti Time Frame that use CopyBuffer , if use signal time frame without those maybe batter ?
And I use old Expert framework maybe will due to bad performance , if MQL5 newer than 2440 get grate improve ?  

Hmm different data feed from the indicator is possible indeed . So @Alain Verleyen was right

12
To add comments, please log in or register