Quantopian's new offers on fundamental data is very interesting. I wrote a simple strategy based on quantitative value investing and I share the results here. The rules are as follows:
- select no more than 15 stocks that satisfy the following rules: P/E < 12, P/B < 2, ROE > 15%, market cap > $100M
- hold the selections for one year, and re-do the selection next year
The results are in good agreement with classic value investing theories. Value stocks tend to outperform market in the long run, but when economy is bad, value stocks are hit harder than normal stocks. That's why you see that although the strategy outperformed the market by almost twice, the max drawn down calculated by Quantopian is as high as 70%.
I found the new object fundamentals not that easy to use. There is not a comprehensive table describing what valuation metrics are there in the fundamentals object, and I have to search in the pop out textbox after I type the . after fundamentals, and for some reason the search don't work all the time. Also there is no explanation on how the valuation metrics are calculated. For example the P/E ratio is calculated based on earnings of the quarter or the year, or it is a forward P/E. I hope Quantopian can provide better documentation on how to use the fundamental data. Otherwise it is difficult to write better strategies.
Finally I think the fundamental data is great for back testing, but I am a little skeptical about using fundamentals to do algorithmic trading. After all trading strategies based on fundamentals are relatively long term strategies, and you usually need to look more carefully on the business and accounting of the company rather than simply using the valuation metrics to make trade decisions. So the back testing results using fundamental data would be helpful for trading decision, but it could hard to make trading decisions solely on the fundamental data.
That being said, I think if the fundamental data can include future event dates, that could be more helpful. For example, if Quantopian can provide a calendar for all the earning release date for stocks, users can trade based on the released earnings. That should be more suitable for algorithmic trading.
Let me know your thoughts and suggestions. Thanks.