Dynamically Combining Mean Reversion and Momentum Strategies in Statistical Arbitrage: Mathematical Foundations and Practical Implementation

MarketMaker.cc Team
퀀트 리서치 및 전략

MarketMaker.cc Team
퀀트 리서치 및 전략
This article presents a quantitative framework for integrating mean reversion and momentum strategies in statistical arbitrage. By combining PCA-based signal decomposition, regime-switching models, and dynamic portfolio optimization, we demonstrate how to achieve Sharpe ratios of 1.4–1.6 while reducing maximum drawdowns by 30–40% compared to isolated strategies. Key innovations include a closed-form solution for adaptive strategy weighting and an LSTM-based regime predictor achieving 78% accuracy on 5-day horizons.
Visualizing the synergy: Mean Reversion (cyan sine wave) and Momentum (orange trend) merging into a unified, high-performance strategy
Principal Component Analysis (PCA) isolates idiosyncratic returns from systemic market factors:
where [^9]. This explains 82% of return variance while filtering out market beta, enabling pure alpha extraction [^1][^5].
PCA visualization: decomposing asset returns into principal components to isolate idiosyncratic alpha from market-wide risk factors
Optimal weights for mean reversion (MR) and momentum (MOM) strategies derive from:
where covariance updates via 63-day rolling window [^5][^11]. Switching conditions:
Transition probabilities show 0.85–0.92 persistence, requiring monthly re-estimation via Baum-Welch algorithm [^4][^17].
Hidden Markov Model (HMM) for regime detection: dynamically identifying Bull, Bear, and Sideways states with automated transition logic
class AdaptiveArbStrategy:
def __init__(self, lookback=63):
self.lookback = lookback
self.pca = PCA(n_components=0.95)
def update_weights(self, returns):
self.pca.fit(returns)
idiosyncratic = self.pca.transform(returns)
mr_returns = self._mean_reversion(idiosyncratic)
mom_returns = self._momentum(returns)
cov_matrix = np.cov(mr_returns[-self.lookback:],
mom_returns[-self.lookback:])
w_mr = (cov_matrix[1,1] - cov_matrix[0,1]) / (cov_matrix[0,0] + cov_matrix[1,1] - 2*cov_matrix[0,1])
return np.clip(w_mr, 0, 1)
Using Tree-structured Parzen Estimator:
from hyperopt import tpe, fmin
space = {
'lookback': hp.quniform('lb', 20, 100, 5),
'adx_thresh': hp.uniform('adx', 20, 30),
'adf_pval': hp.uniform('adf', 0.01, 0.1)
}
best_params = fmin(objective, space, algo=tpe.suggest, max_evals=1000)
Optimal ranges emerge:
where models returns as mixture of t-distributions weighted by HMM state probabilities [^4][^16].
with position sizing constrained to 50% of CVaR limit [^6][^14].
| Metric | MR Only | MOM Only | Combined |
|---|---|---|---|
| Sharpe Ratio | 0.8 | 1.1 | 1.4 |
| Max Drawdown | -35% | -28% | -19% |
| Win Rate | 58% | 52% | 63% |
2008–2009 backtest results showing 23% absolute return vs. -37% S&P 500 decline [^1][^5]
model = Sequential()
model.add(LSTM(64, input_shape=(60, 10), return_sequences=True))
model.add(LSTM(32))
model.add(Dense(3, activation='softmax')) # 3 HMM states
model.compile(loss='categorical_crossentropy', optimizer='adam')
Achieves 78% accuracy on 5-day regime predictions when trained on VIX, ADX, and PCA factors [^17].
The synthesis of mean reversion and momentum strategies requires:
Emerging approaches show promise:
By maintaining rigorous separation of signal components and continuously adapting to market dynamics, quants can achieve consistent alpha generation across market cycles.
@article{soloviov2025dynamiccombining, author = {Soloviov, Eugen}, title = {Dynamically Combining Mean Reversion and Momentum Strategies in Statistical Arbitrage: Mathematical Foundations and Practical Implementation}, year = {2025}, url = {https://marketmaker.cc/en/blog/post/dynamic-combining-strategies}, version = {0.1.0}, description = {An advanced exploration of how to integrate mean reversion and momentum strategies in statistical arbitrage using PCA-based signal decomposition, regime-switching models, and dynamic portfolio optimization.} }