Bug report - tester downloads D1 data from the broker again which causes mismatched data errors

 

I finally found the root cause of problems in the tester (see my other post here).


Steps to reproduce:


1) Stop MT4


2) Delete all files under MT4_HOME/history and MT4_HOME/tester/history


3) Start MT4


4) Go to history center and download EURUSD M1 data (when prompted say OK)


5) Now go to the tester, setup a backtest (EURUSD, every tick, testing period D1, specify use date and give a range, i.e. 2003.01.01 - 2008.01.01)


6) Run the test, modeling quality should be 90.00%


7) Note the file size MT4_HOME/history/<broker-name>/EURUSD1.hst


8) Run the test again, modelling quality will be "n/a"


9) Note the file size MT4_HOME/history/<broker-name>/EURUSD1.hst - it is changed, and the timestamp is changed as well (the other file that gets changed will be EURUSD1440.hst)


Conclusion:


The tester downloads D1 data again, although it already exists and the date range given during the test doesn't warrant downloading any new data. This new data doesn't correspond to data downloaded in step 4) above, as it was downloaded from MetaQuotes, whereas the tester downloads history from the broker. This causes thousands of mismatched data errors and results in "n/a" modeling quality.


Please note that I was using the D1 period. It appears that not so many people are using D1 period for trading.


Tested using the build 223.


Lukasz

 

Last update.


This issue doesn't occur if after downloading data from the history center, every icon representing higher periods (M5, M15, ...) is explicitly double clicked on (these icons will be initially gray):




If we forget to double click on them, the tester will attempt to download data from the broker (not MetaQuotes server) during a backtest causing mismatched data errors.


This behavior is very confusing as the following message implies that all time frames were recalculated already in the above step. Try selecting any gray icon (single click), and click on the "Download" button again:




I hope this will be helpful to others who are struggling with the MT4 tester.


Lukasz

 
lukasz74nj wrote >>

I finally found the root cause of problems in the tester (see my other post here).

Steps to reproduce:

1) Stop MT4

2) Delete all files under MT4_HOME/history and MT4_HOME/tester/history

3) Start MT4

4) Go to history center and download EURUSD M1 data (when prompted say OK)

5) Now go to the tester, setup a backtest (EURUSD, every tick, testing period D1, specify use date and give a range, i.e. 2003.01.01 - 2008.01.01)

6) Run the test, modeling quality should be 90.00%

7) Note the file size MT4_HOME/history/<broker-name>/EURUSD1.hst

8) Run the test again, modelling quality will be "n/a"

9) Note the file size MT4_HOME/history/<broker-name>/EURUSD1.hst - it is changed, and the timestamp is changed as well (the other file that gets changed will be EURUSD1440.hst)

Conclusion:

The tester downloads D1 data again, although it already exists and the date range given during the test doesn't warrant downloading any new data. This new data doesn't correspond to data downloaded in step 4) above, as it was downloaded from MetaQuotes, whereas the tester downloads history from the broker. This causes thousands of mismatched data errors and results in "n/a" modeling quality.

Please note that I was using the D1 period. It appears that not so many people are using D1 period for trading.

Tested using the build 223.

Lukasz

I'm sure you already know but just encase you or anyone else who reads this the most accurate testing period is M1, but it does take longer. The longer the time period the less reliable your testing results will be. And you will probably increase the error rate.

 
aj34997:

I'm sure you already know but just encase you or anyone else who reads this the most accurate testing period is M1, but it does take longer. The longer the time period the less reliable your testing results will be. And you will probably increase the error rate.

I both cases above the same period (D1) was used. During the first pass there were no errors and 90.00% modeling quality. During the second pass there were thousands of errors and "n/a" modeling quality.


What I noticed, is that the tester still attempts to download data from the broker and of course broker's historical data don't match MetaQuotes's data. This is the real reason for mismatched data errors.


Today, I will try to download the data again, then delete broker's account and run the backtest. Hopefully, it will prevent the tester from downloading any data.