Do I have a problem with my Strategy Tester, or is it the normal way of running Strategy Tester? No Displays in Experts Windows, and no files created.

 

Hello,

Do I have a problem with my Strategy Tester, or is it the normal way of running Strategy Tester?

My EA :

//+------------------------------------------------------------------+
//|                                             eaStrategyTester.mq5 |
//|                                   Copyright 2019, Pierre Rougier |
//|                           https://www.mql5.com/en/users/pierre8r |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Pierre Rougier"
#property link      "https://www.mql5.com/en/users/pierre8r"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print("Start eaStrategyTester");

   int h=FileOpen("Start eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file");
      return(INIT_FAILED);
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- Start eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);
   Alert("Start eaStrategyTester.txt File created");

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print("End eaStrategyTester");
   int h=FileOpen("End eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file");
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- End eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);
   Alert("End eaStrategyTester.txt File created");

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+


If I normally run my EA it will write in the Experts window and will create the files.




If I normally run my EA it will write in the Experts window and will create the files.

On the other hand if I launch my EA with Strategy Tester, it does not indicate anything in the Experts windows, and it does not create files.

Is this the normal function of Strategy Tester?

Thanks in advance,

Pierre8r

 

Hello Pierre have you looked at the GetLastError() yet ? 

   int h=FileOpen("Start eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file ", GetLastError());
      return(INIT_FAILED);
     }
 
Marco vd Heijden:

Hello Pierre have you looked at the GetLastError() yet ? 

Hello Marco vd Heijden,

Thanks for your help.

I changed my EA :

//+------------------------------------------------------------------+
//|                                             eaStrategyTester.mq5 |
//|                                   Copyright 2019, Pierre Rougier |
//|                           https://www.mql5.com/en/users/pierre8r |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Pierre Rougier"
#property link      "https://www.mql5.com/en/users/pierre8r"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print("Start eaStrategyTester");

   int h=FileOpen("Start eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file GetLastError() :",GetLastError());
      Print("Error opening file GetLastError() :",GetLastError());
      return(INIT_FAILED);
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- Start eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);
   Alert("Start eaStrategyTester.txt File created");

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print("End eaStrategyTester");
   int h=FileOpen("End eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file GetLastError() :",GetLastError());
      Print("Error opening file GetLastError() :",GetLastError());
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- End eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);
   Alert("End eaStrategyTester.txt File created");

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+

If I run my EA with the Strategy Tester no Windows Alert, nothing in the Experts windows, no files created.

If I read the Log file all things seen OK.


 

That will not work you essentially have these lines outside of the logic they will always print that message regardless of the return value of the function.

//+------------------------------------------------------------------+
//|                                             eaStrategyTester.mq5 |
//|                                   Copyright 2019, Pierre Rougier |
//|                           https://www.mql5.com/en/users/pierre8r |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Pierre Rougier"
#property link      "https://www.mql5.com/en/users/pierre8r"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print("Start eaStrategyTester");

   int h=FileOpen("Start eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file GetLastError() :",GetLastError());
      Print("Error opening file GetLastError() :",GetLastError());
      return(INIT_FAILED);
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- Start eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);





   Alert("Start eaStrategyTester.txt File created");// <--- will always print

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print("End eaStrategyTester");
   int h=FileOpen("End eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file GetLastError() :",GetLastError());
      Print("Error opening file GetLastError() :",GetLastError());
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- End eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);



   Alert("End eaStrategyTester.txt File created"); // <--- will always print 

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+

If you read the documentation it states: 

The file is opened in the folder of the client terminal in the subfolder MQL5\files (or testing_agent_directory\MQL5\files in case of testing). 

Make sure you have that directory correct.

It could be there all along.

 
Thanks Marco.

I add this code line :

   Print("TerminalInfoString(TERMINAL_DATA_PATH) :"+TerminalInfoString(TERMINAL_DATA_PATH));

//+------------------------------------------------------------------+
//|                                             eaStrategyTester.mq5 |
//|                                   Copyright 2019, Pierre Rougier |
//|                           https://www.mql5.com/en/users/pierre8r |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Pierre Rougier"
#property link      "https://www.mql5.com/en/users/pierre8r"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print("Start eaStrategyTester");
   Print("TerminalInfoString(TERMINAL_DATA_PATH) :"+TerminalInfoString(TERMINAL_DATA_PATH));

   int h=FileOpen("Start eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file GetLastError() :",GetLastError());
      Print("Error opening file GetLastError() :",GetLastError());
      return(INIT_FAILED);
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- Start eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);
   Alert("Start eaStrategyTester.txt File created");

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print("End eaStrategyTester");
   int h=FileOpen("End eaStrategyTester.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE)
     {
      Alert("Error opening file GetLastError() :",GetLastError());
      Print("Error opening file GetLastError() :",GetLastError());
     }
   for(int i=1;i<=10;i++)
     {
      FileWrite(h,"Line- End eaStrategyTester -",IntegerToString(i));
     }
   FileClose(h);
   Alert("End eaStrategyTester.txt File created");

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+


I find my files.

Reason: