Objectif: Backtester les 4 meilleures stratégies (Sharpe IS > 0.5) sur une periode OOS de 2 ans (2023-01-01 a 2026-05-01) pour verifier la robustesse hors-echantillon.
Verdict par stratégie: OOS_HOLDS | OOS_DEGRADES | OOS_FAIL
Methodologie: - Les 4 stratégies ont ete re-backtestees sur QC Cloud avec la même logique de code - EMA-Cross et TrendStocks ont necessite une refonte des indicateurs EMA (l’API QC Python ne supporte pas les indicateurs EMA depuis un AlphaModel — solution: EMA manuel depuis algorithm.history()) - FF/AW et MomentumRegime utilisaient déjà des indicateurs qui fonctionnent (SMA, momentum brut) - Aucun changement de logique de signal — seules les dates ont change
Diagnostic: - Le croisement EMA 20/50 sur 5 actions tech (AAPL, MSFT, GOOGL, AMZN, NVDA) est completement tombe en OOS - Cause probable: le regime de marche 2023-2026 a ete domine par un rally tech continu sans vraies corrections — les signaux de crossover courts se font whipsawer - Alpha negatif (-0.060) confirme que la stratégie detrui de la valeur vs buy-and-hold - Conclusion: Overfitting manifeste sur la periode IS. La stratégie n’a pas de veritable edge.
3.2 TrendStocks-Alpha — OOS_HOLDS
Metric
IS
OOS
Delta
Sharpe
0.609
0.850
+0.241
CAGR
10.8%
19.3%
+8.5pp
MaxDD
18.3%
12.4%
-5.9pp
Alpha
0.030
0.060
+0.030
Diagnostic: - La stratégie s’est amelioree en OOS — c’est le meilleur signal possible - 15 actions diversifiees (tech + value + defensif) + filtre SMA200 + EMA cross - Le filtre de tendance long terme (SMA200) a bien protege pendant les phases de range - Alpha positif (0.060) confirme un edge reel vs le benchmark - Conclusion: Stratégie robuste. Le signal de tendance multi-actifs est valide.
3.3 FF/AW Composite (20/80) — OOS_HOLDS
Metric
IS
OOS
Delta
Sharpe
0.558
0.682
+0.124
CAGR
7.2%
13.7%
+6.5pp
MaxDD
13.1%
7.1%
-6.0pp
Alpha
0.008
0.009
+0.001
Diagnostic: - Amelioration en OOS — Sharpe plus eleve, drawdown plus faible - L’allocation 80% AllWeather (SPY/IEF/GLD/XLP) + 20% FamaFrench (VLUE/MTUM/SIZE/QUAL/USMV) est structurellement saine - Alpha faiblement positif mais stable (0.009) — l’edge vient surtout de l’allocation stratégique, pas du stock-picking - Conclusion: La stratégie la plus defensive et la plus robuste du portefeuille. Unpilier AllWeather valide.
3.4 MomentumRegime (60/40) — OOS_DEGRADES
Metric
IS
OOS
Delta
Sharpe
0.538
0.145
-0.393
CAGR
11.9%
8.7%
-3.2pp
MaxDD
27.4%
4.6%
-22.8pp
Alpha
0.020
-0.023
-0.043
Diagnostic: - Degradation significative du Sharpe (-73%), mais la stratégie reste profitable (+32.2%) - Le MaxDD s’est considerablement ameliore (27.4% -> 4.6%) — probablement parce que le regime switch a reduit l’exposition - Alpha negatif (-0.023) indique que les rendements viennent du beta (exposition marche) pas d’un edge spécifique - Le regime switch 2023-2026 (bull market quasi-continu) n’a pas autant de value que dans la periode IS (COVID, corrections) - Conclusion: La stratégie ne detruit pas de valeur, mais son edge regime-switch est moins pertinent en bull market persistant. A retester sur une periode avec plus de volatilite.
L’API QuantConnect Python ne supporte pas les indicateurs EMA depuis un AlphaModel context: - algorithm.ema() (lowercase): TypeError - algorithm.EMA() (PascalCase): TypeError - ExponentialMovingAverage(period) direct constructor: TypeError
Solution: EMA manuel depuis algorithm.history() close prices (fonction compute_ema() en pure numpy).
5.2 Constructor Bug
Pattern self.set_alpha(EMACrossAlpha(tickers)) passe la liste de tickers comme paramètre fast_period — doit utiliser EMACrossAlpha() sans arguments.
5.3 OOS Best Practices
Un Sharpe IS > 0.9 est souvent un signal d’overfitting (EMA-Cross: 0.996 IS -> -0.527 OOS)
Les stratégies multi-asset diversifiees (TrendStocks: 15 tickers, FF/AW: 9 tickers) sont plus robustes que les stratégies concentrees (EMA-Cross: 5 tickers)
Le filtre de tendance long terme (SMA200) est un facteur de robustesse cle