Two basic types of quantitative strategies
Today’s finance world is very creative and complex. There is no shortage of ideas what or how to trade. However, we can classify all quantitative trading strategies into two basic categories:
- Mean reversion strategies.
- Momentum (“trend following”) strategies.
Mean reversion refers to data (prices, in our case) going back to the longer term mean. They usually have high smaller wins rate. Examples of such strategies are statistical, information arbitrage, pair trading (also form of arbitrage), autoregressive models, etc.
Momentum strategies rely on asset’s future growth, have lower bigger wins rate.
Today’s market, unlike before 80-ies computer revolution, are (on long term average) mean reverting, saying that markets had become more efficient and that mindless “trend following” trades were arbitraged away with faster computer trading.
Let’s see what autocorrelation shows:
acorr = df['ret'].corr(df['ret'].shift())
print(acorr)-0.06394201323877356
Yep, seems, the chosen asset is weakly mean reverting taking into account past 20 years.
Let’s confirm with some simple test of these two strategies on the same asset to see which one performs best. Mean reversion part will bet on mean reverting buying each time asset goes down and will go short when asset goes up. Vice versa, momentum strategy will bet buying when asset goes up and will go short when asset goes down. No commissions will be accounted here.
from numpy import where
from matplotlib import pyplot as pltfrom app.data import get_pickle
def main():
df = get_pickle('tiingo', 'SPY')
df['ret'] = df['SPY_Close'].pct_change()
df['Mean Reversion'] = where(df['ret'] > 0, -1, 1)
df['Momentum'] = where(df['ret'] > 0, 1, -1)
df[['Mean Reversion', 'Momentum']].cumsum().plot()
plt.show()
As we can see, mean reversion for SPY clearly prevails, at least since 1994.