Backtesting Investment Strategies
July 13, 2009
– Comments (8) |
RELATED TICKERS: ICI
, TRAD
When I first developed my investing model I was ignorant about my level of ignorance. Despite my ignorance^2, I had the opportunity to meet with several large investment firms and venture capitalists about my creation. One question that was consistently asked was:
Who the hell do you think you are?
However, another more relevant question was:
Have you done backtesting? And what were the results?
My answer at the time was, “Backtesting is hard. Even if I did backtesting, you would then question the accuracy of my backtesting in the same way you question the accuracy of model. Thus, it would be an ineffective means to validate my tool.”
I was right about backtesting being hard, and probably right about it not providing real validation for my tool (this may be the subject of a future post). However, as a user of my own tool, I thought it would help me sleep easier if I had a pretty good idea how my model would have performed over the last few years.
So I built it. It took 2-3 months of thinking about it, and 2 weeks to actually build it. To load an investment strategy takes about 8 hours, to gather all the price data takes about 12 hours (only needs to be done once for each year tested), to execute at varying portfolio sizes only takes about 5 minutes.
As I may refer to the results of my backtesting tool (I still need a cool name for it, any ideas?) I thought I would discuss its limitations upfront.
1. It does not factor in quarterly financial statements. The results are based solely on the end of year financial statements from the 5 previous years
2. It can only make end of day decisions since price data is most available in this form (this amount of data alone is sufficient to bring my system to its knees).
3. I can not use 2/10 price determinants that I use on anticitrade. So it does not perfectly model the investment decisions of my full system (for better or worse).
4. Many modern stocks do not have an adequate history for consideration in my model, consequently the quantity of viable investments is lower.
5. Many stocks that would have been a possible investment have since gone out of business, so their financial data was also missing from the analysis (probably inflates the results of my backtesting).
6. It does not account for transaction costs (although it will tell you the # of transactions).
That’s all the big flaws I have discovered so far. As some of you may conclude, creating a system that automatically makes investment decisions based on fundamental analysis and relative pricing was not a trivial task.
If anyone has a fundamental strategy they would like me to test out let me know. If I think it is worth 8 hours of my machines time, I will give it a run.
I don’t think I will be releasing the results of testing anticitrade for a variety of reasons. The two biggest are that the testing is incomplete, and I gain nothing from releasing it (since validating my own system does not add to its credibility).