Looking to replace MT4 to backtest my EAs


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 :)

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.

Changing the data set ?:
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 can't recall the name of the software, but think I remember a package that captures tic data directly from your MT4 data feed. It won't get you data prior to installation, but after a few months, what it gathers for you would get more and more useful.

I have definitely experienced a lot of the same pain you have just described. In terms of data, I spent about a week researching where I could purchase quality tick data. From what I have found is you are going to have to spend a couple thousand dollars for tick data stretching back 5+ years and even then I wasn't completely convinced on the quality. Birt's EA review, a blog I found, does a good job of describing where to find good free tick data and how to import it into MT4.

In terms of the platform issue, I am still using MT4 but am developing the code in a different environment and connecting it to MT4 through a DLL import. This allows me more flexibility with what I want to do and I didn't have do dive too deep into the mql4 language. I think that with quality data, the MT4 backtester can be trusted.

Hope that helped!