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 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); }
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.
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.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hello,
Do I have a problem with my Strategy Tester, or is it the normal way of running Strategy Tester?
My EA :
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.
Is this the normal function of Strategy Tester?
Thanks in advance,
Pierre8r