- 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
75 lines
4.1 KiB
Markdown
75 lines
4.1 KiB
Markdown
---
|
|
description: "Combines hundreds of thousands of weak individual alpha signals into a single tradeable mega-alpha by optimizing combination weights using a structured 11-step procedure based on demeaned returns and regression residuals."
|
|
tags: [stocks, machine-learning, alpha-combination, quantitative]
|
|
---
|
|
|
|
# Alpha Combos
|
|
|
|
**Section**: 3.20 | **Asset Class**: Stocks | **Type**: Machine Learning / Quantitative / Alpha Combination
|
|
|
|
## Overview
|
|
Alpha combo strategies combine a large number of weak quantitative trading signals ("alphas") into a single tradeable "mega-alpha" portfolio. Each individual alpha is too faint to trade profitably on its own after costs, but a sufficiently large combination can generate a viable signal. The combination weights are optimized using a structured procedure that handles serial correlation, cross-sectional demeaning, and risk normalization.
|
|
|
|
## Construction / Signal
|
|
Assume N alphas (possibly hundreds of thousands), all trading the same universe of ~2,500 liquid U.S. stocks. Each alpha produces desired stock holdings at a sequence of times t_1, t_2, .... The procedure for fixing combination weights w_i [Kakushadze and Yu, 2017b]:
|
|
|
|
1. Start with time series of realized alpha returns `R_is`, i=1,...,N, s=1,...,M+1.
|
|
2. Calculate serially demeaned returns:
|
|
```
|
|
X_is = R_is - (1/(M+1)) * sum_{s=1}^{M+1} R_is
|
|
```
|
|
3. Calculate sample variances of alpha returns:
|
|
```
|
|
sigma_i^2 = (1/M) * sum_{s=1}^{M+1} X_is^2
|
|
```
|
|
4. Calculate normalized demeaned returns:
|
|
```
|
|
Y_is = X_is / sigma_i
|
|
```
|
|
5. Keep only the first M columns: Y_is, s=1,...,M.
|
|
6. Cross-sectionally demean Y_is:
|
|
```
|
|
Lambda_is = Y_is - (1/N) * sum_{j=1}^{N} Y_js
|
|
```
|
|
7. Keep only the first M-1 columns: Lambda_is, s=1,...,M-1.
|
|
8. Compute expected alpha returns E_i and normalize:
|
|
```
|
|
E_i = (1/d) * sum_{s=1}^{d} R_is (360)
|
|
E_tilde_i = E_i / sigma_i
|
|
```
|
|
(d-day moving average; d need not equal T)
|
|
9. Calculate residuals `epsilon_tilde_i` of regression (no intercept, unit weights) of `E_tilde_i` over `Lambda_is`.
|
|
10. Set alpha portfolio weights:
|
|
```
|
|
w_i = eta * epsilon_tilde_i / sigma_i
|
|
```
|
|
11. Set normalization coefficient eta such that:
|
|
```
|
|
sum_{i=1}^{N} |w_i| = 1
|
|
```
|
|
|
|
## Entry / Exit Rules
|
|
- **Entry**: At each rebalance time, recompute combination weights w_i using the 11-step procedure and establish positions accordingly.
|
|
- **Exit**: Positions are updated at each rebalance; individual alpha positions change according to the alpha's own signals, and the overall mega-alpha weight adjusts.
|
|
- **Holding period**: Determined by individual alpha holding periods (typically daily, from close to close).
|
|
|
|
## Key Parameters
|
|
- **Number of alphas N**: Can be hundreds of thousands or millions
|
|
- **Return history M+1**: Number of time periods used for variance estimation
|
|
- **Expected return window d**: Number of days for moving average of alpha returns (Eq. 360; d need not equal M)
|
|
- **Universe**: Typically ~2,500 most liquid U.S. stocks
|
|
- **Alpha returns R_is**: Daily alpha returns from close to close
|
|
|
|
## Variations
|
|
- **Fewer alphas**: The procedure scales from a few dozen to millions of alphas
|
|
- **Different expected return estimator**: Instead of d-day moving average, other estimators for E_i can be used
|
|
- **Multiple universes**: Extend to different stock universes or asset classes
|
|
|
|
## Notes
|
|
- Individual alphas are "ubiquitous, faint, and ephemeral" — their signal is too weak to trade profitably alone due to transaction costs.
|
|
- The 11-step procedure handles: serial correlation (steps 1-2), scale normalization (steps 3-4), cross-sectional neutrality (steps 5-7), expected return estimation (step 8), residualization (step 9), and final weight normalization (steps 10-11).
|
|
- "Alpha" here follows the practitioner definition: any reasonable expected return signal, not necessarily Jensen's alpha.
|
|
- 101 explicit examples of such quantitative alphas are given in Kakushadze (2016).
|
|
- This is a cross-sectional multi-stock strategy requiring significant data infrastructure.
|
|
- Typical holding period: daily (overnight or close-to-close).
|