How to tell if an mql5 EA reads history in back test

 

Hi all, 


I was hoping some bright spark could help me understand what/where I need to look to check if an mql5 EA reads history in back test (thus artificially improving performance in back test). It's driving me bonkers, so any help would be greatly appreciated.


All the best.

 
maroonxy: Hi all, I was hoping some bright spark could help me understand what/where I need to look to check if an mql5 EA reads history in back test (thus artificially improving performance in back test). It's driving me bonkers, so any help would be greatly appreciated. All the best.

MQL5 is unable to read historical data forwards in time, nor can it do so accessing the history files directly (via DLL) either, because they are encrypted.

MQL4 is able to do that, but MQL5 is not. That loophole does not exist in MQL5.

EDIT: The only way around this would be if the data were stored within the EA itself, which would greatly increase the size of the final ".ex5" file.

EDIT2: But the EA author would then need to periodically update the EA with new data and a new back-test would show differences with previous back-tests and make it easy for the user to detect those differences.

 

So, as far as I understand it from what Fernando said, asking or performing a MT5 backtest could clear things out.

EDIT: After Fernando's edit, we are back where we started, it is possible to create an artificially good backtest in MQL5 too.

 
Eleni Anna Branou #:
So, as far as I understand it from what Fernando said, asking or performing a MT5 backtest could clear things out.

No it does not. The history could be stored in the EA as Fernando pointed out. Also there could be a time/date filter in order to not trade during unfavourable periods.

To see if an EA applies any of these tricks, create a custom symbol with the date shifted and perform the test on the custom sybmol.

 
Eleni Anna Branou #: So, as far as I understand it from what Fernando said, asking or performing a MT5 backtest could clear things out.
Sorry, Eleni, I edited my post multiple times, which has left your post out of sync as you re-edited yours too 😅
 
Enrique Dangeroux #:

No it does not. The history could be stored in the EA as Fernando pointed out. Also there could be a time/date filter in order to not trade during unfavourable periods.

To see if an EA applies any of these tricks, create a custom symbol with the date shifted and perform the test on the custom sybmol.

I see Enrique, that's an interesting suggestion and method for checking the credibility of an EA's performance.

 
Fernando Carreiro #:
Sorry, Eleni, I edited my post multiple times, which has left your post out of sync as you re-edited your too 😅

No problem Fernando, I re-edited mine too, adapting to your updated remarks.

 
Eleni Anna Branou #: I see Enrique, that's an interesting suggestion and method for checking the credibility of an EA's performance.
I agree! That was a good suggestion @Enrique Dangeroux
 
Enrique Dangeroux #:

No it does not. The history could be stored in the EA as Fernando pointed out. Also there could be a time/date filter in order to not trade during unfavourable periods.

To see if an EA applies any of these tricks, create a custom symbol with the date shifted and perform the test on the custom sybmol.

This , and if you want to take it a step further , create the inversion of a symbol . 

So test on EURUSD , then create a symbol which is 1/EURUSD and test again .

(although the EA can tell if its running on a synthetic symbol , so a very very advanced scammer could potentially find what adjustments are needed based on the synthetic symbol formula)
 

wow, thanks to everyone for the input. This is greatly appreciated and has help me alot.


\all the best.