Machine Learning Strategies: 12 Backtests
Data last updated
Rules built from machine learning or portfolio-optimisation methods rather than a single indicator.
1 of 12 strategies finished ahead of the benchmark on the raw number, and 0 had an unadjusted p-value under 0.05. None cleared the correction for trying 1,774 tests in total (a q-value below 0.10), so no result here is a confirmed edge. Scored 2026-10-31, using data up to 2025-03-15.
Strategies here tested on crypto, US stocks. See the full family index, the full method and every result, or download the raw registry (JSON).
Results
| Rule | Market | Vs benchmark | Sample | p-value | Corrected q | Receipt |
|---|---|---|---|---|---|---|
| Kalman filter dynamic trend/slope estimate receipt Source: Ernest Chan, Algorithmic Trading (2013), ch. on Kalman filters | crypto | +1.0 pts/yr | 3,251 trades | 0.478 | 1.000 | On-site receipt |
| Hierarchical Risk Parity (Lopez de Prado) allocation (wide US stocks) receipt Source: Lopez de Prado (2016) JPM 68-79 | US stocks | −3.8 pts/yr | 90 rebalances | 1.000 | 1.000 | On-site receipt |
| Minimum-variance long-only portfolio, rolling covariance receipt Source: Clarke, de Silva, Thorley (2006) Journal of Portfolio Management | US stocks | −4.3 pts/yr | 431 rebalances | 1.000 | 1.000 | On-site receipt |
| Minimum-variance long-only portfolio, rolling covariance (wide US stocks) receipt Source: Clarke, de Silva, Thorley (2006) Journal of Portfolio Management | US stocks | −4.4 pts/yr | 431 rebalances | 1.000 | 1.000 | On-site receipt |
| Hierarchical Risk Parity (Lopez de Prado) allocation receipt Source: Lopez de Prado (2016) JPM 68-79 | US stocks | −4.6 pts/yr | 90 rebalances | 1.000 | 1.000 | On-site receipt |
| Equal-weight ensemble of weak technical signals, majority vote (wide US stocks) receipt Source: QuantConnect/Quantopian community ensemble-signal writeups | US stocks | −12.5 pts/yr | 21,776 trades | 1.000 | 1.000 | On-site receipt |
| Equal-weight ensemble of weak technical signals, majority vote receipt Source: QuantConnect/Quantopian community ensemble-signal writeups | crypto | −12.6 pts/yr | 158 trades | 1.000 | 1.000 | On-site receipt |
| Kalman filter dynamic trend/slope estimate (wide US stocks) receipt Source: Ernest Chan, Algorithmic Trading (2013), ch. on Kalman filters | US stocks | −16.3 pts/yr | 8,279 trades | 1.000 | 1.000 | On-site receipt |
| PCA-based statistical arbitrage across crypto majors (wide US stocks) receipt Source: Avellaneda & Lee (2010) Quantitative Finance | US stocks | −29.0 pts/yr | 1,707 rebalances | 1.000 | 1.000 | On-site receipt |
| ML-lite drawdown-triggered deleveraging overlay receipt Source: Kaminski, Lo (2014) Journal of Financial Markets 'When Do Stop-Loss Rules Stop Losses?' | crypto | −35.7 pts/yr | 192 trades | 1.000 | 1.000 | On-site receipt |
| PCA-based statistical arbitrage across crypto majors receipt Source: Avellaneda & Lee (2010) Quantitative Finance | crypto | −89.0 pts/yr | 429 rebalances | 1.000 | 1.000 | On-site receipt Full test: Pairs Trading |
| Random forest hourly direction classifier receipt Source: Krauss, Do, Huck (2017) EJOR 'Deep neural networks, gradient-boosted trees, random forests: Statistical arbitrage on the S&P 500' | crypto | −181.8 pts/yr | 87,166 trades | 1.000 | 1.000 | On-site receipt |
- Kalman filter dynamic trend/slope estimate
crypto · +1.0 pts/yr · 3,251 trades · corrected q 1.000
Source, p-value and result file
- Source
- Ernest Chan, Algorithmic Trading (2013), ch. on Kalman filters
- p-value
- 0.478
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Hierarchical Risk Parity (Lopez de Prado) allocation (wide US stocks)
US stocks · −3.8 pts/yr · 90 rebalances · corrected q 1.000
Source, p-value and result file
- Source
- Lopez de Prado (2016) JPM 68-79
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Minimum-variance long-only portfolio, rolling covariance
US stocks · −4.3 pts/yr · 431 rebalances · corrected q 1.000
Source, p-value and result file
- Source
- Clarke, de Silva, Thorley (2006) Journal of Portfolio Management
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Minimum-variance long-only portfolio, rolling covariance (wide US stocks)
US stocks · −4.4 pts/yr · 431 rebalances · corrected q 1.000
Source, p-value and result file
- Source
- Clarke, de Silva, Thorley (2006) Journal of Portfolio Management
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Hierarchical Risk Parity (Lopez de Prado) allocation
US stocks · −4.6 pts/yr · 90 rebalances · corrected q 1.000
Source, p-value and result file
- Source
- Lopez de Prado (2016) JPM 68-79
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Equal-weight ensemble of weak technical signals, majority vote (wide US stocks)
US stocks · −12.5 pts/yr · 21,776 trades · corrected q 1.000
Source, p-value and result file
- Source
- QuantConnect/Quantopian community ensemble-signal writeups
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Equal-weight ensemble of weak technical signals, majority vote
crypto · −12.6 pts/yr · 158 trades · corrected q 1.000
Source, p-value and result file
- Source
- QuantConnect/Quantopian community ensemble-signal writeups
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Kalman filter dynamic trend/slope estimate (wide US stocks)
US stocks · −16.3 pts/yr · 8,279 trades · corrected q 1.000
Source, p-value and result file
- Source
- Ernest Chan, Algorithmic Trading (2013), ch. on Kalman filters
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- PCA-based statistical arbitrage across crypto majors (wide US stocks)
US stocks · −29.0 pts/yr · 1,707 rebalances · corrected q 1.000
Source, p-value and result file
- Source
- Avellaneda & Lee (2010) Quantitative Finance
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- ML-lite drawdown-triggered deleveraging overlay
crypto · −35.7 pts/yr · 192 trades · corrected q 1.000
Source, p-value and result file
- Source
- Kaminski, Lo (2014) Journal of Financial Markets 'When Do Stop-Loss Rules Stop Losses?'
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- PCA-based statistical arbitrage across crypto majors
crypto · −89.0 pts/yr · 429 rebalances · corrected q 1.000
Source, p-value and result file
- Source
- Avellaneda & Lee (2010) Quantitative Finance
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
- Random forest hourly direction classifier
crypto · −181.8 pts/yr · 87,166 trades · corrected q 1.000
Source, p-value and result file
- Source
- Krauss, Do, Huck (2017) EJOR 'Deep neural networks, gradient-boosted trees, random forests: Statistical arbitrage on the S&P 500'
- p-value
- 1.000
- Corrected q
- 1.000
- Receipt
- On-site receipt
How to read these results
"Vs benchmark" is the strategy's annualized return minus an equal-weight benchmark, rebalanced daily, on the same assets and days. Strategies are charged trading costs; the benchmark pays none. Ahead is not a confirmed edge: the p-value is the unadjusted chance of a gap this large by luck, and the corrected q allows for how many strategies were tried, because testing hundreds of ideas throws up lucky winners. Every strategy saw only data up to the same cutoff date. The receipt is the frozen result file for that rule.
"Sample" is trades for rules that enter and exit a position, and rebalances for portfolio rules. A rebalance is a scheduled date on which a portfolio rule re-ranks and held at least one position. It is the sample size for portfolio rules. A holdings change is a rebalance where what the portfolio held, or its weights, differed from the previous one. Only these cost money to trade. The two are different counts and are never swapped. Definitions.