Fed up of MT4 backtest quality. Please help. Any advice?

Hello everyone, long lurker, first post here.

It has been a month I have started programming some strategy on metatrader, which is obviously the most popular product on forex. I’m pretty new to forex, but being a software eng (at work) doing C++ all day for many years now, MT4 is something I felt I could play with very easily. And I was right, after a few hours of coding, I had my first EA placing trades in backtest using the awesome oc + Accelerator + SAR. Well, when I review the backtests, I realized most of the ‘quality’ of the data is only 90%. And I think it’s not even right.

  1. The only data available for MT4 users is very bad and missing a lot of points. The EA being a scalper one, having missing data points in the backtest is a real pain as one out of ten trades are completely screwed up. I blame MT4 here as they provide bad data with their platform. I also blame the numerous brokers I have opened REAL account with (I’m watching you Oanda, Alpari), that DONT provide any data to their beloved customers.

  2. Importing data to MT4 is a pain in the arse. Thanks to generous people who wrote some import scripts to get the Dukascopy historical data inside MT4, it seems there is some improvement but still, I just downloaded one year of tick data (full 2011) and it’s missing a LOT of points inside, even entire days and weeks ! So, for me, that’s not a solution. Please have a look at the data importer I’m talking about, (I won’t put the link here as I really don’t recommend people loosing their time with MT4 right now…) and it’s insane. It’s actually hacking the soft itself by injecting assembly code inside the runtime so that MT4 is able to load the data you want it to load.

So I’m trying to know whether it’s acceptable for all EA writers to have bad sets of backtests and if I’m not mistaken into thinking an EA should be developped in backtest, then demo, thein real. Is that ok for everyone creating EAs out there in MT4 to test their backtest with invalid data ? I’m really asking the question because maybe I may sound a bit sarcastic here but I am not, really. Is the developement process is 10% testing on backtest and 90% on demo ?

What are my options here ?

Changing the platform from MT4 to X:
Well, after many days of research I found out that many MT4 heavy EA writers moved to platforms such as Ninjatrader 7 or Multicharts. Ninja is free but full of bugs, and I read many times that their intra-bar backtesting is really not behaving like it should. For these many reasons, I don’t want to spend 50% of my time trying to get out of the bugs and check every trade the strategy made to be sure it’s not doing something crazy due to some limitation of NinjaTrader.

Multicharts seems the way to go. Easilangage is fine for me, and the platforme itself is recognized as being a very nice one. Unfortunately the license is very costly, and today (maybe tomorrow ?) it’s not a viable solution for me. Also, it seems Multicharts have a great backtesting engine, but it’s not supported by the main forex broker out there. So paying $2K for this platform without being able to use the DOM to enter orders is pretty expensive according to me (I’m certainly not a millionaire or I would not try to write an EA :slight_smile:

Do you have any direction to give me regarding the platform ? I’m not against paid not opensource stuff, the real thing is that I’m not seeing myself spending most of my time trying to analyse backtests to see if the backtest engine is working or not.

[B]Changing the data set ?:[/B]
The second way would be to change the dataset to have one/two years of tick data. I would pay for that, even $200. To have a really good dataset, with no entire days of missing points, and correct data (revised, etc…). I’m not speaking about paying some dataset that would end up like the free ones, with no quality on it (ex: Duka). I could then import the data after having converted it to the Dukascopy format so that actual MT4 scripts can work with it.
Any clue where I could get that ?

In general, what are your thoughts on my issues ? Have you experienced the same frustration regarding MT4 usage, and especially the backtest mode ? If so, which direction did you take ?
Thanks a lot for your help !


I’ve found a new website where you can get interesting historical data.
The folks are called: HistData
Anyone used this free data feed?


Back-tests have limited use and cannot be used to predict what will happen in the future… or you can ignore this and prove it the expensive way. I am not cynical, just experienced.

Hi SilverBullet,

Yeah you’re right! :slight_smile:
I do backtests just to refine my strategy and it helps a lot to take out one or two issues in the code logic. :slight_smile: I’m using currently the data from HistData.com, since they have 66 forex pairs there, ready to download, it’s easy to test new pairs and validate aditional potential problems.

Check them out: Forex Historical Data for Free - HistData.com

Cheers, mates!

We all feel the same way. Inaccurate data is still possible data, but missing data is unacceptable. I’ve thought about downloading from a couple of sources and coming up with a common denominator; if I could get one reliable year I’d be happy - as enjoyaol said above, it’s just to for proof of concept. I too have considered NinjaTrader. Because of the $2K cost of the competition, it’s a viable alternative. I think it has step-thru debugging, unlike the MT4 platform where I’m writing out thousands of lines to a log file to figure out what’s going on, or using msgbox. Maybe we could mock up some calls, or aim their calls to accurate tick data.

Is MT5 backtesting better than MT4?

No idea - does anyone know a major bank that offers trading under MT5? I’d like to see a comparison of MT4/5.