Mean reversion in equities refers to the assumption that a stock tends to move over its historical price over time. As a result, one needs to estimate the historical average price of a stock over a period of time and then check how it diverges from it in different points in time.
Back-test implementation of mean reversion on S&P500 stocks:
- Calculate a rolling average and rolling deviation over the historical stock prices
- In each day compare the closing price with the historical average;
- If the closing price is greater than the average + n * deviation go short and close when you cross the mean or at a pre-determined time
- If the closing price is less than the average – n * deviation go long and close when you cross the mean or at a pre-determined time
By default and if no pre-determined time is used, all returns yielded should be positive if at any point in time the stock crossed its historical average (especially if using a large data set of historical prices, most likely that happened at some point). It also might make sense to set a closing trigger based on timing as well (e.g. 12-mo period or longer based on personal assessment if the stock has not reverted in the meantime). As always, it might also be a good idea to set a threshold based on losses – i.e. do not allow losses to exceed n % which could again be determined based on a personal assessment. The restrictions could be modeled in the back-testing to see what the impact would be on the generated alpha.