... these (questions) could all be addressed by letting users gain control of the data they use for testing
A. You cannot, the data pulled from Broker A will differ from the data pulled from Broker B, they may not even provide the same date range, the Spread is held within the M1 data so the Spread cannot be maintained from Broker to Broker, the number of ticks per bar can vary by a factor of 4 or more from Broker to Broker for the same bar.
By using my own data with Broker A and Broker B I remove the data and
Spread from the list of variables . . . what is left is the symbol
setup/info particular to the Broker in question. If my EA can handle the
different execution types, if it can handle the differences in Min
Lot, Lot Step & Max Lot, if it can handle the differences in Tick
size, if it can handle the differences in Stops and Freeze levels . . .
then it should give very similar if not exactly the same result from a
Strategy tester run using the same history data on Broker A as it will
on Broker B.
I agree, you cannot. Where are you going to get your Tick-Data from? Meta-Quotes? I mean it'll be nice if the target broker provided the tick-data. And the tick-data accurate to the manner it happened in real-time. But I'd be dreaming if I taught all brokers would do this. So then, just like mt4, we'd get our data from one broker and intending to trade it on a different broker. Spreads, Slippage, Network Errors, Re-quoits, Delays, Difference in Prices, Difference in Market-Info, now corrupts your Scalper's results even more. You can bet the back-test results are going to be significantly different even if you had Real-Tick data from both Brokers. So do you really expect to test with imported ticks from xyz-Broker and then go-live demo on abc-Broker and have the same results?
Ubzen I think you are missing the point, although your words are relevant, they have nothing to do with the problem RaptorUK. He thinks that if he can provide his own data (tick data or not, real or not is not relevant here), he will have the same resuts for a Strategy Test run with different brokers.
I agree that by using the same data (your own or not, is not even the problem), you can debug your code more easily, to develop management of different execution types, min lot, max lot, lot step and tick size. However, according to the trading strategy used, this is not true that "it should give very similar if not exactly the same result...". Maybe or not. Tick size alone could change your results totally, for example a SL may be reached with a 5 digits brokers and not reached with a 4 digits one. Min lot/Lot step can change traded volume and therefore your results. Sometimes this may be true, but not always, depending on the strategy employed and trading parameters (tick size, min lot...).
So I don't see this argument as a good one in favor of having the ability to import your own data in MT5. You can also check your code by performing tests with different data.
If have 200 trades that are the same from my 2 Brokers and 5 that are different I am happy to investigate the 5 differences and understand the reason for the differences, maybe my code is bad maybe its due to a difference in lot step or some other symbol parameter . . . how many of my 205 trades will be the same when I am using the Brokers data ? I would suspect that the majority will be different even if it's just by a little.
When testing code we must seek to limit the number of factors that we change from test to test, this is a basic thing in testing . . . we must be in control of our test data, this is a basic thing in testing. If we do not have control how can we test in a repeatable or reproducible way ? If my Broker changes their data overnight how do I know ? how can I rely on my tests from today if I do not know if I am using the same data as yesterday ? this is a fundamental issue, not a nicety or something to be wished for . . . it is ESSENTIAL.
a) essential to me would be that things are working as they are defined, which is not the situation at the moment.
b) many people brought up this subject before, and MQ refused such option, so this discussion leads nowhere.
c) if you want your robot to trade as similar as possible in backtest and live, all trades should be executed at opening of M1, while backtesting with 1 minute OHLC regardless of your main TF. this is not suitable ONLY for some scalpers, while other systems will have almost 100% similar results on backtest vs. live
d) does anybody know why there are 2 history bases, one for live/demo and one for strategy tester?
Well I agreed to the you cannot ;-) When I'm exchanging ideas, I prefer finding common grounds where we can agree. Usually, we're all saying the same things from different angles. I agree with RaptorUK on the principal of "Cannot do different things ... and expect the same results".
When someone busts into the forum and starts freaking-out and crying that their "wonderful test-results from yesterday has turned into a total fail... how could this happen?". The first thing we say is "today's Saturday ... what was you spreads yesterday vs today?". <== draw your own conclusion.
When I was a Noob, I coded a gap trading system. Wonderful results every-time I tested for weeks. One day, the test failed, of-course I ran into the forum seeking answers. Someone asked me the spreads question to which I responded the broker has a fix-spread, then they asked me about everything else being the same and to that I didn't have a clue. Turns out the gaps within the data had dis-appear.
<== draw your own conclusion.
Now what RaptorUK could be saying is that when he Tests and the Difference-in-Environment (ie Spreads, Freeze, Data) does-not seem significant then he's happy. I don't think he's saying "he will have the same results". I mean what system is going to have the same results with Weekend Spreads. I have my own Unique view on testing, and trying to explain them here is outside the scope of this thread.
After all, this is an Opinion based thread. In the end, most people will leave here with the same Opinions they started with ;-)
If we keep all variables the same, we'll have a static state. And therefore no-need to test on other brokers because everything is the same. Most arguments presented here are not of the code-checking nature. It's rather of the static-state of markets nature. Take my gap-trader example from earlier. I choose this because it's an example of data-changing. From a coding bug point of view, everything was fine. From a real-live vs back-test view it was flawed.
Most people complaining about this being critical is-not doing so because they believe they have a bug within their codes. They're doing so because they believe the non-tick-data testing does-not emulate||simulate what happens in real-life. Well news flash, the tick-data does not simulate real-life either. What happened in your tick-data is not what happened to your broker||testing broker. The tick-data you're using may||may-not be what happened in real-life. And lastly, you may not have-had the same ticks.
From a programmers point of view, I can understand wanting to lock-everything down into a static-state and changing 1-variable at a time for checking the effect upon the entire system. But the question here, is it Critical? Now there are somethings I'm assuming about mt5 and you could probably help me clear out so that I can better answer your question.
1>Is the default data from the meta-quotes server still full of holes greater than 1-minute?
2>Does it allow you to have disconnected terminals for back-testing and development?
3>Does it allow you to merge data from different brokers to aid filling missing data for testing?
a. Can you develop your point a ? What is not working as defined ?
b. I have not found any discussion involving MQ on the subject. At most people asking this option to import data and MQ responding that it was not possible. Have you read anything else ?
c. "Other systems will have almost 100% similar resuls..." Which systems ?
d. I don't think there are 2 history bases. hcc files are history base, hc are timeframe data prepared for chart, and hcs files with tick data generated. hc and hcs are based on hcc data.
1. No, i don't think so. But I don't from where these data come from.
2. Don't know. I guess not.
3. Clearly not.
First screen is MT5 demo, second is MT4 live, same broker. I didn't manage to force the MT5 to fill up the hole.Generally, this is not happening only on MQ demo (at least i havent noticed it), but my trading systems are optimized for my broker, and not MQ.And i have seen such holes on other brokers as well.
Same thing, also seen on other brokers, more holes, other colors (yellow):
I will try to find it later.