Your plan is the correct approach. And, it depends on your data time frame. Those who test on daily data may be getting spurious results. I've never seen correct daily data for stocks, though it may exist.
Obviously you can do all kinds of testing with historical data, which you should do, but many people would be shocked at the real-time differences.
The reason is simple, the daily data is "corrected", and corrected as far as a trader is concerned is incorrect. Why? Because when financial institutions trade among themselves in large blocks they don't have to report their trades until after the market closes. These large block trades often trade far away from the daily range creating long tails on the daily bar. So even though the trade did happen during the day, you, or anyone else for that matter, could not participate. The closing (and opening) price is another possible problem. Is the closing price on the daily bar the price at 4:00, 4:15 (whenever trading on that symbol ends), or the Market on Close price. Can you get that price?
You may be able to see the results of this "corrected" data on your trading platform if it uses real-time tick data during the day. When you open your chart the next day, the previous days bar visibly corrects itself. I see this when I have a daily bar database and a real-time tick data feed. The previous day corrects itself to use the now "corrected" daily bar instead of the correct tick data.
My only point is that if you have not already done testing like this, you may learn a lot of useful information about your data via your testing plan. Note also that manually checking your results against "corrected" data does not catch these issues.
Also keep in mind that if you are trading stocks you can buy/sell 1 share for testing. Yes it costs you commissions but you can learn some more useful information like;
Can you short the stock? In a timely manner?
What is the slippage like? You may think that you have reasonable liquidity, but many would be surprised at how long a stock can go without trading in the middle of the day. It may very well gap past the price you thought you would get or, if you put in a market order, get a horrendous fill.
-David
Obviously you can do all kinds of testing with historical data, which you should do, but many people would be shocked at the real-time differences.
The reason is simple, the daily data is "corrected", and corrected as far as a trader is concerned is incorrect. Why? Because when financial institutions trade among themselves in large blocks they don't have to report their trades until after the market closes. These large block trades often trade far away from the daily range creating long tails on the daily bar. So even though the trade did happen during the day, you, or anyone else for that matter, could not participate. The closing (and opening) price is another possible problem. Is the closing price on the daily bar the price at 4:00, 4:15 (whenever trading on that symbol ends), or the Market on Close price. Can you get that price?
You may be able to see the results of this "corrected" data on your trading platform if it uses real-time tick data during the day. When you open your chart the next day, the previous days bar visibly corrects itself. I see this when I have a daily bar database and a real-time tick data feed. The previous day corrects itself to use the now "corrected" daily bar instead of the correct tick data.
My only point is that if you have not already done testing like this, you may learn a lot of useful information about your data via your testing plan. Note also that manually checking your results against "corrected" data does not catch these issues.
Also keep in mind that if you are trading stocks you can buy/sell 1 share for testing. Yes it costs you commissions but you can learn some more useful information like;
Can you short the stock? In a timely manner?
What is the slippage like? You may think that you have reasonable liquidity, but many would be surprised at how long a stock can go without trading in the middle of the day. It may very well gap past the price you thought you would get or, if you put in a market order, get a horrendous fill.
-David
Hello,
We trading strategies developers depend on back testing software to return us accurate as possible back test results.
How do you validate your back testing results when testing a strategy?
I plan to do the follow:
1. Run strategy in sim mode for 3 months.
2. Back test those same 3 months.
3. Compare results of 1 and 2.
4. Make a business decision if my back testing software is accuracy.
Thanks for the help.
