Hi Ivan,
One more reflection after the weekend.
I think doing backtesting on top 100 equities taken by market cap in 2020 (which as I understand is the main way to set portfolio at the moment) may have a strong survivor bias, or 'ultimate superstar' bias. E.g. for top 100 in S&P - Salesforce lands in top 100, but it definitely was not in top 100 14 years ago.
It would be extremely useful for such long term backtesting to have a dynamic criteria - 'always take top 100 by market cap from S&P'. I think this is what will happen in reality and such a strategy will have smaller returns as the superstar stocks land in top 100 much later.
Or am I missing something?
Best regards,
Pawel
Hey Pawel,
What you're referring to is a dynamic screen to apply the screening rule across time. I currently use a static screen to create the investment universe. However there is a solution.
To handle survivorship bias, what you can do is to include stocks that have been removed from the index as part of the backtest as well. This will remove the biasness towards stocks that have survived in the index.
For the fundamentals backtest you can choose market cap as a signal where during each portfolio rebalancing period, the strategy will dynamically select the top x number of stocks specified by the user.
Kind regards,
Ivan
© PyInvesting 2024