Strategy Tester - What the hell?!

 
First off, I have done some reading around with other peoples issues in regards to the reliability of ST.

I thought I'd quickly put a new thread up to hopefully get some answers to my specific problems I am having, and understanding more about how I can avoid it?

Firstly, I import my data from Forex Tester into FXCM MT4 platform. This "apparently" gives me 89% modelling quality from 2001-2013 on most FX pairs. I really don't trust that figure at all though. How is this percentage modelling figure populated?

Second, after around 50+ runs of ST (I do full runs of all data - 2001-2013) it decides to give me incredibly random and completely out of wack results... I make a change, test it on the same market (and it's a really really tiny change) and all of a sudden I am getting outrageously different results. Not only this but I revert back to normal settings I have always used (EA settings), and for the life of me I cannot get anywhere near the same results... It's really strange?

So I thought I'd re-import the data again (as it was once working flawlessly) but it fails to revert back (I go into history centre, double click each time frame for the corresponding pair, delete and then import the data I wish to use, per time frame)? Any ideas how I can reset MT4, clear logs, history ( I dont know?) to get my MT4 ST as "reliable" as possible?

I appreciate the fact I'd never really be able to get a truly accurate test, but I'd like a little bit of consistency whilst I'm developing my EA... It's ridiculous at the moment?
 
DomGilberto:
First off, I have done some reading around with other peoples issues in regards to the reliability of ST.

I thought I'd quickly put a new thread up to hopefully get some answers to my specific problems I am having, and understanding more about how I can avoid it?

Firstly, I import my data from Forex Tester into FXCM MT4 platform. This "apparently" gives me 89% modelling quality from 2001-2013 on most FX pairs. I really don't trust that figure at all though. How is this percentage modelling figure populated?

Second, after around 50+ runs of ST (I do full runs of all data - 2001-2013) it decides to give me incredibly random and completely out of wack results... I make a change, test it on the same market (and it's a really really tiny change) and all of a sudden I am getting outrageously different results. Not only this but I revert back to normal settings I have always used (EA settings), and for the life of me I cannot get anywhere near the same results... It's really strange?
What was the Spread during each of the individual runs ? are you printing the Spread at the end or the start of the run ? in init() or deinit() ?
 
I am using "Current"? Why would I need to print the spread? Is that what's causing the problem?
 
DomGilberto:
I am using "Current"? Why would I need to print the spread? Is that what's causing the problem?
Current = current at the time when the run started . . . are you using a variable spread Broker ? you might want to consider disconnecting from your Broker while you run your tests so the spread stays constant.
 
But is this really causing all my issues I've mentioned above... When I say different, I mean DRAMATICALLY different... we're not just potentially talking about 2-3 pips per trade difference... Also, the data I import seems to be over written by the brokers data sporadically? Is that because an update is being written over what I've imported?

Would it be better if I change current to a fixed spread then? (as in, input the spread I want there?)
 
DomGilberto:
But is this really causing all my issues I've mentioned above... When I say different, I mean DRAMATICALLY different... we're not just potentially talking about 2-3 pips per trade difference... Also, the data I import seems to be over written by the brokers data sporadically? Is that because an update is being written over what I've imported?

Would it be better if I change current to a fixed spread then? (as in, input the spread I want there?)
If your Broker has data that is not the same as the data you are testing with then yes, the Brokers data will overwrite it . . . if you are using old data it is unlikely that your Broker will have data going that far back so it doesn't get overwritten. Disconnect from your Broker and your data and spread variability will be gone . . . I disconnect by simply logging in with an invalid user ID, the login fails and I lose connection to my Broker. Then you can load up your data and test again . . . and again, and again and get exactly the same results. Yes, the spread can have a big impact on the final figure, this is why just looking at the final figure doesn't tell the whole story.
 
Ok, so I've re-downloaded FXCM MT4 platform and made a new directory "FXCM - Tester" and have not registered an account. So this platform has never been connected with the FXCM server.

I have imported my data for the pair EURUSD 2001-2013. I used a fixed 3 pip spread - When I do a full run of the ST of 2001-2013, it picks up 10% of the total number of trades it should do? Wtf is going on?

This is one successful run I did yesterday morning on EURUSD: - I am using the same exact data and settings...

When I run it now with exactly the same EA and settings and data, I get approximately 100 trades with 54% modelling quality!? Seriously... am I missing something here :s?
 
DomGilberto:
Ok, so I've re-downloaded FXCM MT4 platform and made a new directory "FXCM - Tester" and have not registered an account. So this platform has never been connected with the FXCM server.

That is a bad idea . . . when you don't know what you are doing and you ask for help it is usually a good idea to at least try the advice you are given instead of trying something different and then wondering why it didn't work . . .

Until you open an account you don't have all the data you need to run the Strategy Tester . . . you don't have a Broker folder within the History folder so you don't have a symbols.sel file . . . if you want to understand how this works spend half a day with google and do the research, or take the advice and instructions.

Read this too, it will probably help: https://www.mql5.com/en/forum/144874

DomGilberto:

When I run it now with exactly the same EA and settings and data, I get approximately 100 trades with 54% modelling quality!? Seriously... am I missing something here :s?

What was the spread for that run ? if you don't know you cannot say that you are using the same settings . . .


You need to take control of your test environment . . . if you think this is hard with MT4 ( ) try with MT5

 
touché!

Yea, you're right. I have opened an account and closed it - put it to offline mode. I want 2 separate platforms anyway, as I am currently forward testing an EA on one of the FXCM platforms (and obviously did not want to put that offline...)

It seems to be functioning normal now - I think it was to do with the symbols.sel file, but not only that, when the server was connected, I think the broker was pushing through data to the platform and over-writing what I was using? I checked the history centre and I noticed how all of a sudden my data had been replaced...

On the topic of spreads though, how do I print the spread in a comment box at either the beginning or the end of the ST run? I know I am using "MarketInfo(Symbol(), MODE_SPREAD);"?
 
RaptorUK: Current = current at the time when the run started . . . are you using a variable spread Broker ? you might want to consider disconnecting from your Broker while you run your tests so the spread stays constant.

Or specify a value (in points) in the box (note you can enter anything you like, not just what the pull down has)


 
DomGilberto:
touché!

Yea, you're right. I have opened an account and closed it - put it to offline mode. I want 2 separate platforms anyway, as I am currently forward testing an EA on one of the FXCM platforms (and obviously did not want to put that offline...)

It seems to be functioning normal now - I think it was to do with the symbols.sel file, but not only that, when the server was connected, I think the broker was pushing through data to the platform and over-writing what I was using? I checked the history centre and I noticed how all of a sudden my data had been replaced...

On the topic of spreads though, how do I print the spread in a comment box at either the beginning or the end of the ST run? I know I am using "MarketInfo(Symbol(), MODE_SPREAD);"?

Yep, your Broker will always update the data that does not match . . . if they have data to replace it. This is one more reason to keep disconnected from your Broker while you run the Strategy Tester, yes it is a good idea to have a separate Terminal specifically for this purpose.


I have this line in deinit() . .

Print("Thank you for traveling with us today . . your spread has been . . .", DoubleToStr(Ask - Bid, Digits));

. . . I tend not to use Comments() too much, you can't tell when the comment was written or by what. A print has a date and time stamp.

Reason: