- Flink update_bars debouncing - update_bars subscription idempotency bugfix - Price decimal correction bugfix of previous commit - Add GLM-5.1 model tag alongside renamed GLM-5 - Use short Anthropic model IDs (sonnet/haiku/opus) instead of full version strings - Allow @tags anywhere in message content, not just at start - Return hasOtherContent flag instead of trimmed rest string - Only trigger greeting stream when tag has no other content - Update workspace knowledge base references to platform/workspace and platform/shapes - Hierarchical knowledge base catalog - 151 Trading Strategies knowledge base articles - Shapes knowledge base article - MutateShapes tool instead of workspace patch
61 lines
3.6 KiB
Markdown
61 lines
3.6 KiB
Markdown
---
|
|
description: "Extends cluster mean-reversion to a general loadings matrix with non-binary (continuous) risk factor exposures and regression weights, enabling neutrality to arbitrary factor sets."
|
|
tags: [stocks, mean-reversion, weighted-regression, statistical-arbitrage]
|
|
---
|
|
|
|
# Mean-Reversion — Weighted Regression
|
|
|
|
**Section**: 3.10 | **Asset Class**: Stocks | **Type**: Mean-Reversion / Statistical Arbitrage
|
|
|
|
## Overview
|
|
This strategy generalizes the cluster mean-reversion approach (Section 3.9) by replacing the binary loadings matrix with a general (possibly non-binary) loadings matrix `Omega_{iA}`. The resulting demeaned returns are orthogonal to all K loadings vectors, providing neutrality to the corresponding risk factors. Non-binary columns can represent industry-neutral, style factor, or principal component exposures.
|
|
|
|
## Construction / Signal
|
|
The orthogonality condition for the twiddled (demeaned) returns `R_tilde_i` to a general loadings matrix `Omega_{iA}`:
|
|
|
|
```
|
|
sum_{i=1}^{N} R_tilde_i Omega_{iA} = 0, A = 1,...,K (313)
|
|
```
|
|
|
|
The twiddled returns are the residuals `epsilon_i` of the regression of `R_i` on `Omega_{iA}` with regression weights `z_i`:
|
|
|
|
```
|
|
R_tilde = Z epsilon (314)
|
|
epsilon = R - Omega Q^{-1} Omega^T Z R (315)
|
|
Z = diag(z_i) (316)
|
|
Q = Omega^T Z Omega (317)
|
|
```
|
|
|
|
When the intercept is included in `Omega_{iA}` (i.e., a linear combination of columns equals the unit N-vector nu), then automatically:
|
|
|
|
```
|
|
sum_{i=1}^{N} R_tilde_i = 0 (318)
|
|
```
|
|
|
|
(dollar-neutrality is automatic).
|
|
|
|
Weights `z_i` can be taken as `z_i = 1/sigma_i^2` where `sigma_i` are historical volatilities (inverse-variance weighting).
|
|
|
|
## Entry / Exit Rules
|
|
- **Entry**: Compute residuals from the weighted regression; enter positions proportional to `-R_tilde_i` (buy underperformers relative to factor model, short outperformers).
|
|
- **Exit**: Close when residuals converge; or at a fixed holding horizon.
|
|
- **Dollar-neutrality**: Automatically satisfied if intercept is included in Omega.
|
|
|
|
## Key Parameters
|
|
- **Loadings matrix Omega_{iA}**: Binary (industry/sector) or non-binary (continuous risk factors, PCA components)
|
|
- **Regression weights z_i**: Often `1/sigma_i^2` (inverse variance) or uniform
|
|
- **Number of factors K**: At least 1; more factors remove more systematic risk exposures
|
|
- **Holding period**: Short-term, matching the mean-reversion horizon
|
|
|
|
## Variations
|
|
- **Binary Omega (reduces to Section 3.9)**: When Omega is a binary cluster membership matrix, recovers the single-cluster or multi-cluster mean-reversion formula exactly
|
|
- **PCA-based Omega**: Use principal components of the return covariance matrix as non-binary columns
|
|
- **Style factor neutrality**: Add style factor exposures (value, momentum, size, liquidity, volatility) as columns in Omega
|
|
|
|
## Notes
|
|
- This is the most general form of the cluster mean-reversion strategy family.
|
|
- Non-binary columns in Omega (e.g., industry-based continuous risk factors, or PCA-derived factors) allow neutralization of more complex systematic risks.
|
|
- In the zero specific-risk limit (all variance is factor-driven), optimization reduces to weighted regression.
|
|
- The choice of Omega and z_i is the key design decision; binary industry/sector classifications are stable out-of-sample; continuous factor exposures require more frequent recalibration.
|
|
- Building a reliable loadings matrix Omega is closely related to constructing a risk model (see Kakushadze and Yu references).
|