Been doing a lot of work with Genetic Algo Optimizations.. here is a little story of my experiences thus far...
I wrote a decent strategy, and I did an optimization for it, and it looks great. The given strategy offered a buy at market to go long and a sell at market to go short. There were no limits on my order entries.
Then i decided to put limits on my order entries, and wow, what a difference. I then realized that each bar was painted at the close, since i was using 10 min bars, i was missing the "window" of the floor (my buy / sell market trigger) and the ceiling (the limit)..
So what to do? Well, I went to the trusty bar magnifier, and then it helped, but not enough, after all if you are trading aapl, with a market limit order, that stock can really move in 60 seconds... so what to do?
I tried to use tick data. Well, even though I construct my bars using tick data for up to 3 months of back data (this is available from IQFeed, but it will fetch like 1 week of data during market hours, but 3 months of tick data outside of market hours). But sadly, tick data didnt seem to show any results on my backtest even though i am using 10 minute bars constructed from tick data... Question to Multicharts Experts --> how can i use tick data for backtest on a strategy that uses 10 minute bars?
I then decided what I would do is put a "switch" in my code that would be set with a true/false parameter. What i would do is make the strategy use buy or sell market for the position entry with no limit order. I use that to train. But for real trading i set the "switch" parameter to place limit orders for market entry.
I feel that the only way to get a realistic optimization or backtest would be to use tick resolution on my 10 minute bars, but sadly I cannot find a way to do this. Therefore the second best way is to train with your strategy use straight market orders, and when you deploy it you use market limit orders...
** Often when people do a backtest or optimize the strategy looks GREAT, but in real life, it doesnt work so great. I think the reasons for this are outlined above. If you want realistic you must use tick data.