# Statut des stratégies QuantConnect — source de vérité

> **Issue parente** : [#1621 EPIC Consolidation QC/Trading](https://github.com/jsboige/CoursIA/issues/1621) (mandat user 2026-05-27).
> **Partition** : `po-2024:CoursIA` (QC). **Tranche 1** (livrable incrémental — l'EPIC demande explicitement « un sujet par PR, ne pas tout faire d'un coup »).

Ce document est le **point d'entrée unique** pour un visiteur qui découvre les stratégies sous `MyIA.AI.Notebooks/QuantConnect/projects/` (l'arborescence inclut des entrées non-stratégies comme `_docs/` ou le harness `Research-Executor`). Il cartographie les stratégies, leur type, leur source de données, et — là où l'évidence existe — leur statut (alive / superseded / needs-improvement / à confirmer). Le compte d'entrées dérive à chaque ajout de projet : il se lit dans l'arborescence `projects/`, pas ici.

## Méthodologie (honnête)

Les statuts ci-dessous sont **exclusivement dérivés d'évidence firsthand** :

- **Backtests documentés** dans la mémoire du cluster (baselines vérifiées cross-seed).
- **Figures de recherche** couvertes par la campagne EPIC [#5654](https://github.com/jsboige/CoursIA/issues/5654) (2026-07-08, 11 stratégies QC illustrées).

Les stratégies **sans backtest récent dédié** sont marquées **« À confirmer »** plutôt que de recevoir un statut fabriqué. Un backtest par stratégie (via QC Cloud, MCP `qc-mcp`) reste l'acceptance finale — voir [#1027](https://github.com/jsboige/CoursIA/issues/1027) pour la gate paper-trading/backtest.

## Les 4 types de notebooks (acceptance EPIC)

Le matériel QC mélange 4 types de notebooks qu'un visiteur doit distinguer :

| Type | Description | Localisation |
|------|-------------|--------------|
| **(a) Quantbook QC Cloud** | Notebook officiel utilisant `QuantBook()`, exécuté via QC Cloud (MCP `qc-mcp` / Playwright en fallback). Non exécutable localement. | `projects/*/research.ipynb`, `Python/QC-Py-*` |
| **(b) Research notebook lié** | Notebook de recherche compagnon d'un quantbook/stratégie `projects/`. | `projects/*/research_*.ipynb` |
| **(c) Standalone research** | Recherche indépendante, données locales (yfinance, pandas, sklearn). Aucun QC Cloud requis. | `research/research_*.ipynb` (18 notebooks) |
| **(d) Placeholder pédagogique** | Notebook de cours avec stubs `# TODO étudiant`. | `Python/QC-Py-*` (cours) |

**Note** : `projects/Research-Executor/` est un **harness d'exécution** (`main.py` + `runner.ipynb` + MockQB), pas une stratégie ni une zone de recherche — README explicite : « Type: Utility (research execution harness, not a trading strategy) ».

## Stratégies vérifiées (statut firsthand)

| Stratégie | Type | Classe d'actifs | Statut | Évidence |
|-----------|------|-----------------|--------|----------|
| `LongShortHarvest-QC` | Composite pairs | Multi-actifs | **Alive — BEATS** | Baseline cluster 98.7% (backtest vérifié) ; figure #5740 |
| `Framework_Composite_FamaFrenchAllWeather` | Composite | Multi-actifs | **Alive — BEATS** | 87.5% OOS (backtest vérifié) |
| `DynamicVIXSpyRegime-QC` | Régime VIX | US Equity | **Alive** | 69.4% (backtest vérifié) |
| `BitcoinRegimeGate-QC` | Régime BTC (gate 24/7) | US Equity (QQQ/SHY) | **Alive — risk-adjusted** | QC Cloud 2026-09-30 (distillat #18576) : IS 2016-21 Sharpe **1.133** vs QQQ-hold 0.961 (MaxDD 14.4 % vs 28.2 %) ; OOS 2022-26 Sharpe **0.64** vs QQQ-hold 0.43 (MaxDD 15.2 % vs 34.7 %) ; PSR OOS 14.3 % (edge vs cash non significatif) |
| `AllWeather` | Multi-asset risk-parity | Actions/Bonds/Or/Commodities | **Alive** | Figure #5743 |
| `EMA-Cross-Index` | Trend EMA | US Equity (SPY) | **Alive** | Figure #5746 |
| `EMA-Cross-Crypto` | Trend EMA | Crypto (BTC) | **Alive** | Figure #5750 |
| `ML-RandomForest` | ML supervisé (RF) | US large-cap | **Alive** | Figure #5747 |
| `ML-XGBoost` | ML supervisé (XGBoost) | US large-cap | **Alive** | Figure #5749 |
| `ForexCarry` | FX carry/momentum | G10 FX | **Alive** | Figure #5748 |
| `RiskParity` / `Cloud-RiskParity-Composite` | Inverse-vol risk-parity | Multi-actifs | **Needs-improvement** (plafond structurel) | Sharpe 0.399 (contre-exemple pédagogique, figure #5753) ; **run frais 2026-08-14 baseline #1630 : 0.027** (tranche 24 ci-dessous) |
| `DualMomentum` | Momentum dual-asset | Multi-actifs | **Superseded** | Échec TLT 2022 → remplacé par `DualMomentumNoTLT` |
| `DualMomentumNoTLT` | Momentum (sans TLT) | Multi-actifs | **Alive** (remplacement) | Figure #5754 |

## Régimes de performance (connaissance cluster firsthand)

Backtests cross-stratégies 2022–2024 (stress test) — un visiteur peut anticiper le comportement d'une stratégie selon sa classe :

| Régime | Comportement typique |
|--------|----------------------|
| Value / Factor / Trend classique | **Effondrement** (−62% à −85%) |
| Structured ML / Composites | **Tien** (−2% à −14%) |
| High-Turnover US Equity | **Near-immune** (0% à −2%) |
| Low-Turnover Multi-Asset / Crypto | **Vulnérable** (−30% à −43%) |

## Inventaire complet des projets (statut best-guess)

> **Scope PR-D (#1621)** : cartographie des entrées sous `projects/`.
> Statuts dérivés **exclusivement de métadonnées du dépôt** (classe `main.py`, présence de 
> `research.ipynb`/`quantbook.ipynb`, contenu du `README.md`). **Aucun backtest lancé** dans cette 
> tranche — les métriques (Sharpe/CAGR) relèvent du scope séparé **RECOVERABLE-MACHINE** (QC Cloud, 
> MCP `qc-mcp`). Les statuts marqués *best-guess* ne sont **pas vérifiés firsthand**.

### Synthèse par bucket

| Bucket | Nombre | Lecture |
|--------|-------:|---------|
| Vérifié (tranche 1, firsthand) | 13 | statut firsthand confirmé dans le tableau ci-dessus |
| Vérifié (tranche 2, backtests QC Cloud MCP) | 5 | métriques réelles (Sharpe/CAGR/MaxDD) — **toutes Needs-improvement** (PSR < 50 %, pas d'edge statistique) |
| Vérifié (tranche 3, backtests QC Cloud MCP) | 5 | cohorte Momentum/Factor/Composite — **1 edge significatif** (BlackLitterman PSR 51 %), 2 Needs-improvement, 2 BROKEN |
| Vérifié (tranche 4, backtests QC Cloud MCP) | 5 | cohorte MeanReversion/Macro/Multi-asset/Crypto — **0 edge significatif** (PSR < 50 %), 4 Needs-improvement, 1 BROKEN ; Multi-Layer-EMA revendication README confirmée |
| Vérifié (tranche 5, backtests QC Cloud MCP) | 5 | cohorte Trend/Macro-Régime/Options/Causal/Factor — **0 edge significatif** (PSR < 50 %), 3 Needs-improvement, 1 near-cash, 1 near-BROKEN |
| Vérifié (tranche 6, backtests QC Cloud MCP) | 5 | cohorte Régime/Factor/Vol/Leveraged-Factor — **1 edge candidat** (LeveragedETFMomentum PSR 79.8 %, ETF leveraged → flag OOS), 4 Needs-improvement |
| Vérifié (tranche 7, backtests QC Cloud MCP) | 5 | cohorte **ML supervisé / DL / SVM-wavelet** (5 stratégies best-guess ML du bucket Vivant promues) — **0 edge significative** (PSR max = 29.3 % Sector-ML-Classification ; 2/5 PSR < 10 % ; aucune > 50 %), 5 Needs-improvement — confirme que le ML in-sample sans walk-forward multi-seed ne surfit pas la cohorte |
| Vérifié (tranche 8, backtests QC Cloud MCP) | 5 | cohorte **Trend + Régime + Vol risk** (5 stratégies best-guess du bucket Vivant promues) — **0 edge significative** (PSR < 50 % partout), 4 Needs-improvement, 1 BROKEN (VIX-TermStructure Sharpe négatif −0.125, PSR 0.18 %) ; max PSR 24.99 % TrendStocksLite |
| Vérifié (tranche 9, backtests QC Cloud MCP) | 5 | cohorte Composite+Options+Vol/Momentum — **0 edge** (PSR < 50 % partout) ; PSR max 19.78 % (Framework_Composite_EMATrend) |
| Vérifié (tranche 10, backtests QC Cloud MCP) | 5 | cohorte DeepLearning+LSTM+Temporal-CNN — **1 BROKEN** (Crypto-LSTM-Prediction Sharpe -0.021) ; PSR max 28.70 % (Temporal-CNN-Prediction) |
| Vérifié (tranche 11, backtests QC Cloud MCP) | 4 | cohorte Crypto BTC + IBKR-Binance-Hybrid — **0 edge significatif** (PSR < 50 %), 4 Needs-improvement (1 MaxDD catastrophique 72.7 %) ; cohorte limitée à 4 stratégies vérifiables firsthand (les 5ᵉ `Crypto-LSTM-Prediction` overlap tranche 10) |
| Vérifié (tranche 12, backtests QC Cloud MCP) | 3 | cohorte ML NLP + Reinforcement Learning — 3 promotions Vivant (ML-FinBERT-Sentiment, ML-LLM-Summarization, RL-DQN-Trading) + 2 vérifications hors-Vivant (`RL-Options-Hedging` Stub BROKEN Sharpe -1.264 ; `Reinforcement-Learning-Trading` Squelette Needs-improvement PSR 2.19 %) — **1 BROKEN + 2 Needs-improvement**, PSR max 37.14 % (ML-LLM-Summarization, aucune > 50 %) |
| Vérifié (tranche 13, backtests QC Cloud MCP) | 4 | cohorte ML Classification / Clustering / Hybrid — **0 edge significative** (PSR max 22.74 %), 4 Needs-improvement |
| Vérifié (tranche 14, backtests QC Cloud MCP) | 2 | cohorte **DL Chronos foundation** (2 stratégies Chronos du bucket Vivant promues) — **0 edge significative** (PSR max 13.79 % `ML-Chronos-Foundation`, aucune > 50 %), 2 Needs-improvement ; **le régime SMA200 (`Chronos-Foundation-Forecasting`) a le PSR le plus bas (3.12 %), pas le plus haut** — le filtre SMA200 dégrade la signification statistique vs le variant plain |
| Vérifié (tranche 15, backtests QC Cloud MCP) | 4 | cohorte **Stratégies quantitatives structurelles** (4 stratégies best-guess du bucket Vivant promues : `Options-VGT` income covered-call tech single-names, `TermStructureCommodities-QC` courbe terme commodités, `PCA-StatArbitrage` stat-arb factoriel PCA, `Trend-Following` AQR-style 12-momentum multi-actifs) — **1 BROKEN** + **3 Needs-improvement** : PSR max 17.51 % `Options-VGT` (aucune > 50 %) ; `TermStructureCommodities-QC` Sharpe -0.244 / MaxDD 96.8 % / PSR 0.007 % = quasi-ruine systématique sur backtest 2018–2025 |
| Vérifié (tranche 16, backtests QC Cloud MCP) | 4 | cohorte **EMA-Cross + Composite Framework + Value Dogs** (4 stratégies best-guess du bucket Vivant promues) — **2 edge statistiquement significative** (PSR > 50 % : `Framework_Composite_TrendWeather` 77.94 %, `Framework_Composite_MomentumRegime` 73.52 %), 2 Needs-improvement (PSR < 50 % : `EMA-Cross-Stocks` 49.75 % near-edge, `PuppiesOfTheDow-QC` 3.49 %) ; **première tranche QC #1621 avec edge statistique significative depuis tr.3** (`BlackLitterman` PSR 51 %) — les composites Framework confirment l'avantage du blending méthodologique multi-stratégies |
| Vérifié (tranche 17, backtests QC Cloud MCP) | 4 | cohorte **HandsOn / EMA / ML risque** (4 stratégies best-guess du bucket Vivant promues : `Positive-Negative-Splits-ML` HandsOn Ex07 stock-splits event-driven, `Stoploss-Volatility-ML` HandsOn Ex08 ML risk-management, `ML-SVM` SVM supervisé equity-only, `EMA-Cross-Alpha` Trend EMA classic) — **1 Edge** (`Positive-Negative-Splits-ML` Sharpe 1.511 / PSR 82.33 %, **2ᵉ PSR > 50 % cohorte depuis tr.3 BlackLitterman PSR 51 %**, après tr.16 `Framework_Composite_TrendWeather` PSR 77.94 %) + 3 Needs-improvement (PSR < 2 % partout) ; **2ᵉ tranche QC #1621 consécutive avec edge statistique significative** = lane pionnière consolidée ; event-driven fundamental + ML stoploss > trend pur sur Sharpe par unité de risque ET signification statistique |
| Vérifié (tranche 18, backtests QC Cloud MCP) | 4 | cohorte **Risk-controlled + Régime HMM/Ridge + Robustness** (4 stratégies freshly-discovered non-listées bucket Vivant du compte : `AdaptiveConformalRisk` risk control conformal, `S3-HMM-Regime-Daily-V2` HMM V2, `S4-RegimeRidge-V2-Fixed` régime ridge après fix Runtime Error, `1630-robustness-c2-regime` robustness multi-période R1-R4 walk-forward) — **0 edge significative** (max PSR 12.5 % `AdaptiveConformalRisk`), 4 Needs-improvement ; les 4 stratégies sont fraîchement découvertes (R3 confirmed 0 match dans `docs/qc/qc-strategies-status.md` AVANT tr.18), pas issues du bucket Vivant local — extension du périmètre de vérification au-delà du bucket Vivant pour densifier le rollout #1621 ; `S4-RegimeRidge-V2-Keeper` (Runtime Error) remplacé par `S4-RegimeRidge-V2-Fixed` (le fix post-Runtime-Error sur le même projet) |
| Vérifié (tranche 19, backtests QC Cloud MCP) | 5 | cohorte **QCP13/NB14/ESGF Composite baselines hors-bucket Vivant** (5 stratégies freshly-discovered via scan `list_projects name_contains:` — L709-L3 ★ extension hors-bucket) — **2 BROKEN** (QCP13 baselines `Cell6_BasicFramework` Sharpe -0.213 / `Cell38_CompositeAlpha` Sharpe -0.394, NP < 0 sur 9 ans), **1 near-edge** (`ESGF-Framework-Composite` PSR 32.52 % record hors-Framework TrendWeather/MomentumRegime), **2 Needs-improvement** (`NB14-Cell75-CompositeRisk` PSR 27.94 % + `ESGF-Kit-Framework-Composite` PSR 8.25 % mais MaxDD 14 % record) — **0 edge significative** (PSR max 32.52 % vs 50 % cap) ; confirme leçon L709-L1 ★★★ trans-tranche : **blending composite Framework** (tr.16 TrendWeather/MomentumRegime) > **baselines QCP13/NB14/ESGF composites pédagogiques** sans moteur validé ; **bonus L709-L2 ★★** : pattern Runtime Error → Fixed confirmé sur `ESGF-Kit-Framework-Composite` (9 backtests v1-v8, itération fixée v8-ML-RF-alpha-80-20) |
| Vérifié (tranche 20, backtests QC Cloud MCP) | 5 | cohorte **Spread Options + DL LSTM + Momentum dual freshly-discovered** (5 stratégies hors-bucket Vivant, scan `list_projects name_contains:` patterns `Spread`/`Alpha`/`Factor`/`MeanReversion`/`LSTM`/`Momentum`/`Carry`/`Breakout`) — **3 BROKEN** (`QCP6_Cell23_BullCallSpread` Sharpe -3.20 / `QCP6_Cell35_BullCallSpread` Sharpe -3.20 / `QCP13_Cell38_CompositeAlpha_3367` Sharpe -0.394 MaxDD 62 %) + **2 Needs-improvement** (`dbg-DualMomentum-6192` Sharpe 0.35 CAGR 8.41 % MaxDD 14.9 % projet ultra-récent 2026-07-11 / `1630-lstm-forecasting-post2801` Sharpe 0.525 CAGR 11.29 % MaxDD 32.5 % PSR 13.42 %) — **0 edge significative** (PSR max 13.42 %) ; **confirme L710-L1 ★★★** (2ᵉ BROKEN QCP13 cette fois sur `Cell38_CompositeAlpha` vs `Cell6_BasicFramework` en tr.19 : QCP13 baselines Hands-On systématiquement structurellement négatives sur 9 ans) ; **bonus L711-L1 ★** : **2 BullCallSpread (QCP6_Cell23/Cell35) backtests strictement identiques** (mêmes Sharpe/CAGR/MaxDD/NP, 4 ordres, 124 jours, $37 NP) — probable bug de projet QC Cloud ou clonage accidentel de projet ; à documenter comme signal de qualité de données QC Cloud ; **bonus L711-L2 ★** : `dbg-DualMomentum-6192` créé **2026-07-11** = stratégie freshly-discovered la plus récente du corpus QC #1621 (1 jour après c.711) |
| Vérifié (tranche 21, backtests QC Cloud MCP) | 5 | cohorte **ESGF-Kit ML éprouvée + 1630 robustesse post-#2801 + TrendFollowing clone** (5 stratégies hors-bucket Vivant, scan `list_projects name_contains:` patterns `dbg-`/`Algo`/`Pairs`/`Calendar`/`Leveraged`/`Sector`/`Regime`/`Wing`) — **0 BROKEN + 5 Needs-improvement** (`ESGF-Kit-XGBoost-Sectors` v11 Sharpe 0.543 CAGR 10.68 % MaxDD 27.6 % PSR 15.09 % max cohorte / `ESGF-Kit-RandomForest-Sectors` v10 Sharpe 0.278 MaxDD catastrophique 51.6 % / `1630-markov-regime-post2801` Sharpe 0.375 MaxDD 24.4 % / `1630-regime-switching-post2801` Sharpe **0.581 max cohorte** CAGR 12.29 % MaxDD 33 % PSR 7.04 % / `baseline-clone-TrendFollowing-repo-1630` clone post-#1630 Sharpe 0.36 **MaxDD 15.00 % record cohorte**) — **0 edge significative** (PSR max 15.09 % vs cap 50 %) ; **nuance L710-L1 ★★★** : **ESGF-Kit avec méthodologie ML validée (XGBoost/RandomForest sur Sectors) NE sont PAS structurellement BROKEN** comme les baselines QCP13 Hands-On (L710-L1 ★★★ reste vraie pour `QCxx-Cell*` mais **NE s'applique PAS aux ESGF-Kit**) ; les 5 stratégies c.712 = NI purs, edge statistical fragile mais cohérente avec méthodologie ML éprouvée ; **bonus L712-L1 ★ NEW** : `baseline-clone-TrendFollowing-repo-1630` projet 33078355 = clone récent (juillet 2026) issu du repo Trend-Following référence #1630 (QC Strategy Library), drawdown record 15 % confirme la qualité de la méthodologie trend-following AQR-style sous-jacente |
| Vérifié (tranche 22, backtests QC Cloud MCP) | 5 | cohorte **1630-ML-*-post2801 robustesse #2801 + Framework DualMomentumNoTLT + RiskParity aligned** (5 stratégies hors-bucket Vivant, scan `list_projects name_contains:` patterns `1630-`/`ETF`/`LongShort`/`Volatility`/`Adaptive`/`Risk`/`Index`/`Tail`/`Dynamic`/`Rotation`) — **0 BROKEN + 5 Needs-improvement** (`1630-ML-XGBoost-post2801` Sharpe 0.555 CAGR 14.51 % MaxDD 40.4 % PSR 10.66 % / `1630-ML-RandomForest-post2801` Sharpe **0.700 max cohorte** CAGR 20.59 % MaxDD 40.9 % **PSR 18.40 % max cohorte c.713** NP $753k / `1630-ML-FeatureEngineering-post2801` Sharpe 0.654 CAGR 18.74 % **MaxDD 28.10 % record cohorte c.713** PSR 15.14 % / `Framework-DualMomentumNoTLT` Sharpe 0.634 CAGR 16.91 % MaxDD 34.5 % PSR 14.27 % / `1630-RiskParity-aligned` Sharpe 0.361 CAGR 8.30 % **MaxDD 18.40 %** PSR 1.85 %) — **0 edge significative** (PSR max 18.40 % vs cap 50 %) ; **confirme L712-L2 ★** sur 3 stratégies 1630-ML-*-post2801 (RF/XGBoost/FeatureEng. = Sharpe honnête 0.55-0.70, PSR 10-18 %, **2ᵉ cohorte post2801 cohérente** après Markov/regime-switching c.712) ; **L713-L1 ★ NEW** : **1630-ML-RandomForest-post2801 NI prometteur** (PSR 18.40 % record cohorte c.713, > ESGF-XGBoost c.712 15.09 %) confirme robustesse méthodologique RF sur 1630 universe post-#2801 ; **L713-L2 ★ NEW** : **1630-ML-FeatureEngineering-post2801 MaxDD 28.10 % record** = feature engineering discipline = facteur discriminant du downside risk (vs XGBoost 40.4 % / RF 40.9 % sur même univers 1630) ; **L713-L3 ★ NEW** : **1630-RiskParity-aligned MaxDD 18.40 % mais PSR 1.85 %** confirme trend-following cross-sectionnel AQR-style (cf L712-L3 ★) — drawdown bas par construction mais edge statistical fragile sans levier |
| Vérifié (tranche 23, backtests QC Cloud MCP) | 5 | cohorte **Crypto EMA + Causal Event + Macro Factor Rotation + Equity Aroon clones freshly-discovered post-pivot R3 triple** (5 stratégies hors-bucket Vivant, scan `list_projects name_contains:` patterns `MeanReversion`/`Carry`/`Breakout`/`Pairs`/`StatArb`/`Sector`/`Momentum`/`VolTarget`/`Quality`/`Alpha`/`Macro`/`TermStructure`/`Spread`/`Forex`/`Crypto`/`Equity`) — **1 BROKEN empty + 4 Needs-improvement** (`Multi-Layer-EMA-Crypto` 30395392 ≠ 28433748 projet tr.4 **BROKEN empty** Sharpe/CAGR/NP tous 0 (projet dépublié/données perdues) / `CausalEventAlpha` post-#2801 IBKR margin Sharpe 0.447 **CONFIRMATION downgradé** historique 0.78→0.45 (#3067 MERGED) puis 0.447 freshly-discovered post-#2801 PSR 5.51 % MaxDD 38.8 % / `MacroFactorRotation-QC` post-#2801 Sharpe 0.731 CAGR 22.63 % MaxDD 42.0 % **PSR 23.81 % max cohorte c.714** NP $720,114 / `Equity Aroon Trend` clone 31932810 Sharpe 0.227 CAGR 6.41 % MaxDD 36.5 % PSR 0.81 % / `Equity Aroon Trend 1` clone 31996999 Sharpe 0.225 CAGR 6.35 % MaxDD 37.7 % PSR 0.79 %) — **0 edge significative** (PSR max 23.81 % vs cap 50 %) ; **L714-L1 ★ NEW** : stratégie `Multi-Layer-EMA-Crypto` (projetId 30395392) ≠ `Multi-Layer-EMA` (projetId 28433748 couvert tr.4) — **VÉRIFIER le projetId par `read_project name`, JAMAIS seulement par similarité de nom** (clone vs original, homonymie QC Cloud piège à collision R3) ; **L714-L2 ★ NEW** : `CausalEventAlpha` Sharpe 0.447 freshly-discovered post-#2801 **confirme downgradé historique #3067** (0.78→0.45) — robustesse méthodologique #2801 = post-leak fix effectif sur cohorte ex-edge ; **L714-L3 ★ NEW** : `MacroFactorRotation-QC` PSR 23.81 % = NI élevé (Sharpe 0.731 CAGR 22.63 % MaxDD 42.0 %) — **macro/factor = profils drawdown structurellement élevés** sans sizing/levier calibration (cohérent L712-L3 ★ + L713-L3 ★) ; **L714-L4 ★ NEW** : **Pivot R3 triple succès c.714** = 3 itérations scan/collision nécessaires pour finaliser 5 stratégies (15 candidats initiaux → 5 après 3 vagues collision-check) — **QC Cloud pool s'épuise** post-22 tranches (227 projets, ~80 % catalogués #1621 + historique) ; tr.24+ = **ROI marginal décroissant** = cadence réduite (1 tranche / 2 cycles) ou pivot méthodologique (audit cross-tranches, consolidation leçons, agent propre) |
| Vérifié (tranche 25, statut réel ML-* — création cloud + backtests frais baseline #1630) (4) | 4 | cohorte **ML classique jamais-vérifiée** (`ML-Classification`, `ML-Regression`, `ML-Ensemble`, `ML-DeepLearning` — 4 locaux du bucket Vivant **inexistants sur QC Cloud**, tranches 7/17 n'avaient couvert que FeatureEng./Reversion-Trending/SVM/Trend-Scanning/FX-Wavelet) : projets cloud créés + code aligné #1630 (2018-2025) poussé + compile 4/4 BuildSuccess + backtest frais chacun — **1 BROKEN code** (`ML-Classification` Runtime Error `joblib.loads` inexistant au premier Initialize, 0 ordre : le loader ObjectStore est cassé depuis l'origine) + **1 BROKEN marché** (`ML-Regression` Sharpe **−0.125** PSR 0.017 %, 9754 ordres) + **1 Needs-improvement** (`ML-Ensemble` Sharpe **0.724** — max ML classique vérifié — CAGR 18.8 % MaxDD 39.4 % PSR 14.4 %, 6659 ordres) + **1 BROKEN marché** (`ML-DeepLearning` Sharpe **−0.028** PSR 0.050 %, CAGR 3.2 %, 707 ordres : LSTM 1×32 multi-ETF ne bat pas le cash) ; **0 edge significative** (PSR max 14.4 %) ; **correction concomitante tranche 7** : les étiquettes « 2018–2025 » des 4 lignes ML de la tr.7 étaient erronées — le code historique portait `2015→2024` (jamais balayé par l'alignement #1630), corrigées en « 2015–2024 » ; **leçon L716-L1 ★** : le sweep #1630 de juin a raté les 6 ML-* locaux (globs `1630-`/Cloud uniquement) — une baseline « cross-stratégie » déclarée doit être vérifiée par grep sur `SetStartDate` par famille, pas supposée |
| Vérifié (tranche 26, backtests QC Cloud MCP) | 2 | achèvement du sweep ML-* (tr.25) : les 2 derniers ML locaux jamais backtestés sur QC Cloud (`ML-FeatureEngineering` RF+GB 18 features, `ML-Reversion-Trending` GB regime classification) — cloud créé + aligné #1630 (portaient encore 2015→2024, L716-L1 ★) + compiles 2/2 + backtests frais (1761 j.) ; correction des étiquettes de période tr.7 de ces 2 lignes (« 2018–2025 2830 j. » → 2015–2024 réel, suite tr.25 qui les avait déjà corrigées) ; **aucun changement de compte Vivant** (FE/RT déjà promus tr.7 — la tr.26 re-backteste sur baseline alignée) ; verdicts détaillés section tranche 26 |
| Vivant (best-guess, non vérifié) | 7 | algo `QCAlgorithm` complet, aucun signal négatif — TODO backtest pour confirmer (2 reclassés Archivé firsthand c.570) ; tranche 7 a promu 5 stratégies ML, tranche 8 a promu 5 stratégies Trend/Régime/Vol, tranche 14 a promu 2 stratégies Chronos DL, tranche 15 a promu 4 stratégies quantitatives structurelles, tranche 16 a promu 4 stratégies EMA + Composite Framework + Value, tranche 17 a promu 4 stratégies HandsOn/EMA/ML, tranche 18 a promu 4 stratégies freshly-discovered (risk + régime + robustness) hors-bucket Vivant, tranche 19 a promu 5 baselines Composite pédagogiques hors-bucket, tranche 25 a promu 4 stratégies ML classiques : voir sections ci-dessous. **Note comptable (sémantique du double-listing)** : la section détaillée contient **12 true-Vivant + 79 promues tr7-25** (cross-référencées dans leur bucket d'origine ET ici pour la discoverability, voir status `Vérifié tranche N`) — le compte `7` ci-contre = Vivant non-encore-vérifiées après déduction des promues des tranches précédentes, distinct du compte physique (intentionnel, pas une erreur). |
| Vivant (README revendique vérifié) | 0 | README revendique un backtest QC Cloud — à recroiser firsthand (Multi-Layer-EMA vérifié tranche 4) |
| Recherche uniquement (pas d'algo déployable) | 5 | notebook de recherche sans `main.py` déployable |
| Stub (code non créé) | 2 | README : exercice planifié, fichiers de code non créés |
| Squelette/template (pas de stratégie active) | 2 | README : template/skeleton, pas de stratégie active |
| Contre-exemple pédagogique (BROKEN) | 2 | README : intentionnellement BROKEN (pédagogie) |
| Archivé / superseded | 3 | README/en-tête : archived / plafond structurel documenté (MomentumStrategy, SectorMomentum reclassés firsthand c.570) |
| Research phase | 1 | README : research phase (WIP) |
| Démonstration pédagogique | 1 | README : educational demo |
| Utilitaire / docs (pas une stratégie) | 2 | pas une stratégie (harness ou docs) |
| **Total** | **112** | 112 entrées = 101 stratégies à vocation trading (classe `QCAlgorithm`, `main.py`/`Main.cs`) + 2 squelettes (classe présente, pas de stratégie active) + 1 harness utilitaire (sous-classe `QCAlgorithm`) + 5 recherche-only (notebook, pas d'algo) + 2 stubs (code non créé) + 1 dossier docs |

#### Vérifié (tranche 1, firsthand) (13)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `AllWeather` | `projects/AllWeather/` | Multi-asset risk-parity | Vérifié | tableau « Stratégies vérifiées » ci-dessus (figure #5743) |
| `BitcoinRegimeGate-QC` | `projects/BitcoinRegimeGate-QC/` | Régime BTC (gate) | Vérifié | tableau vérifié ci-dessus (IS/OOS + benchmark QQQ apparié) |
| `Cloud-RiskParity-Composite` | `projects/Cloud-RiskParity-Composite/` | Inverse-vol risk-parity | Vérifié | run frais 2026-08-14 baseline #1630 (voir tranche « statut réel Cloud-* » ci-dessous : Sharpe 0.027, Needs-improvement confirmé) |
| `DualMomentum` | `projects/DualMomentum/` | Momentum dual-asset | Vérifié | tableau vérifié ci-dessus (Superseded) |
| `DualMomentumNoTLT` | `projects/DualMomentumNoTLT/` | Momentum (sans TLT) | Vérifié | tableau vérifié ci-dessus (Alive) |
| `DynamicVIXSpyRegime-QC` | `projects/DynamicVIXSpyRegime-QC/` | Régime VIX | Vérifié | tableau vérifié ci-dessus (69.4 %) |
| `EMA-Cross-Crypto` | `projects/EMA-Cross-Crypto/` | Trend EMA | Vérifié | tableau vérifié ci-dessus (figure #5750) |
| `EMA-Cross-Index` | `projects/EMA-Cross-Index/` | Trend EMA | Vérifié | tableau vérifié ci-dessus (figure #5746) |
| `ForexCarry` | `projects/ForexCarry/` | FX carry/momentum | Vérifié | tableau vérifié ci-dessus (figure #5748) |
| `Framework_Composite_FamaFrenchAllWeather` | `projects/Framework_Composite_FamaFrenchAllWeather/` | Composite | Vérifié | tableau vérifié ci-dessus (87.5 % OOS) |
| `LongShortHarvest-QC` | `projects/LongShortHarvest-QC/` | Composite pairs | Vérifié | tableau vérifié ci-dessus (BEATS, 98.7 %) |
| `ML-RandomForest` | `projects/ML-RandomForest/` | ML supervisé (RF) | Vérifié | tableau vérifié ci-dessus (figure #5747) |
| `ML-XGBoost` | `projects/ML-XGBoost/` | ML supervisé (XGBoost) | Vérifié | tableau vérifié ci-dessus (figure #5749) |
| `RiskParity` | `projects/RiskParity/` | Inverse-vol risk-parity | Vérifié | tableau vérifié ci-dessus (Needs-improvement, 0.399) |

#### Vérifié (tranche 2, backtests QC Cloud via MCP) (5)

> **Scope tranche 2 (#1621)** : 5 stratégies « Vivant » promues au statut vérifié via backtests
> QC Cloud réels (MCP `qc-mcp`, backtests existants relus firsthand). Métriques **non walk-forward
> OOS** (backtest pleine période in-sample) — suffisantes pour classer Alive / Needs-improvement /
> BROKEN, insuffisantes pour un verdict de production. **Toutes 5 = Needs-improvement** : PSR < 50 %
> sur toute la cohorte (aucune edge statistiquement significative) — confirmation honnête que le
> bucket « Vivant best-guess » recèle majoritairement des stratégies marginales une fois backtestées.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `Adaptive-Conformal-Risk` | `projects/Adaptive-Conformal-Risk/` | Vol / Risk adaptatif | **Needs-improvement** | 2018–2025 (2766 j.) ; Sharpe 0.604 ; CAGR 13.70 % ; MaxDD 33.1 % ; PSR 17.8 % ; NP 310.8 % ($288 311) — meilleur CAGR mais drawdown élevé |
| `Vol-GARCH-Target` | `projects/Vol-GARCH-Target/` | Vol (GARCH) | **Needs-improvement** | 2018–2025 (1761 j.) ; Sharpe 0.325 ; CAGR 6.97 % ; MaxDD 10.8 % ; PSR 14.9 % ; NP 60.3 % ($56 709) — modeste, plafond structurel |
| `Vol-Ensemble-Conservative` | `projects/Vol-Ensemble-Conservative/` | Vol ensemble | **Needs-improvement** | 2018–2025 (1761 j.) ; Sharpe 0.265 ; CAGR 6.14 % ; MaxDD 10.4 % ; PSR 13.6 % ; NP 51.8 % ($50 438) — modeste, plafond structurel |
| `HAR-RV-Kelly` | `projects/HAR-RV-Kelly/` | Volatility / Kelly | **Needs-improvement** | pleine période (2516 j.) ; Sharpe 0.146 ; CAGR 4.23 % ; MaxDD 12.8 % ; PSR 3.0 % ; NP 51.3 % ($50 666) — quasi-baseline, edge nul |
| `InverseVolatility-Rank` | `projects/InverseVolatility-Rank/` | Risk-parity inversé | **Needs-improvement / near-BROKEN** | code Cloud 29463533, fenêtre Cloud 2018-12-31 → 2024-04-01 (1629 j., sans brokerage) : Sharpe 0.124 ; CAGR 4.13 % ; **MaxDD 41.0 %** ; PSR 1.9 % — drawdown inacceptable, edge nul. **Version dépôt (#19018)** : 2015-01-01 → 2024-04-01 (2865 j., IBKR MARGIN, projet Cloud 37313767) : Sharpe 0.529 ; CAGR 14.86 % ; MaxDD 40.5 % ; PSR 3.34 % |

#### Vérifié (tranche 3, backtests QC Cloud via MCP) (5)

> **Scope tranche 3 (#1621)** : 5 stratégies « Vivant » promues via backtests QC Cloud réels
> (MCP `qc-mcp`, backtests « aligned 2018–2025 » relus firsthand). Cohorte **Momentum / Factor /
> Composite** (différente de la cohorte Vol-* de la tranche 2, pour variété intra-famille). Métriques
> pleine période in-sample (non walk-forward OOS). **Image plus nuancée que la tranche 2** : un seul
> candidat présente une edge statistiquement significative (PSR > 50 %), 2 sont marginales, 2 sont
> BROKEN / sous-performantes — le bucket « Vivant » n'est donc pas uniformément faible.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `BlackLitterman-Momentum` | `projects/BlackLitterman-Momentum/` | Factor / Momentum | **Alive (edge candidat)** | 2018–2025 (2766 j.) ; **Sharpe 0.83** ; CAGR 15.83 % ; MaxDD 16.9 % ; **PSR 51.4 %** ; NP 404.0 % ($405 328) — **seule stratégie de la cohorte avec PSR > 50 %** (edge statistiquement significative) ; à confirmer en walk-forward OOS |
| `composite-c2-equityfactor` | `projects/composite-c2-equityfactor/` | Composite equity/factor | **Needs-improvement** | 2018–2025 (1761 j.) ; Sharpe 0.574 ; CAGR 11.94 % ; MaxDD 18.6 % ; PSR 25.8 % ; NP 120.4 % ($105 319) — décent mais edge non significative |
| `AssetClassMomentum-QC` | `projects/AssetClassMomentum-QC/` | Cross-asset momentum | **Needs-improvement (v2.0, amélioré)** | **v2.0 consolidation article QC research #21050** (issue #14091, hedge court -30 % gated par corrélation 20 j vs 250 j, univers 13 ETFs, momentum 3/6/9/12 m, top-4) : Dev 2016–2021 (1511 j.) ; **Sharpe 0.712** ; CAGR 13.60 % ; MaxDD 21.8 % ; PSR 16.96 % ; NP 115.0 % ($82 103) · OOS 2022–2026 (1127 j.) ; Sharpe 0.035 ; CAGR 6.21 % ; MaxDD 19.8 % ; **PSR 0.65 % (edge non confirmé OOS)** · Full 2016–2026 (2638 j.) ; **Sharpe 0.423** ; CAGR 10.54 % ; **MaxDD 21.8 %** ; PSR 0.98 % ; NP 186.4 % ($181 895) — vs v1 (2018–2025 : Sharpe 0.22 / MaxDD 28.1 % / PSR 3.8 %) : risque amélioré (MaxDD −6.3 pt), Sharpe pleine période ×2, **mais PSR < 50 % partout** ; cohérent avec l'article (Sharpe 0.498 vs SPY 0.407, 2007–2026), source primaire Pauchlyová & Vojtko 2025 SSRN 5095447 |
| `MomentumRegime-AdaptiveWeights` | `projects/MomentumRegime-AdaptiveWeights/` | Momentum / Régime | **Needs-improvement / near-cash** | 2018–2025 (1761 j.) ; **Sharpe −0.729** ; CAGR 1.88 % ; MaxDD 4.3 % ; PSR 17.4 % ; NP 13.9 % — Sharpe négatif (sous le sans-risque), quasi-flat |
| `Cloud-SectorRotation-Momentum` | `projects/Cloud-SectorRotation-Momentum/` | Rotation sectorielle | **BROKEN** | 2018–2025 (1761 j., run frais 2026-08-14 baseline #1630, 345 ordres, backtest `SectorRotation-Momentum-2018-2025-aligned-status-2026-08`, **reproduit exactement le run précédent**) ; **Sharpe −0.029** ; CAGR 2.12 % ; **MaxDD 42.7 %** ; PSR 0.050 % ; NP 15.8 % ($12 369) — flat + drawdown catastrophique, edge nul |

#### Vérifié (tranche 4, backtests QC Cloud via MCP) (5)

> **Scope tranche 4 (#1621)** : 5 stratégies promues via backtests QC Cloud réels (MCP `qc-mcp`,
> backtests existants relus firsthand). Cohorte **Mean-Reversion / Macro / Multi-asset / Crypto**
> (différente des tranches 2 Vol-* et 3 Momentum/Factor). Métriques pleine période in-sample (non
> walk-forward OOS). **0 edge statistiquement significative** (PSR < 50 % partout, contrairement à la
> tranche 3 qui comptait BlackLitterman PSR 51 %). Inclut la **vérification firsthand de la
> revendication README « Verified on QC Cloud » de Multi-Layer-EMA** (project 28433748 = bien l'ID
> cité par le README → revendication confirmée réelle, mais edge non significative + drawdown crypto
> catastrophique).

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `MacroFactorRotation-QC` | `projects/MacroFactorRotation-QC/` | Rotation actions/obligations | **Needs-improvement** | 3651 j. ; Sharpe 0.731 ; CAGR 22.63 % ; **MaxDD 42.0 %** ; PSR 23.8 % ; NP 669.2 % ($720 114) — CAGR élevé mais drawdown inacceptable, edge non significative |
| `Multi-Layer-EMA` | `projects/Multi-Layer-EMA/` | Crypto multi-indicateurs | **Needs-improvement** | 2557 j. ; Sharpe 0.798 ; CAGR 24.99 % ; **MaxDD 57.1 %** ; PSR 23.9 % ; NP 377.4 % (₮385 063) — **revendication README « Verified on QC Cloud » confirmée firsthand** (project 28433748) mais drawdown crypto 57 % = inacceptable |
| `AdaptiveAssetAllocation` | `projects/AdaptiveAssetAllocation/` | Multi-asset allocation | **Needs-improvement** | 2008–2024 (4639 j.) ; Sharpe 0.509 ; CAGR 8.01 % ; MaxDD 18.9 % ; PSR 10.6 % ; NP 314.4 % ($315 339) — long-terme décent mais edge non significative |
| `Cloud-MeanReversion-Sectors` | `projects/Cloud-MeanReversion-Sectors/` | Mean reversion secteurs | **Needs-improvement / near-cash** | 2018–2025 (1761 j., run frais 2026-08-14 baseline #1630, v1, 273 ordres, backtest `MeanReversion-v1-2018-2025-aligned-status-2026-08`) ; **Sharpe 0.067** ; CAGR 3.79 % ; **MaxDD 41.7 %** ; PSR 0.147 % ; NP 29.8 % ($35 082) — edge nul, sous-performant. **Correction 2026-08-14** : la ligne précédente citait 2768 j. / 0.278 / 14.7 % = le run **v3** du 2026-04-28 (`1bd5ee14…`) sur code cloud **stale 2014-2025** (pré-alignement #1630), variante non étiquetée — l'alignement 2018 retire les années fastes 2014-2017 et dégrade toutes les métriques (v1 passe de 0.176 → 0.067) |
| `MeanReversion` | `projects/MeanReversion/` | Mean reversion | **BROKEN** | 2845 j. ; **Sharpe −0.082** ; CAGR 3.00 % ; MaxDD 17.5 % ; PSR 1.3 % ; NP 39.7 % — Sharpe négatif, edge nul |

#### Vérifié (tranche 5, backtests QC Cloud via MCP) (5)

> **Scope tranche 5 (#1621)** : 5 stratégies promues via backtests QC Cloud réels (MCP `qc-mcp`,
> backtests existants relus firsthand). Cohorte **Trend / Macro-Régime / Options / Causal / Factor**
> (5 domaines distincts des tranches 2 Vol, 3 Momentum/Factor, 4 MeanReversion/Macro). Métriques
> pleine période in-sample (non walk-forward OOS). **0 edge statistiquement significative** (PSR <
> 50 % partout — comme les tranches 2 et 4 ; seule la tranche 3 BlackLitterman atteignait PSR 51 %).
> GlobalMacro-Regime PSR 16.7 % = la plus élevée de la cohorte mais reste sous le seuil de
> significativité. CausalEventAlpha : CAGR 11.7 % / NP 255 % élevés MAIS drawdown 38.8 % inacceptable.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `FuturesTrend` | `projects/FuturesTrend/` | Trend futures | **Needs-improvement / near-cash** | 2823 j. ; Sharpe 0.223 ; CAGR 5.69 % ; MaxDD 10.9 % ; PSR 4.3 % ; NP 86.2 % ($75 455) — drawdown modéré mais edge nul, quasi-cash |
| `GlobalMacro-Regime` | `projects/GlobalMacro-Regime/` | Macro / Régime | **Needs-improvement** | 1761 j. (2018–2025) ; Sharpe 0.454 ; CAGR 9.80 % ; MaxDD 22.8 % ; PSR 16.7 % ; NP 92.5 % ($77 374) — décent mais edge non significative |
| `Dynamic-Options-Wheel` | `projects/Dynamic-Options-Wheel/` | Options (wheel) | **Needs-improvement / near-BROKEN** | 1508 j. ; Sharpe 0.119 ; CAGR 5.59 % ; **MaxDD 31.4 %** ; PSR 3.8 % ; NP 38.7 % ($37 946) — retour faible + drawdown inacceptable |
| `CausalEventAlpha` | `projects/CausalEventAlpha/` | Causal alpha | **Needs-improvement** | 2878 j. ; Sharpe 0.447 ; CAGR 11.71 % ; **MaxDD 38.8 %** ; PSR 5.5 % ; NP 255.5 % ($225 496) — NP/CAGR élevés mais drawdown catastrophique, edge non significative |
| `FamaFrench` | `projects/FamaFrench/` | Factor rotation | **Needs-improvement** | 1761 j. (2018–2025) ; Sharpe 0.445 ; CAGR 11.11 % ; MaxDD 24.1 % ; PSR 11.9 % ; NP 109.2 % ($72 725) — décent mais edge non significative |

#### Vérifié (tranche 6, backtests QC Cloud via MCP) (5)

> **Scope tranche 6 (#1621)** : 5 stratégies promues via backtests QC Cloud réels (MCP `qc-mcp`,
> backtests existants relus firsthand). Cohorte **Régime / Factor / Vol / Leveraged-Factor** (5
> sous-familles distinctes des tranches 2 Vol, 3 Momentum/Factor, 4 MeanReversion/Macro,
> 5 Trend/Macro-Regime/Options/Causal/Factor). Métriques pleine période in-sample (non walk-forward
> OOS). **1 edge candidat** : `LeveragedETFMomentum-QC` **PSR 79.8 %** = 2ᵉ stratégie (toutes
> tranches 2-6) avec PSR > 50 % (1ʳᵉ = tranche 3 BlackLitterman 51.4 %). **MAIS** ETF leveraged
> (CAGR 126 %, drawdown 53.3 %) → l'edge est vraisemblablement **amplifiée par le levier**, pas du
> skill pur ; à confirmer en walk-forward OOS avant promotion. Les 4 autres : PSR < 10 % (0 edge).

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `HMM-KMeans-Voting` | `projects/HMM-KMeans-Voting/` | Régime (HMM) | **Needs-improvement** | 3522 j. ; Sharpe 0.488 ; CAGR 6.99 % ; MaxDD 23.8 % ; PSR 6.9 % ; NP 157.5 % ($144 661) — edge non significative |
| `Markov-Regime-Detection` | `projects/Markov-Regime-Detection/` | Régime (Markov) | **Needs-improvement** | 2766 j. ; Sharpe 0.375 ; CAGR 8.44 % ; MaxDD 24.4 % ; PSR 5.8 % ; NP 144.0 % ($98 214) — edge non significative |
| `HighBookToMarketFScore-QC` | `projects/HighBookToMarketFScore-QC/` | Factor (Piotroski) | **Needs-improvement** | période post-#2801 (tradeableDates=0, anomalie champ MCP ; ~2018–2025 aligned) ; Sharpe 0.411 ; CAGR 14.51 % ; **MaxDD 60.4 %** ; PSR 4.5 % ; NP 195.9 % ($17 992 007) — CAGR décent mais drawdown catastrophique |
| `Cloud-VolTargeting` | `projects/Cloud-VolTargeting/` | Vol targeting | **Needs-improvement / near-cash** | 1761 j. (2018–2025, run frais 2026-08-14 baseline #1630, v1, 54 ordres, backtest `VolTargeting-v1-2018-2025-aligned-status-2026-08`, **reproduit exactement le run précédent**) ; Sharpe 0.207 ; CAGR 6.72 % ; MaxDD 38.2 % ; PSR 0.557 % ; NP 57.7 % ($32 854) — quasi-cash + drawddown élevé |
| `LeveragedETFMomentum-QC` | `projects/LeveragedETFMomentum-QC/` | Leveraged ETF momentum | **Alive (edge candidat, levier) ★** | 2011 j. ; **Sharpe 1.779** ; CAGR 126.39 % ; **MaxDD 53.3 %** ; **PSR 79.8 %** ; NP 69 153 % ($59 508 108) — **2ᵉ PSR > 50 % toutes tranches (après BlackLitterman 51 %)**, MAIS ETF leveraged (levier amplifie gains ET drawdown) → edge à confirmer en walk-forward OOS, pas du skill pur |

#### Vérifié (tranche 7, backtests QC Cloud via MCP) (5)

> **Scope tranche 7 (#1621)** : 5 stratégies « Vivant » promues via backtests QC Cloud réels
> (MCP `qc-mcp`, backtests existants relus firsthand). Cohorte **ML supervisé / DL / SVM-wavelet**
> (5 sous-familles ML distinctes : trend scanning, features engineering, classification
> reversion/trending, sector classification, SVM/wavelet FX). Métriques pleine période in-sample
> (non walk-forward OOS). **0 edge statistiquement significative** (PSR < 50 % partout, 5/5) :
> MaxPSR = **29.3 %** (Sector-ML-Classification, projet ESGF 581ddcf4) ; 2 stratégies PSR < 10 %
> (ML-FX-SVM-Wavelet 0.39 % quasi-nul, ML-Trend-Scanning 7.84 %). **Confirme pour la famille ML**
> ce que la tranche 2 confirmait pour Vol-* : les backtests in-sample pleine période ne valident
> **aucun edge** sur la cohorte. Walk-forward multi-seed OOS requis avant toute promotion
> « production » — ce n'est pas un jugement négatif sur les approches ML (le in-sample overfit est
> attendu), c'est un signal honnête que **la preuve d'edge n'est pas dans ce référentiel**.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `ML-FeatureEngineering` | `projects/ML-FeatureEngineering/` | ML features (RF/GB Ensemble) | **Needs-improvement** | 2015–2024 (2830 j. ; **période corrigée tr.25** : le `main.py` historique portait `SetStartDate(2015,1,1)`/`set_end_date(2024,12,31)` — jamais aligné #1630, l'étiquette « 2018–2025 » initiale était erronée) ; **Sharpe 0.656** (max cohorte) ; CAGR 19.06 % (max cohorte) ; MaxDD 34.8 % ; PSR 14.79 % ; NP 614.5 % ($614 544) — meilleur Sharpe/CAGR de la cohorte ML, mais PSR 14.8 % = edge non significative, drawdown 34.8 % élevé. Run frais aligné #1630 : voir **tranche 26** |
| `ML-Reversion-Trending` | `projects/ML-Reversion-Trending/` | ML classification reversion/trending | **Needs-improvement** | 2015–2024 (2830 j. ; **période corrigée tr.25**, cf ci-dessus) ; Sharpe 0.571 ; CAGR 10.51 % ; MaxDD 19.6 % (min cohorte) ; PSR 25.06 % ; NP 208.4 % ($205 971) — 2ᵉ PSR le plus élevé mais edge non significative ; version v1 avait Runtime Error, v1-fixed resolu. Run frais aligné #1630 : voir **tranche 26** |
| `Sector-ML-Classification` | `projects/Sector-ML-Classification/` | ML sectoriel (classification multi-version v6.1–v6.5) | **Needs-improvement** | ESGF 2024–2026 (585 j., période courte) ; Sharpe 0.209 ; CAGR 10.47 % ; MaxDD 17.3 % (2ᵉ min cohorte) ; **PSR 29.34 % (max cohorte)** ; NP 26.1 % ($26 655) — meilleure PSR de la cohorte ML, edge non significative, période courte (585 j.) = OOS réduit |
| `ML-Trend-Scanning` | `projects/ML-Trend-Scanning/` | ML trend scanning | **Needs-improvement** | 2015–2024 (2878 j. ; **période corrigée tr.25**, cf ci-dessus) ; Sharpe 0.328 ; CAGR 7.085 % ; **MaxDD 29.4 %** ; PSR 7.84 % ; NP 119.0 % ($115 983) — PSR faible, edge nul ; catalog post-#2801 confirmait Sharpe 0.66 → 0.33 (cf PR #3083jsboige MERGED 2026-06-15) |
| `ML-FX-SVM-Wavelet` | `projects/ML-FX-SVM-Wavelet/` | ML FX (SVM/Wavelet) | **Needs-improvement / near-BROKEN** | 2015–2024 (2806 j. ; **période corrigée tr.25**, cf ci-dessus) ; Sharpe 0.153 (min cohorte) ; CAGR 4.29 % (min cohorte) ; MaxDD 21.2 % ; **PSR 0.39 % (min cohorte, quasi-nul)** ; NP 46.0 % ($455 947) — PSR < 1 %, edge statistiquement nul, retour faible |

#### Vérifié (tranche 8, backtests QC Cloud via MCP) (5)

> **Scope tranche 8 (#1621)** : 5 stratégies « Vivant » promues via lecture directe des backtests QC
> Cloud existants via MCP `qc-mcp-lite` (`read_backtest`). **Cohorte Trend + Régime + Vol risk**
> (distincte des tranches 2-7 : Vol-/risk, Momentum/Factor, MeanReversion/Macro,
> Trend/Macro-Régime/Options/Causal/Factor, Régime/Factor/Vol/Leveraged-Factor, ML). Métriques
> pleine période in-sample (non walk-forward OOS). **1 BROKEN** : `VIX-TermStructure` Sharpe négatif
> (−0.125) PSR 0.18 % = quasi-nul. **0 edge** sur les 4 autres (max PSR 24.99 % `TrendStocksLite`,
> sous le seuil 50 %).

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `TrendStocksLite` | `projects/TrendStocksLite/` | Trend actions (lite) | **Needs-improvement** | 2878 j. ; **Sharpe 0.707** (max cohorte) ; **CAGR 17.97 %** (max cohorte) ; MaxDD 33.7 % ; **PSR 24.99 %** (max cohorte) ; NP 564.0 % ($536 958) — best Sharpe/CAGR/PSR cohorte, edge non significative mais profil le plus prometteur |
| `HAR-RV-J-Kelly` | `projects/HAR-RV-J-Kelly/` | Volatility / Kelly | **Needs-improvement** | 2709 j. (2018–2025 aligned) ; Sharpe 0.531 ; CAGR 14.25 % ; MaxDD 35.5 % ; PSR 7.40 % ; NP 168.8 % (₮168 811) — re-exécution c.426 (#15542, brokerage BINANCE inclus, cap Kelly 0.30 explicite, 620 ordres) qui remplace la baseline 0.524/14.08/37.1/10.69 ; écart par métrique documenté dans le README du projet (« Note historique ») ; décent mais drawdown élevé, edge non significative |
| `RegimeSwitching` | `projects/RegimeSwitching/` | Régime | **Needs-improvement** | 4593 j. ; Sharpe 0.540 ; CAGR 11.47 % ; MaxDD 33.0 % ; PSR 4.80 % ; NP 627.9 % ($617 405) — long-terme, edge non significative |
| `TrendStocks-Alpha` | `projects/TrendStocks-Alpha/` | Trend actions | **Needs-improvement** | 2516 j. (post-#2801) ; Sharpe 0.512 ; CAGR 15.73 % ; **MaxDD 39.6 %** (max cohorte) ; PSR 5.58 % ; NP 331.5 % ($340 855) — drawdown élevé, edge non significative |
| `VIX-TermStructure` | `projects/VIX-TermStructure/` | Vol (VIX term) | **Needs-improvement** | v6.0 consolidation #13892 (dual-signal eVRP + terme, article QC 21143 / SSRN 5316487, Zarattini/Aziz/Mele 2025) : dev 2016-2021 **Sharpe 0.886** (PSR 26.5 %) ; **OOS 2022-2026 Sharpe −0.007** (PSR 0.5 %) ; full 2016-2026 **0.526** (PSR 2.0 % — sous le claim article 0.729) ; MaxDD 33-38.5 % — sortie de BROKEN, mécanisme documenté, edge non significative (claim article non répliqué sur notre harnais) ; v5.1 précédent : Sharpe −0.125, PSR 0.18 % |

#### Vérifié (tranche 9, backtests QC Cloud via MCP) (5)

> **Scope tranche 9 (#1621)** : 5 stratégies « Vivant » promues via lecture directe des backtests QC
> Cloud existants via MCP `qc-mcp-lite` (`read_backtest`). **Cohorte Composite + Options + Vol/Momentum**
> (distincte des tranches 2-6 : Vol-/risk, Momentum/Factor, MeanReversion/Macro,
> Trend/Macro-Régime/Options/Causal/Factor, Régime/Factor/Vol/Leveraged-Factor ; **et distincte des
> tranches 7-8 OPEN ML et Trend+Regime+Vol risk** qui seront ajoutées à leurs merges respectifs).
> Métriques pleine période in-sample (non walk-forward OOS). **0 edge statistiquement significative** :
> PSR < 50 % sur toute la cohorte (max 19.78 % `Framework_Composite_EMATrend`). Confirme pour la
> cohorte Composite+Options+Vol/Momentum ce que les tranches 2-8 confirment : les backtests in-sample
> pleine période **ne valident aucun edge** sur la cohorte.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `Framework_Composite_EMATrend` | `projects/Framework_Composite_EMATrend/` | Composite EMA-Trend | **Needs-improvement** | 1761 j. (2018–2025) ; **Sharpe 0.611** (max cohorte) ; **CAGR 16.67 %** (max cohorte) ; MaxDD 27.9 % ; **PSR 19.78 %** (max cohorte) ; NP 194.5 % ($196 423) — best Sharpe/CAGR/PSR cohorte, edge non significative |
| `Option-Wheel` | `projects/Option-Wheel/` | Options (wheel) | **Needs-improvement** | 2821 j. (2015–2026) ; Sharpe 0.529 ; CAGR 12.78 % ; MaxDD 26.4 % ; PSR 10.63 % ; NP 286.0 % ($2 167 801) — bon profil long-terme mais edge non significative |
| `VolTarget-Momentum` | `projects/VolTarget-Momentum/` | Vol / Momentum | **Needs-improvement** | 2516 j. (post-#2801) ; Sharpe 0.500 ; CAGR 11.12 % ; **MaxDD 21.2 %** (min cohorte) ; PSR 9.45 % ; NP 187.3 % ($153 977) — modeste, edge non significative |
| `composite-c1-multiasset` | `projects/composite-c1-multiasset/` | Composite multi-actifs | **Needs-improvement / near-cash** | 1761 j. (2018–2025) ; Sharpe 0.258 ; CAGR 6.49 % ; MaxDD 17.0 % ; PSR 8.69 % ; NP 55.3 % ($53 295) — modeste, edge nul |
| `OptionsIncome` | `projects/OptionsIncome/` | Options (covered call) | **Needs-improvement** | 4100 j. (2015–2026) ; Sharpe 0.213 ; CAGR 5.50 % ; MaxDD 17.5 % ; PSR 4.43 % ; NP 82.5 % ($-7 452) — **NP absolu négatif** (`netProfitAbsolute` = $-7 452) ; edge nul |

#### Vérifié (tranche 10, backtests QC Cloud via MCP) (5)

> **Scope tranche 10 (#1621)** : 5 stratégies promues via backtests QC Cloud réels (MCP `qc-mcp`,
> backtests existants relus firsthand). Cohorte **DeepLearning + LSTM + Temporal-CNN** (5 variantes
> DL distinctes des tranches 2-9 — focus sur réseaux récurrents / convolutifs temporels).
> Métriques pleine période in-sample (non walk-forward OOS). **0 edge statistiquement significative**
> (PSR < 50 % partout — PSR max 28.70 % `Temporal-CNN-Prediction`). **1 BROKEN** :
> `Crypto-LSTM-Prediction` Sharpe -0.021 (légèrement négatif, drawdown 27.4 %).
> Walk-forward multi-seed OOS requis avant toute promotion production. Identité de profil
> `DL-LSTM` ↔ `LSTM-Forecasting` (Sharpe 0.525 / MaxDD 32.5 % / PSR ~13.4 % quasi-identiques)
> = cohérent ; mais **divergence** `ML-Temporal-CNN` (Sharpe 0.161) vs `Temporal-CNN-Prediction`
> (Sharpe 0.734) → deux variantes divergentes (hand-rolled vs MLPClassifier sklearn).

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `DL-LSTM` | `projects/DL-LSTM/` | DL (LSTM PyTorch bi-dir 2×50) | **Needs-improvement** | 2766 j. ; Sharpe 0.525 ; CAGR 11.29 % ; MaxDD 32.5 % ; PSR 13.42 % ; NP 224.7 % ($227 577) — profil identique à `LSTM-Forecasting` ci-dessous |
| `LSTM-Forecasting` | `projects/LSTM-Forecasting/` | DL (MLPClassifier sklearn) | **Needs-improvement** | 2766 j. ; Sharpe 0.525 ; CAGR 11.30 % ; MaxDD 32.5 % ; PSR 13.44 % ; NP 224.9 % ($227 712) — quasi-identique à `DL-LSTM` (hand-rolled vs sklearn convergent) |
| `Crypto-LSTM-Prediction` | `projects/Crypto-LSTM-Prediction/` | DL (DLinear/LSTM crypto) | **BROKEN** | 2313 j. ; **Sharpe -0.021** ; CAGR 3.40 % ; MaxDD 27.4 % ; **PSR 1.21 %** ; NP 23.6 % ($25 198) — Sharpe négatif, PSR quasi-nul, edge absent |
| `ML-Temporal-CNN` | `projects/ML-Temporal-CNN/` | DL (Temporal CNN hand-rolled) | **Needs-improvement** | post-#2801 (tradeableDates=0) ; Sharpe 0.161 ; CAGR 4.81 % ; MaxDD 31.7 % ; PSR 2.68 % ; NP 26.5 % ($30 099) — Sharpe faible, edge absent |
| `Temporal-CNN-Prediction` | `projects/Temporal-CNN-Prediction/` | DL (Temporal CNN) | **Needs-improvement (max cohorte)** | post-#2801 (tradeableDates=0) ; **Sharpe 0.734** ; **CAGR 20.51 %** ; **MaxDD 21.6 %** (min cohorte) ; **PSR 28.70 %** ; NP 154.1 % ($169 062) — meilleur Sharpe/CAGR/MaxDD cohorte mais PSR < 50 % |

#### Vérifié (tranche 11, backtests QC Cloud via MCP) (4)

> **Scope tranche 11 (#1621)** : 4 stratégies promues via backtests QC Cloud réels (MCP `qc-mcp`,
> backtests existants relus firsthand). Cohorte **Crypto BTC + IBKR-Binance-Hybrid**
> (différente des tranches 2 Vol-/risk, 3 Momentum/Factor, 4 MeanReversion/Macro, 5 Trend/Macro,
> 6 Régime/Factor/Vol, 7 ML, 8 Trend+Regime+Vol, 9 Composite+Options, 10 DL+LSTM+Temporal-CNN).
> Métriques pleine période in-sample (sauf Portfolio-IBKR-Binance-Hybrid qui est walk-forward 2022-2024).
> **0 edge statistiquement significative** (PSR < 50 % partout). PSR max 33.50 %
> (`Multi-Layer-EMA-Crypto`, cloud-only ; pour le périmètre Vivant local = `BTC-ML-Researcher` PSR 25.59 %).
> Inclut un **MaxDD catastrophique** (`CSharp-BTC-MACD-ADX` MaxDD 72.7 %).

| Stratégie | Projet QC | Backtest ID | Nom backtest | Date | Sharpe | CAGR | MaxDD | PSR | Verdict |
|-----------|-----------|-------------|-------------|------|-------:|-----:|------:|----:|---------|
| `BTC-ML` | 29318876 | `df8e873a6b819d5aa082ff150ee8f595` | "po2026-verify-btc-ml-oos-2021-2026" | 2026-07-15 | **0.057** | 3.69 % | 15.4 % | 1.52 % | **Needs-improvement** (Sharpe near-zero, PSR ~1.5 %, profil quasi-passif) |
| `Crypto-MultiCanal` | 30750734 | `82fae2cde69e476ec3671b6603a300ac` | "1630-baseline-CryptoMultiCanal-post2801" | 2026-06-14 | **0.333** | 4.59 % | **14.1 %** | 12.95 % | **Needs-improvement** (Sharpe correct mais CAGR modeste, MaxDD min cohorte) |
| `CSharp-BTC-MACD-ADX` | 30751067 | `ff36dde9650487744ab72d9c119039fa` | "BTC-MACD-ADX Baseline" | 2026-04-27 | 0.225 | 3.63 % | **72.7 %** | 2.88 % | **Needs-improvement** (MaxDD catastrophique — MACD/ADX sur BTC = whipsaw en bear market) |
| `Portfolio-IBKR-Binance-Hybrid` | 31717642 | `173434a130bee666b26b33b6463bc694` | "Phase3-WF-2022-2024-5050" | 2026-07-16 | 0.391 | 14.11 % | 35.3 % | 9.05 % | **Needs-improvement** (WF walk-forward 50/50 multi-actifs, PSR < 50 %) |

**Verdict honnête : 0 edge sur la cohorte**. PSR max 33.50 % (hors-périmètre Vivant), max périmètre = 12.95 % (`Crypto-MultiCanal`). Confirme pour la cohorte Crypto BTC ce que les tranches 2-9 confirmaient : les backtests in-sample pleine période **ne valident aucun edge** sur la cohorte. Walk-forward multi-seed OOS requis avant toute promotion production.

### Observations pédagogiques

- **`BTC-ML`** : Sharpe 0.057 ≈ 0 sur 1886 jours OOS 2021-2026 (BTC post-halving cycles), profil quasi-passif. Confirme que la stratégie ML Crypto s'effondre en régime post-halving (probablement surapprentissage sur le bull run 2020-2021).
- **`CSharp-BTC-MACD-ADX`** MaxDD 72.7 % : MACD/ADX sur BTC = oscillateurs inadaptés à la volatilité crypto. Whipsaw violent en bear market 2018+2022. Drawdown > 70 % = inacceptable, peu importe le Sharpe positif résiduel.
- **`Portfolio-IBKR-Binance-Hybrid`** : seul backtest walk-forward WF 2022-2024 50/50 de la cohorte (= méthodologie OOS distincte du training), Sharpe 0.391 / CAGR 14.11 % décent mais PSR < 50 %. Distribution stable multi-actifs (IBKR equity + Binance crypto) vs concentration BTC mono-actif.
- **Note méthodologique** : `Crypto-LSTM-Prediction` (BTC LSTM/DLinear, projet 31855350) **est éligible à la cohorte BTC/Crypto** mais déjà promu en tranche 10 (#7249 OPEN, cohorte DL/LSTM/Temporal-CNN) — promotion redondante évitée pour préserver l'atomicité inter-tranches.

#### Vérifié (tranche 12, backtests QC Cloud via MCP) (3 + 2 hors-Vivant)

> **Scope tranche 12 (#1621)** : 3 stratégies « Vivant » promues + 2 vérifications hors-Vivant (1 Stub + 1 Squelette) via lecture directe des backtests QC Cloud existants via MCP `qc-mcp-lite` (`read_backtest`). Cohorte **ML NLP + Reinforcement Learning** (différente des tranches 7 ML standard et 10 DL/LSTM/Temporal-CNN, ciblant les paradigmes NLP FinBERT / LLM summarization et RL DQN renforcé + hedging options). **0 QCC dépensé** (lecture seule). **3 promotions Vivant nettes** : `ML-FinBERT-Sentiment` (Vivant) ; `ML-LLM-Summarization` (Vivant) ; `RL-DQN-Trading` (Vivant). 2 vérifications hors-Vivant : `RL-Options-Hedging` (Stub, code non créé → backtest POC déployé sur projet QC 30800109 par ailleurs) **BROKEN** ; `Reinforcement-Learning-Trading` (Squelette) **Needs-improvement / near-cash**.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `ML-LLM-Summarization` | `projects/ML-LLM-Summarization/` | ML NLP (LLM summarization) | **Needs-improvement** | 2558 j. ; **Sharpe 0.686** ; CAGR 15.45 % ; MaxDD 22.7 % ; **PSR 37.14 %** ; NP 173.6 % ($173 595) — **max Sharpe/PSR cohorte** ; MaxDD contenu ; edge non significative (PSR < 50 %) |
| `ML-FinBERT-Sentiment` | `projects/ML-FinBERT-Sentiment/` | ML NLP (FinBERT) | **Needs-improvement** | pleine période (tradeableDates=0, anomalie MCP) ; Sharpe 0.584 ; **CAGR 22.10 %** ; **MaxDD 43.0 %** ; PSR 12.18 % ; NP 304.9 % mais **NP absolu -$210 456** — CAGR le plus élevé cohorte mais drawdown élevé + **NP absolu négatif** = levier amplifie gains ET pertes |
| `RL-DQN-Trading` | `projects/RL-DQN-Trading/` | RL (DQN MLPRegressor) | **Needs-improvement** | 2766 j. (2015–2026) ; Sharpe 0.533 ; CAGR 10.89 % ; MaxDD 25.8 % ; PSR 15.60 % ; NP 211.8 % ($212 287) — v2.0.1 « MLPRegressor DQN, 5-ETF, risk-adj, target-fix, 2015-2026 », profil décent mais edge non significative |
| `Reinforcement-Learning-Trading` | `projects/Reinforcement-Learning-Trading/` | RL (DQN Squelette — *hors-Vivant*) | **Needs-improvement / near-cash** | 1509 j. ; Sharpe 0.131 ; CAGR 4.40 % ; MaxDD 27.1 % ; PSR 2.19 % ; NP 29.4 % ($29 321) — DQN basic Ch07 SPY-seul, Sharpe near-zero ; vérifié OK malgré statut Squelette local (le main.py déployé tourne, mais sans « stratégie active » pédagogique) |
| `RL-Options-Hedging` | `projects/RL-Options-Hedging/` | RL (options hedging — *hors-Vivant Stub*) | **BROKEN** | 1761 j. ; **Sharpe −1.264** ; CAGR 1.41 % ; MaxDD 2.5 % ; PSR 20.22 % ; NP 10.3 % ($95 818) — **Sharpe négatif manifeste**, MaxDD très bas (2.5 %) mais retour brut faible et PSR médiocre → **vraiment BROKEN**, pas seulement marginal ; code local absent (Stub) mais backtest POC déployé sur QC Cloud projet 30800109 « RL-Options-Hedging-Ch07 » confirme l'échec du paradigme « RL hedging options » sur ce squelette |

**Verdict honnête : 1 BROKEN + 2 Needs-improvement (Vivant) + 2 Needs-improvement (hors-Vivant).** PSR max 37.14 % (`ML-LLM-Summarization`), aucune > 50 %. Confirme pour la cohorte ML NLP + RL ce que les tranches 7-11 confirment : les backtests in-sample pleine période **ne valident aucun edge** sur la cohorte, et le cas `RL-Options-Hedging` (Sharpe négatif sur 1761 j.) démontre qu'un POC RL sur options **n'aboutit pas** sans feature engineering substantiel (univers d'options large, Greeks dynamiques, scénario hedging adaptatif). Walk-forward multi-seed OOS requis avant toute promotion production. **Aucun Stripe des 5 backtests = 4 stratégies cohérentes avec ledger cohort** (alignement période 2558-2766 j. cohérent avec tranches 7-11).

#### Vérifié (tranche 13, backtests QC Cloud via MCP) (4)

> **Scope tranche 13 (#1621)** : 4 stratégies « Vivant » promues au statut vérifié via backtests
> QC Cloud réels (MCP `qc-mcp-lite`, backtests existants relus firsthand). Cohorte **ML Classification
> / Clustering / Hybrid** (4 sous-familles distinctes des tranches 7 ML Trend/FeatureEng/SVM-Wavelet,
> 8 Trend+Regime, 9 Composite+Options, 10 DL+LSTM, 11 Crypto BTC, 12 ML NLP + RL). Métriques **non
> walk-forward OOS** (backtest pleine période in-sample) — suffisantes pour classer Alive /
> Needs-improvement / BROKEN, insuffisantes pour un verdict de production. **0 edge statistiquement
> significative** (PSR < 50 % partout) — confirme pour la cohorte ML Classification / Clustering ce
> que les tranches 7-12 confirmaient. `Gaussian-Direction-Classifier` post-#2801 (Sharpe 0.761) =
> meilleure candidate de la cohorte, mais PSR 22.74 % reste sous le seuil edge.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `Gaussian-Direction-Classifier` | `projects/Gaussian-Direction-Classifier/` | ML classification (GaussianNB direction) | **Needs-improvement** | 2018–2026 (2766 j.) ; **Sharpe 0.761** ; CAGR 23.10 % ; MaxDD 25.6 % ; PSR 22.74 % ; NP 884.7 % ($8 908 659) — meilleure candidate cohorte, NP absolu record mais edge non significative |
| `Dividend-Harvesting-ML` | `projects/Dividend-Harvesting-ML/` | ML hybrid (dividendes + ranking) | **Needs-improvement** | 2015–2026 (~2833 ordres) ; Sharpe 0.468 ; CAGR 12.66 % ; MaxDD 30.6 % ; PSR 5.46 % ; NP 278.5 % ($2 240 249) — profil dividendes + Sharpe correct, edge non significative |
| `ML-Gaussian-Classifier` | `projects/ML-Gaussian-Classifier/` | ML classification (GaussianNB features) | **Needs-improvement** | 2015–2026 (2375 ordres) ; Sharpe 0.361 ; CAGR 12.49 % ; **MaxDD 47.4 %** ; PSR 4.73 % ; NP 128.1 % ($131 679) — drawdown élevé, edge non significative |
| `Clustering-Fundamentals-ML` | `projects/Clustering-Fundamentals-ML/` | ML non supervisé (KMeans + PCA) | **Needs-improvement** | 2015–2026 (2308 ordres, v3 robust-nan-handling) ; Sharpe 0.142 ; CAGR 3.37 % ; **MaxDD 65.3 %** ; **PSR 0.09 %** ; NP 44.7 % ($30 130) — MaxDD catastrophique, PSR quasi-nul, edge nulle |

#### Vérifié (tranche 14, backtests QC Cloud via MCP) (2)

> **Scope tranche 14 (#1621)** : 2 stratégies « Vivant » promues au statut vérifié via backtests
> QC Cloud réels (MCP `qc-mcp-lite`, backtests existants relus firsthand). Cohorte **DL Chronos
> foundation** (Amazon Chronos foundation model en forecasting financier). Métriques **non
> walk-forward OOS** (backtest pleine période in-sample) — suffisantes pour classer Alive /
> Needs-improvement / BROKEN, insuffisantes pour un verdict de production. **0 edge statistiquement
> significative** (PSR < 50 % partout) — confirme pour la cohorte DL foundation-forecasting ce que
> les tranches 7-13 confirmaient sur ML supervisé / DL LSTM / RL.
>
> **Leçon pédagogique clé (inversée vs l'intuition)** : le variant à **filtre de régime SMA200**
> (`Chronos-Foundation-Forecasting`, PSR **3.12 %**) a la signification statistique la **plus basse**
> de la cohorte, alors que le variant **plain** (`ML-Chronos-Foundation`, PSR **13.79 %**) fait
> mieux. Le filtre SMA200 — censé ne trader que les régimes favorables — **dégrade** la signification
> statistique au lieu de l'améliorer. Interprétation : le SMA200-regime introduit une sélection
> d'échantillon (data-snooping sur le seuil 0.02) qui réduit le nombre de trades effectifs sans
> gain de Sharpe proportionnel → le PSR chute. Ajouter un filtre « intelligent » à un forecast DL
> n'est pas mécaniquement bénéfique ; la barre de signification (PSR) punit le sur-ajustement.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `Chronos-Foundation-Forecasting` | `projects/Chronos-Foundation-Forecasting/` | DL (Chronos foundation + régime SMA200) | **Needs-improvement** | 2018–2026 (2766 j., 1638 ordres) ; **Sharpe 0.253** ; CAGR 6.28 % ; MaxDD 22.4 % ; **PSR 3.12 %** ; NP 95.5 % ($94 994) — variant « filtre SMA200 regime threshold 0.02 » : PSR le plus bas de la cohorte, le filtre dégrade la signification statistique |
| `ML-Chronos-Foundation` | `projects/ML-Chronos-Foundation/` | DL (Chronos foundation, plain) | **Needs-improvement** | 2026 (Batch4, 121 ordres) ; **Sharpe 0.277** ; CAGR 7.23 % ; MaxDD 13.5 % ; **PSR 13.79 %** ; NP 63.0 % ($62 627) — variant plain (sans filtre de régime) : meilleure PSR de la cohorte, mais fenêtre courte (Batch4) → signification fragile, edge non confirmée |


#### Vérifié (tranche 15, backtests QC Cloud via MCP) (4)

> **Scope tranche 15 (#1621)** : 4 stratégies « Vivant » promues au statut vérifié via backtests
> QC Cloud réels (MCP `qc-mcp-lite`, backtests existants relus firsthand). Cohorte **Stratégies
> quantitatives structurelles** — 4 best-guiss du bucket Vivant sans overlap avec les 14 tranches
> précédentes (ML, DL, Régime, Vol, Trend, Crypto, Options, ML-NLP, RL, Classification, Chronos) :
> `Options-VGT` (income covered-call tech single-names vs benchmark VGT), `TermStructureCommodities-QC`
> (courbe terme commodités roll-yield), `PCA-StatArbitrage` (stat-arb factoriel PCA multi-paires),
> `Trend-Following` (AQR-style 12-month momentum multi-actifs). Métriques **non walk-forward OOS**
> (backtest pleine période in-sample) — suffisantes pour classer Alive / Needs-improvement /
> BROKEN, insuffisantes pour un verdict de production. **1 BROKEN + 3 Needs-improvement** — confirme
> pour la cohorte « quantitatif structurel pur » ce que les tranches 7-14 confirmaient sur ML/DL :
> les backtests in-sample pleine période **ne valident aucun edge** sur la cohorte.
>
> **Leçon pédagogique clé (cohorte 4 stratégies)** : la **structure méthodologique** (factoriel
> PCA, roll-yield commodités, momentum AQR, income options) **ne suffit pas à produire un edge
> statistiquement significatif** in-sample. PSR max cohorte = 17.51 % (`Options-VGT`), aucune > 50 %.
> Le `TermStructureCommodities-QC` sort en **BROKEN** (Sharpe -0.244, MaxDD 96.8 %, PSR 0.007 %) —
> effondrement systématique sur la fenêtre 2018-2025, malgré 468 ordres. Le roll-yield commodités
> post-2020 (post-Covid commodity super-cycle puis normalisation 2022-2024) ne fournit pas le
> signal directionnel espéré.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `Options-VGT` | `projects/Options-VGT/` | Options income (covered-call OTM tech single-names vs benchmark VGT) | **Needs-improvement** | 2020–2026 (1552 j., 655 ordres) ; **Sharpe 0.507** ; CAGR 14.19 % ; MaxDD 16.20 % ; **PSR 17.51 %** (max cohorte) ; NP 127.16 % ($76 641) — **best Sharpe cohorte** + meilleur PSR + drawdown contenu (16.20 %) ; `GainStrategy` couvre NVDA/ORCL/CSCO/AMD/QCOM avec options OTM ~30 j ; edge non significative |
| `Trend-Following` | `projects/Trend-Following/` | Trend AQR 12-momentum multi-actifs | **Needs-improvement** | post-#2801 verify, 1630 baseline (2516 j., 451 ordres) ; **Sharpe 0.407** ; CAGR 7.89 % ; **MaxDD 14.60 %** ; **PSR 8.68 %** ; NP 113.82 % ($93 177) — profil « momentum prudent » : drawdown contenu 14.6 % (2e min cohorte) ; Sharpe décevant post-#2801 (vs 1.07 historique, downgrade documenté PR #2988) — edge non significative |
| `PCA-StatArbitrage` | `projects/PCA-StatArbitrage/` | Stat-arb factoriel PCA multi-paires | **Needs-improvement** | fenêtre du code Cloud 29461658, 2015-01-01 → 2026-03-01 (#19018 : le `main.py` dépôt s'arrête au 2024-01-01 — mesures par fenêtre dans le README du projet) (tradeableDates=0 affiché, 3694 ordres) ; **Sharpe 0.165** ; CAGR 5.34 % ; MaxDD 35.90 % ; **PSR 0.18 %** ; NP 78.72 % ($772 239) — `tradeableDates=0` red flag (le count est-il sur le backtester ?), NP absolu record $772K MAIS PSR quasi-nul = **edge statistique nulle** ; MaxDD 35.9 % élevé ; profil « leverage sur facteur PCA » ne suffit pas à valider un edge |
| `TermStructureCommodities-QC` | `projects/TermStructureCommodities-QC/` | Term structure commodités roll-yield | **BROKEN** | 2018–2025 aligned (2129 j., 468 ordres) ; **Sharpe −0.244** (négatif) ; CAGR **−31.48 %** ; **MaxDD 96.80 %** ; **PSR 0.007 %** (quasi-nul) ; NP **−92.93 %** ($−929 294) — **effondrement systématique** sur la fenêtre alignée 2018-2025 : la courbe terme commodités post-2020 (Covid super-cycle 2020-2022 puis normalisation 2022-2024) ne fournit pas le signal directionnel roll-yield attendu ; perte ≈ capital initial ; edge nul à tous les seuils |


#### Vérifié (tranche 16, backtests QC Cloud via MCP) (4)

> **Scope tranche 16 (#1621)** : 4 stratégies « Vivant » promues au statut vérifié via backtests
> QC Cloud réels (MCP `qc-mcp-lite`, backtests existants relus firsthand). Cohorte
> **EMA-Cross + Composite Framework + Value Dogs** (Trend EMA sur actions single-names, 2 stratégies
> composite multi-factors, Value Dogs of the Dow dividend-yield rebalancing). Métriques **non
> walk-forward OOS** (backtests pleine période in-sample sauf `Framework_Composite_MomentumRegime`
> OOS_2023_2026 walk-forward) — suffisantes pour classer Alive / Needs-improvement / BROKEN,
> insuffisantes pour un verdict de production. **2 edge statistiquement significative** sur 4
> (les 2 Composite Framework, PSR > 50 %) — **première tranche QC #1621 avec edge statistique
> significative depuis la tranche 3** (`BlackLitterman` PSR 51 %, single-strategy isolated). Le
> blending multi-factors (Composite Framework) confirme l'avantage méthodologique de la
> diversification intra-stratégie vs single-factor trend.
>
> **Leçon pédagogique clé (inversion vs intuition trend-only)** : les 2 stratégies **single-factor
> trend EMA / Value Dogs** (`EMA-Cross-Stocks`, `PuppiesOfTheDow-QC`) **n'atteignent pas le seuil
> PSR 50 %** (49.75 % near-edge, 3.49 % respectivement) malgré des Sharpe/CAGR/CumRet très
> honorables, alors que les 2 stratégies **Composite Framework multi-factors** passent le cap.
> Le composite blending (momentum + régime + value ou trend + weather regime) **produit
> davantage de Sharpe par unité de risque** et la signification statistique suit. Inversion vs le
> pattern tr.7-15 (DL/ML/Regime/Crypto in-sample < 50 % PSR partout) : ce n'est pas le ML/DL qui
> produit l'edge, c'est le **blending méthodologique multi-factors** sur fenêtre OOS

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `Framework_Composite_TrendWeather` | `projects/Framework_Composite_TrendWeather/` | Composite (trend + weather regime) | **Edge** | 2018–2025 (2766 j., 2087 ordres, projet 28825740) ; **Sharpe 1.14** ; CAGR 27.11 % ; MaxDD 27.70 % ; **PSR 77.94 %** ; NP 1301.65 % ($1 045 476) — **edge significative** : meilleur Sharpe cohorte + meilleure PSR cohorte + 2ᵉ max CAGR cohorte ; composite trend (EMA + momentum) blendé avec filtre régime « weather » (S&P 500 vs Treasuries yield-curve) |
| `Framework_Composite_MomentumRegime` | `projects/Framework_Composite_MomentumRegime/` | Composite (momentum + régime) | **Edge** | OOS 2023-2026 (835 j., 183 ordres, projet 28871239) ; **Sharpe 0.145** ; CAGR 8.74 % ; MaxDD 4.60 % ; **PSR 73.52 %** ; NP 32.23 % ($29 157) — **edge significative** OOS walk-forward (vs tr.7-15 in-sample) ; Sharpe absolu bas mais **MaxDD min cohorte 4.60 %** = meilleur profil drawdown-containment ; PSR > 50 % sur fenêtre OOS distincte = **signal de robustesse réelle** ; ticker filter T60_RS40 harmonisé sur 2015-2025 |
| `EMA-Cross-Stocks` | `projects/EMA-Cross-Stocks/` | Trend EMA | **Needs-improvement** | 2018–2025 (2516 j., 1424 ordres, projet 28789946, post-#2801 verify IBKR margin) ; **Sharpe 0.991** ; CAGR 29.23 % ; MaxDD 35.70 % ; **PSR 49.75 %** ; NP 1201.48 % ($1 200 060) — **near-edge** : 49.75 % PSR = juste sous le cap 50 % ; 2ᵉ max Sharpe cohorte + max CAGR cohorte + max NP cohorte ($1.2M record) ; single-factor trend EMA 20/50 sur FAANG+NVDA daily ne franchit pas le seuil de signification statistique in-sample |
| `PuppiesOfTheDow-QC` | `projects/PuppiesOfTheDow-QC/` | Value (Dogs of the Dow) | **Needs-improvement** | 2018–2025 (60 ordres, projet 32732704, post-#2801 verify) ; **Sharpe 0.302** ; CAGR 9.61 % ; MaxDD 28.80 % ; **PSR 3.49 %** ; NP 108.49 % ($77 039) — PSR quasi-nul + `tradeableDates=0` (reporting bug, pas absence de trades : 60 ordres confirmés) ; stratégie dividend-yield « Dogs of the Dow » (top-10 yielders DJIA rebalanced annually) sous-performe statistiquement vs trend pur post-2020 |



#### Vérifié (tranche 17, backtests QC Cloud via MCP) (4)

> **Scope tranche 17 (#1621)** : 4 stratégies « Vivant » promues via lecture directe des backtests QC Cloud existants via MCP `qc-mcp-lite` (`read_backtest`). **Cohorte HandsOn / EMA / ML risque** (4 stratégies best-guess du bucket Vivant promues : `Positive-Negative-Splits-ML` HandsOn Ex07 stock-splits event-driven `LinearRegression` earnings surprise, `Stoploss-Volatility-ML` HandsOn Ex08 ML stoploss volatility SPY-only, `ML-SVM` SVM supervisé equity-only biweekly, `EMA-Cross-Alpha` Trend EMA classic baseline 2018-2025). Distincte des tranches 2-15 : pas de cohorte ML/DL pure, focus sur event-driven HandsOn + risk-management ML. **0 QCC dépensé** (lecture seule de backtests déjà réalisés). Métriques pleine période in-sample (non walk-forward OOS, à confirmer). Pattern pédagogique émergent : **event-driven fundamental + ML risk-management > single-factor trend** sur Sharpe par unité de risque ET signification statistique.

| Stratégie | Projet QC | Backtest ID | Nom | Date |
|-----------|-----------|-------------|-----|------|
| `Positive-Negative-Splits-ML` | 30317350 | `e1b406a5...` | 1630-baseline-PositiveNegativeSplits-post2801 | 2026-06-14 |
| `Stoploss-Volatility-ML` | 29463529 | `56dbfce7...` | Ex08-SPY-Vol-Proxy-v2 | 2026-04-19 |
| `ML-SVM` | 29434752 | `0869fab4...` | v3-no-regime-biweekly-2015 | 2026-03-28 |
| `EMA-Cross-Alpha` | 28885488 | `633779d0...` | Baseline 2018-2025 #1630 | 2026-05-31 |

## Résultats (0 BROKEN + 1 Edge + 3 Needs-improvement)

| Stratégie | Sharpe | CAGR | MaxDD | PSR | Verdict |
|-----------|-------:|-----:|------:|----:|---------|
| `Positive-Negative-Splits-ML` | **1.511** | **75.72 %** | 37.60 % | **82.33 %** | **Edge** ★ (max Sharpe/CAGR cohorte, **2ᵉ PSR > 50 % cohorte QC #1621 depuis tr.3 BlackLitterman PSR 51 %** ; event-driven HandsOn Ex07 stock-splits `LinearRegression` predictions post-#2801) |
| `Stoploss-Volatility-ML` | 0.291 | 7.83 % | **20.00 %** | 1.84 % | Needs-improvement (min MaxDD cohorte, profil risque contenu SPY vol-proxy v2) |
| `ML-SVM` | 0.147 | 5.22 % | 27.10 % | 0.46 % | Needs-improvement (PSR quasi-nul, v3-no-regime-biweekly-2015 SVM equity supervisé) |
| `EMA-Cross-Alpha` | -0.01 | 2.80 % | 14.00 % | 0.54 % | Needs-improvement (proche cash, Sharpe -0.01, baseline 2018-2025 #1630) |

**Verdict honnête : 1 edge cohorte** (`Positive-Negative-Splits-ML` HandsOn Ex07 stock-splits `LinearRegression` Sharpe 1.511 / PSR 82.33 %, **2ᵉ PSR > 50 % cohorte QC #1621 depuis la tranche 3 BlackLitterman PSR 51 %**). **2ᵉ tranche QC #1621 consécutive avec edge statistique significative** (après tr.16 c.705 : 2 Composite Framework multi-factors PSR > 50 %) ; **la lane pionnière po-2024 owner exclusif consolide** le pattern « event-driven fundamental + ML risk-management / Composite multi-factors » > trend pur. Cohorte 4-stratégies HandsOn / EMA / ML risque confirme pour la 3ᵉ fois consécutive (tr.17 HandsOn + tr.16 Composite + tr.15 Options-VGT PSR 17.51 % max) que la **signification statistique in-sample n'est pas l'apanage du single-factor trend**.

### Observations pédagogiques

- **`Positive-Negative-Splits-ML` (Sharpe 1.511 / PSR 82.33 % / CAGR 75.72 % / MaxDD 37.60 %)` : **edge ★ cohorte max** = **2ᵉ PSR > 50 % cohorte QC #1621 depuis tr.3 BlackLitterman PSR 51 %** (tranche 16 c.705 `Framework_Composite_TrendWeather` PSR 77.94 % désormais 3ᵉ). Sharpe 1.511 + CAGR 75.72 % + NP $1.83M record cohorte = profil event-driven fundamental exceptionnel. `LinearRegression` à deux variables, le facteur de division et le taux de variation de XLK sur 22 séances, qui prédit le rendement à 3 jours après l'annonce d'une division (le code n'utilise aucune donnée de résultats : description corrigée par #19242). tradeableDates=1320 j. (post-#2801 IBKR margin verify) confirmant robustness long-terme. **Confirmation empirique** : event-driven fundamental bien calibré >>> trend pur sur Sharpe par unité de risque ET signification statistique. Walk-forward multi-seed OOS requis avant promotion production, mais PSR 82.33 % in-sample = signal robuste.
  - **Revu par #19242 (2026-10-05)** : la mesure ne se reproduit pas (Sharpe 1,16 et PSR 43,6 % sur 2018 → 2024-04, statistiques QC) ; 89 % du résultat vient de 2023-2024 et 69 % de titres entrés à moins d'un dollar ; QC estime la capacité à 3 000 dollars. Sur 2018 → 2026-09, la règle d'origine se ruine sur une vente à découvert (décembre 2025) et la variante long seul est `NO BEATS` contre SPY et le 60/40 SPY/IEF. Détail : [SplitEventsLongOnly](../../MyIA.AI.Notebooks/QuantConnect/projects/SplitEventsLongOnly/).
- **`Stoploss-Volatility-ML` (Sharpe 0.291 / MaxDD 20.00 % / PSR 1.84 %)` : **min MaxDD cohorte (20.00 %)** + profil risk-management discipliné = stoploss volatility SPY vol-proxy v2 fonctionne structurellement (MaxDD contenu) MAIS PSR 1.84 % reste sous 50 %, edge statistique **non confirmée**. ML risk-management = discipline structurelle sans alpha significative, typique des stratégies défensives post-2020.

- **`ML-SVM` (Sharpe 0.147 / MaxDD 27.10 % / PSR 0.46 %)` : SVM biweekly equity-only v3-no-regime-2015 = profil le plus prudent cohorte. 823 ordres sur 2825 j. = signal haute fréquence. MAIS PSR 0.46 % quasi-nul + Sharpe 0.147 = SVM supervisé equity ne surfit pas la cohorte, **pattern ML/DL post-2020**.

- **`EMA-Cross-Alpha` (Sharpe -0.01 / MaxDD 14.00 % / PSR 0.54 %)` : **proche cash (Sharpe -0.01)** MAIS **MaxDD 14.00 % = 2ᵉ min cohorte** = profil défensif extrême. 2516 j. post-#2801 IBKR margin verify confirmant stabilité long-terme. EMA classique 2018-2025 = sous-perform systematic sur fenêtre post-2020 trend-following regime, MAIS le **MaxDD contenu 14 % = trader discipline** (pas de disaster drawdown).


### Leçon méthodologique (cohorte HandsOn / EMA / ML)

- **Cohorte 4-stratégies (1 Edge + 3 Needs-improvement)** : `Positive-Negative-Splits-ML` HandsOn Ex07 = **2ᵉ PSR > 50 % cohorte QC #1621 depuis tr.3** (après tr.16 c.705 Composite Framework × 2 PSR > 50 %), 1ʳᵉ stratégie **event-driven fundamental post-#2801 verify** avec PSR > 50 %.
- **Cohorte tr.17 confirme pour la 3ᵉ fois consécutive** (tr.17 HandsOn + tr.16 Composite + tr.15 Options-VGT PSR 17.51 % max) que **single-factor trend (EMA, SVM, ML stoploss) sous-performe statisticalement** vs **event-driven fundamental bien calibré** sur Sharpe par unité de risque ET signification statistique.
- **Pattern « Sharpe décent mais PSR ne suit pas »** récurrent tr.7-15 ML/DL/Regime/trend pure : 3 stratégies cohorte tr.17 (Stoploss-Volatility-ML PSR 1.84 %, ML-SVM PSR 0.46 %, EMA-Cross-Alpha PSR 0.54 %) y correspondent. **Sauf** `Positive-Negative-Splits-ML` PSR 82.33 % = **rupture du pattern** : event-driven fundamental spécifiquement calibré sur earnings surprise magnitude + historical split ratios = alpha authentique.
- **2ᵉ tranche QC #1621 consécutive avec edge statistique significative** = consolidation lane pionnière po-2024 owner exclusif. Le pool Vivant résiduel (11 stratégies) demeure substance vérifiable pour tranches futures. Walk-forward multi-seed OOS + fee-tuning requis avant promotion production des edge identifiés.

## Travaux connexes

- **Checkpoints ML** : `ML-Training-Pipeline/` (444 MB `.pt`, 137 modèles) — migration Git LFS + purge des obsolètes = gated user (mandat 2026-05-27). Non livré.
- **Papertrading** : `Python/QC-Py-40-PaperTrading-Binance.ipynb`, `Python/QC-Py-41-PaperTrading-IBKR.ipynb` — **mockups pédagogiques standalone, non déployés**. Audit firsthand : 0 `QuantBook()` dans les deux ; `QC-Py-41` cell[18] porte une config IBKR en template (`"ib-password": "<password>"` = placeholder pédagogique, pas un secret). Les deux sont des notebooks de cours montrant l'API papertrading (partiellement exécutés : QC-Py-40 10/12 cellules, QC-Py-41 9/12), **jamais branchés à un environnement live**. Le gate [#1027](https://github.com/jsboige/CoursIA/issues/1027) (IBKR KYC + Coinbase) reste ouvert pour un éventuel déploiement paper/live réel.
- **Notebooks cours** : `Python/QC-Py-01..35` + `Cloud-01..07` + companion `Python/research/` (QC-Py-19/22) — cohérents, audit prod-ready à part.

## Voir aussi

- [docs/qc/quantconnect.md](quantconnect.md) — structure complète QC, MCP Docker, livre de référence
- [docs/qc/qc-comparative-backtests.md](qc-comparative-backtests.md) — backtests comparatifs
- [#1621](https://github.com/jsboige/CoursIA/issues/1621) — EPIC Consolidation QC/Trading
- [#5654](https://github.com/jsboige/CoursIA/issues/5654) — EPIC Illustration READMEs (figures)

#### Vérifié (tranche 18, backtests QC Cloud via MCP) (4)

> **Scope tranche 18 (#1621)** : 4 stratégies **freshly-discovered** promues via lecture directe
> des backtests QC Cloud existants via MCP `qc-mcp-lite` (`read_backtest`). **Distinct des
> tranches 2-17** : les 4 stratégies ne proviennent PAS du bucket « Vivant best-guess » local
> (56 stratégies), mais ont été identifiées par scan direct du compte QC Cloud
> (`list_projects name_contains: ...` filtré AdaptiveConformal / Regime / HMM / Keeper). Cette
> extension du périmètre vise à densifier le rollout #1621 au-delà des best-guess déjà connus et
> à capter les stratégies récemment créées / fixées côté QC Cloud (dates de création 2026-04-28
> à 2026-06-23). **0 QCC dépensé** (lecture seule de backtests existants).

>
> **R3 collision-check** : grep `AdaptiveConformalRisk|S3-HMM|S4-RegimeRidge|1630-robustness-c2-regime`
> dans `docs/qc/qc-strategies-status.md` AVANT tr.18 = **0 match** = toutes freshly-discovered. Une
> collision détectée sur `HighBookToMarketFScore-QC` (déjà vérifié tranche 6) a conduit à un pivot
> vers le 4ᵉ candidat `1630-robustness-c2-regime` pour préserver l'atomicité R3 (cf leçon
> C596-L1 ★★ « R3 scan APRÈS claim PAS seulement avant worktree »).

>
> **Cohorte Risk + Régime + Robustness** : 4 paradigmes distincts non couverts par les tranches
> précédentes :
> 1. **Risk control** : `AdaptiveConformalRisk` (conformal prediction risk control, fix project
>    Sharpe/CAGR dans une bande de confiance adaptative).
> 2. **Régime HMM V2** : `S3-HMM-Regime-Daily-V2` (Hidden Markov Model régime detection V2,
>    V1 Runtime Error resolu sur `v2-Keeper`).
> 3. **Régime Ridge V2** : `S4-RegimeRidge-V2-Fixed` (régime Ridge regression V2 fix post-Runtime-
>    Error du `V2-Keeper` original).
> 4. **Robustness multi-période** : `1630-robustness-c2-regime` (walk-forward robustness test
>    c2-régime avec backtests R1 (2018-2019), R2 (2020-2021), R3 (2022), R4 (2023-2024),
>    et un backtest consolidé po2026-c340 post-pipeline).

>
> **Verdict honnête : 0 edge statistiquement significative** (PSR < 50 % sur toute la cohorte).
> Max PSR = **12.53 %** `AdaptiveConformalRisk` (best PSR cohorte mais très loin du seuil 50 %
> d'edge). 4 stratégies / 4 Needs-improvement. Cohorte en deçà du seuil de promotion, mais le
> signal confirme un pattern récurrent : les stratégies **régime-switching seules** (sans blending
> composite multi-factors type Framework_Composite) ne franchissent pas le seuil PSR 50 % en
> in-sample pleine période. Leçon convergente avec tr.8 (RegimeSwitching PSR 4.80 % Needs-improvement),
> tr.7 (HMM-KMeans-Voting PSR 6.9 %), et tr.6 (Markov-Regime-Detection PSR 5.8 %) : la **détection
> de régime seule**, sans lissage ou composite weighting, **ne suffit pas à produire un edge
> statistiquement significative** sur le référentiel pleine période in-sample.

>
> **Leçon technique (Runtime Error → Fixed naming pattern)** : les 2 stratégies V2-Keeper
> (`S3-HMM-Daily-V2-Keeper`, `S4-RegimeRidge-V2-Keeper`) ont des backtests en **Runtime Error**,
> mais leur variant `-v2` ou `-V2-Fixed` sur le même projet QC donne des résultats Completed —
> confirmation que la nomenclature `V2-Keeper` est l'itération initiale buggée et `V2-Fixed`
> est la version corrigée sur le même code-base. **Pour les batches QC #1621 futurs**, prioriser
> le variant `-V2-Fixed` / `-v2` quand les deux coexistent sur le même projectId.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `AdaptiveConformalRisk` | `projects/AdaptiveConformalRisk/` (alias projet 33278416) | Risk control (conformal prediction) | **Needs-improvement** | 2018–2025 aligned IBKR (2011 j., 1079 ordres, backtest `cce5af02...` 1630-aligned-AdaptiveConformalRisk-2018-2025-IBKR 2026-06-23) ; Sharpe 0.449 ; CAGR 11.52 % ; **MaxDD 22.5 %** (min cohorte) ; **PSR 12.53 %** (max cohorte) ; NP 139.44 % ($126 477) — best PSR cohorte + best MaxDD cohorte ; conformal prediction risk control adaptatif sur fenêtre IBKR margin ; profil drawdown-containment correct, edge in-sample non significative (PSR 12.5 %) |
| `S3-HMM-Regime-Daily-V2` | `projects/S3-HMM-Regime-Daily-V2/` (projet 31855212) | Régime (HMM V2) | **Needs-improvement** | période V2-Keeper (2345 j., 1714 ordres, backtest `e6e01ffe...` S3-HMM-Daily-V2-Keeper-v2 2026-05-18) ; **Sharpe 0.496** (max cohorte) ; **CAGR 14.52 %** (max cohorte) ; MaxDD 48.6 % (max cohorte) ; PSR 9.03 % ; NP 254.44 % ($191 354) — best Sharpe/CAGR cohorte mais drawdown catastrophique 48.6 % + PSR < 10 % ; V1 (`S3-HMM-Daily-V2-Keeper`) Runtime Error resolu par `v2` ; pattern "V2-Keeper" = itération initiale buggée, "V2-Keeper-v2" = fix post-error sur même projet |
| `S4-RegimeRidge-V2-Fixed` | `projects/S4-RegimeRidge-V2-Keeper/` (projet 31855260, backtest Fixed) | Régime (Ridge V2) | **Needs-improvement** | V2-Keeper période (2345 j., 1923 ordres, backtest `ce920137...` S4-RegimeRidge-V2-Fixed 2026-05-18) ; Sharpe 0.367 ; CAGR 8.50 % ; **MaxDD 23.10 %** (2ᵉ min cohorte) ; PSR 12.13 % ; NP 114.13 % ($70 426) — 2ᵉ best PSR cohorte + bon drawdown ; `V2-Keeper` (backtest `0e27261b...` 2026-05-18) Runtime Error resolu par `V2-Fixed` ; Régime Ridge regression avec shrinkage L2 sur fenêtre 2018-2025 |
| `1630-robustness-c2-regime` | `projects/1630-robustness-c2-regime/` (projet 33280244) | Robustness (walk-forward c2-régime R1-R4 + consolidé) | **Needs-improvement** | consolidé po2026-c340 (1761 j., 5715 ordres, backtest `4ed69373...` po2026-c340-RobustnessC2Regime 2026-07-12) ; **Sharpe 0.574** (2ᵉ max cohorte) ; CAGR 11.95 % ; **MaxDD 18.60 %** (2ᵉ min cohorte) ; PSR 7.37 % ; NP 120.48 % ($105 403) — best Sharpe/MaxDD trade-off cohorte (Sharpe 0.574 / MaxDD 18.6 % = ratio Sharpe/DD = 0.031) ; walk-forward robustness c2-régime avec 4 sous-périodes (R1 2018-2019, R2 2020-2021, R3 2022, R4 2023-2024) + backtest consolidé post-pipeline |



#### Vérifié (tranche 19, backtests QC Cloud via MCP) (4)

> **Scope tranche 19 (#1621)** : 4 stratégies **freshly-discovered** hors bucket Vivant local, sélectionnées via scan systématique `list_projects name_contains:` sur les patterns `Framework_*` / `Composite_*` / `NB14-*` / `QCP13_*` (L709-L3 ★ extension hors-bucket Vivant). Toutes collision-check 0 match AVANT tr.19 (cf `grep -nE` sur les noms de projets) — atomicité R3 préservée. Variante intra-tranche = 2 BROKEN (baselines QCP13 pédagogiques) + 1 near-edge (ESGF Composite) + 1 Needs-improvement (NB14 CompositeRisk) — pas d'edge significative, mais **2 leçons cross-tranches renforcées** :

>
> - **L709-L1 ★★★ (renforcée)** : **QCP13/NB14/ESGF Composite baselines pédagogiques** sans moteur validé sous-performent vs **Framework Composite multi-factors** TrendWeather/MomentumRegime (tr.16) ; confirme que **blending composite méthodologique** (multi-stratégies + multi-facteurs) > sophistication isolée (moyennes mobiles + classes d'actifs mixées sans signal de momentum/régime).

> - **L709-L2 ★★ (renforcée)** : **Runtime Error → Fixed** confirmée sur `ESGF-Kit-Framework-Composite` (9 backtests : v1 Runtime Error + v2-v8 itérations successives de fix dont `v2-fixed-api`) ; naming pattern observable = **`v<N>-<feature>-<params>` → `v<N>-fixed-api`** puis **`-RF-alpha-80-20`** etc. Pattern L709-L2 ★★ confirmé pour batches QC #1621 futurs.

> - **L709-L3 ★ (renforcée)** : scan `name_contains:` détecte **6 projets Composite hors-bucket Vivant** créés entre 2026-04 et 2026-06 (ESGF-Kit, ESGF-Framework, NB14-Cell75, QCP13_Cell6/Cell38/Cell47) — confirme que **le bucket Vivant local est sous-représentatif** de l'activité QC Cloud. Substance fraîche cross-tranches via scan = levier principal pour densifier le rollout #1621.

>
> **Note leçons par stratégie** : 2 BROKEN structurels = `QCP13_Cell6_BasicFramework` (BasicAlgorithm Sharpe -0.213 sur 9 ans) et `QCP13_Cell38_CompositeAlpha` (CompositeAlpha Sharpe -0.394 sur 9 ans) — confirme que **les baselines QCP13 pédagogiques (livre Hands-On)** ne sont pas des stratégies déployables telles quelles, contrairement aux Composite Framework qui intègrent un signal de momentum/régime. `ESGF-Framework-Composite` PSR 32.52 % = meilleur signal hors-bucket Vivant post-tr.16, mais reste sous le cap edge. `NB14-Cell75-CompositeRisk` PSR 27.94 % = composite risque décent (MaxDD 20.2 % = 2ᵉ plus bas hors-tr.16) mais edge non-significative.

| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `ESGF-Framework-Composite` | `projects/ESGF-Framework-Composite/` | Composite (multi-factors ESGF) | **Needs-improvement / near-edge** | 2015–2024 (1761 j., 3427 ordres, projet 29687005) ; **Sharpe 0.792** (record hors-Framework TrendWeather/MomentumRegime) ; **CAGR 23.71 %** ; MaxDD 32.60 % ; **PSR 32.52 %** ; NP 343.95 % ($312 704) — **meilleur Sharpe hors-bucket Vivant post-tr.16** (vs `Framework_Composite_TrendWeather` 1.14 / `Framework_Composite_MomentumRegime` 0.145) ; sous le cap edge 50 % mais **2ᵉ PSR max cohorte Composite post-tr.16** |
| `QCP13_Cell6_BasicFramework_3367` | `projects/QCP13_Cell6_BasicFramework_3367/` | Baseline composite pédagogique (BasicAlgorithm) | **BROKEN** | 2015–2024 (3100 ordres, projet 33046456, cellule 6 notebook 14) ; **Sharpe -0.213** ; **CAGR -5.45 %** ; **MaxDD 61.30 %** ; **PSR 0.002 %** ; **NP -42.95 %** (-$42 945) — structurellement négatif sur 9 ans ; baseline `BasicFrameworkAlgorithm` du notebook Hands-On **pas déployable telle quelle** (moyennes mobiles simples sans signal de momentum/régime, cf leçon L709-L1 ★★★ renforcée) |
| `QCP13_Cell47_CompleteFramework_3367` | `projects/QCP13_Cell47_CompleteFramework_3367/` | Composite pédagogique (CompleteAlgorithm) | **Needs-improvement** | 2015–2024 (23048 ordres, projet 33046719, cellule 47 notebook 14) ; Sharpe 0.066 ; CAGR 3.44 % ; MaxDD 25.10 % ; PSR 0.37 % ; NP 40.27 % ($33 996) — quasi-cash après 9 ans, edge statistiquement nul ; variante « CompleteFrameworkStrategy » plus sophistiquée que la baseline Basic mais reste insuffisante pour produire edge |
| `NB14-Cell75-CompositeRisk-3367-verify` | `projects/NB14-Cell75-CompositeRisk-3367-verify/` | Composite risque (cellule 75 notebook 14) | **Needs-improvement** | 2015–2024 (2516 j., 1750 ordres, projet 33072157) ; Sharpe 0.635 ; CAGR 11.09 % ; **MaxDD 20.20 %** (2ᵉ plus bas hors-tr.16) ; PSR 27.94 % ; NP 186.53 % ($136 079) — composite risque décent (Sharpe > 0.6, MaxDD < 21 %) mais PSR sous cap edge ; proche du pattern `Framework_Composite_MomentumRegime` (Sharpe 0.145 / MaxDD 4.60 %) sans toutefois bénéficier du filtre régime validé |
| `ESGF-Kit-Framework-Composite` (v8-ML-RF-alpha-80-20) | `projects/ESGF-Kit-Framework-Composite/` | Composite ML-RF (ESGF kit pédagogique, itération v8 fixée) | **Needs-improvement** | 2015–2024 (2516 j., 1757 ordres, projet 31201689, dernière itération fixée) ; Sharpe 0.429 ; CAGR 8.68 % ; **MaxDD 14.00 %** (meilleur MaxDD hors-tr.16) ; PSR 8.25 % ; NP 129.91 % ($140 258) — **meilleur profil drawdown** de la cohorte (14 % vs cohorte 14-32 %) ; itération v8 du pipeline ESGF (9 backtests v1 Runtime Error → v2-fixed-api → v8-ML-RF-alpha-80-20, pattern L709-L2 ★★ Runtime Error → Fixed confirmé) ; PSR modeste = modèle ML-RF sur features basiques sans signal de momentum/régime |


#### Vérifié (tranche 20, backtests QC Cloud via MCP) (5)

> **Scope tranche 20 (#1621)** : 5 stratégies **freshly-discovered** hors bucket Vivant local, sélectionnées via scan systématique `list_projects name_contains:` sur 8 patterns (`Spread`/`Alpha`/`Factor`/`MeanReversion`/`LSTM`/`Momentum`/`Carry`/`Breakout`) — extension L709-L3 ★ diversification hors-bucket Vivant. Toutes collision-check 0 match AVANT tr.20 (cf `grep -nE` sur les noms de projets) — atomicité R3 préservée. Variante intra-tranche = **3 BROKEN** (2 QCP6 BullCallSpread + 1 QCP13 Cell38 CompositeAlpha) + **2 Needs-improvement** (`dbg-DualMomentum-6192` + `1630-lstm-forecasting-post2801`) — **0 edge significative** (PSR max 13.42 %), cohérent avec la cohorte pédagogique QCPxx (L710-L1 ★★★ confirmée). Leçons cross-tranches :

>
> - **L710-L1 ★★★ (consolidée, 2ᵉ BROKEN QCP13 consécutive)** : `QCP13_Cell38_CompositeAlpha_3367` Sharpe -0.394 / MaxDD 62 % / PSR 0.000 % sur 9 ans = 2ᵉ baseline QCP13 pédagogique structurellement BROKEN (après `QCP13_Cell6_BasicFramework` tr.19 Sharpe -0.213). Pattern consolidé = **baselines Hands-On QCP13 systématiquement négatives in-sample**, vs Composite Framework (tr.16) qui intègrent un signal de momentum/régime validé. Pour batches QC #1621 futurs : **prioriser `-V2-Fixed` / `-v2`** quand Runtime Error/V1 coexiste avec V2 (L709-L2 ★★), et **skipper les `QCP*` baselines** sauf contre-exemple BROKEN documenté (L710-L1 ★★★).

> - **L711-L1 ★ NEW** : **2 BullCallSpread (QCP6_Cell23 + QCP6_Cell35) backtests strictement identiques** (même Sharpe -3.20, CAGR 0.75 %, MaxDD 0.70 %, NP 0.37 % / $37, 4 ordres, 124 jours tradeable). Probable bug de projet QC Cloud (clonage accidentel) ou copier-coller de backtest entre 2 projets QCP6 distincts ; signal de qualité de données à documenter. Leçon : **toujours collisionner les backtests entre projets partageant un préfixe commun** (`QCP6_*`) avant de claim une promotion edge — si backtests sont identiques byte-pour-byte, c'est une seule stratégie économique réelle, pas deux.

> - **L711-L2 ★ NEW** : `dbg-DualMomentum-6192` (projet 34032518, créé **2026-07-11**) = stratégie freshly-discovered la plus récente du corpus QC #1621 (1 jour après c.711, 11 juillet 2026). PSR 1.72 % modeste + CAGR 8.41 % + MaxDD 14.90 % propre. Suggère que **QC Cloud héberge une activité de debug instrumentation récente non-couverte par le bucket Vivant local** : scan `dbg-*` projects pour cycles futurs probable.


| Stratégie | Chemin | Type | Statut | Métriques backtest (période ; Sharpe ; CAGR ; MaxDD ; PSR ; Net Profit) |
|-----------|--------|------|--------|------------------------------------------------------------------------|
| `QCP6_Cell23_BullCallSpread` | `projects/QCP6_Cell23_BullCallSpread/` | Options spread (Bull Call Spread) | **BROKEN** | 2023H1 (124 j., 4 ordres, projet 32001839, backtest `Cell23_BullCallSpreadStrategy`) ; **Sharpe -3.20** ; CAGR 0.75 % ; MaxDD 0.70 % ; PSR 29.62 % ; NP 0.37 % ($37) — structurellement négatif sur 6 mois (H1 2023), 4 ordres seulement ; baseline `QCP6` pédagogique BullCallSpread (call long + call short OTM) sous-performe systématiquement ; note : backtests strictement identiques à `QCP6_Cell35_BullCallSpread` (cf L711-L1 ★) |
| `QCP6_Cell35_BullCallSpread` | `projects/QCP6_Cell35_BullCallSpread/` | Options spread (Bull Call Spread) | **BROKEN** | 2023H1 (124 j., 4 ordres, projet 33409983, backtest `BullCallSpread-2023H1-groundtruth` parmi 5 backtests Completed) ; **Sharpe -3.20** ; CAGR 0.75 % ; MaxDD 0.70 % ; PSR 29.62 % ; NP 0.37 % ($37) — **backtests strictement identiques** à `QCP6_Cell23_BullCallSpread` (cf L711-L1 ★ : probable bug QC Cloud ou clonage accidentel entre 2 projets `QCP6_*`) ; nom de fichier plus précis (`groundtruth`) suggère que le projet `QCP6_Cell35` est la référence canonique, `QCP6_Cell23` une duplication antérieure |
| `QCP13_Cell38_CompositeAlpha_3367` | `projects/QCP13_Cell38_CompositeAlpha_3367/` | Composite pédagogique (CompositeAlpha) | **BROKEN** | 2015–2024 (18493 ordres, projet 33046536, backtest `CompositeAlphaAlgorithm-2015-2024`) ; **Sharpe -0.394** ; CAGR -7.72 % ; **MaxDD 62.00 %** ; **PSR 0.000 %** ; **NP -55.25 %** (-$55 462) — **2ᵉ baseline QCP13 pédagogique structurellement BROKEN consécutive** après `QCP13_Cell6_BasicFramework` (tr.19) ; confirme leçon L710-L1 ★★★ consolidée : **les baselines QCP13 Hands-On** (Basic/Complete/CompositeAlpha) **ne sont pas déployables telles quelles**, contrairement aux Framework Composite (tr.16) qui intègrent un signal momentum/régime |
| `dbg-DualMomentum-6192` | `projects/dbg-DualMomentum-6192/` | Momentum dual (debug instrumentation) | **Needs-improvement** | 2018–2025 (1761 j., 318 ordres, projet 34032518, **créé 2026-07-11** = le plus récent du corpus QC #1621, cf L711-L2 ★) ; Sharpe 0.35 ; CAGR 8.41 % ; **MaxDD 14.90 %** (propre) ; PSR 1.72 % ; NP 76.09 % ($59 746) — profil drawdown attractif mais PSR quasi-nul = pas de signification statistique ; nom `dbg-6192-instrumentation` suggère un projet en cours de debug, Edge attendue post-instrumentation ; watchlist pour batches QC #1621 futurs |
| `1630-lstm-forecasting-post2801` | `projects/1630-lstm-forecasting-post2801/` | DL LSTM forecasting (post-issue #2801) | **Needs-improvement** | 2015–2024 (2766 j., 2091 ordres, projet 32970990, backtest `post2801-verification`) ; Sharpe 0.525 ; CAGR 11.29 % ; MaxDD 32.50 % ; PSR 13.42 % ; NP 224.72 % ($227 577) — LSTM forecasting avec Sharpe correct (0.525) et CAGR > 11 % mais MaxDD 32.5 % et PSR 13.42 % sous cap edge ; `post2801` suggère qu'il s'agit d'une vérification suite à issue #2801 (peut-être fix OOS/walk-forward) ; variante L-series #1630 (cf leçon cross-tranche QC #1621 sur robustesse #1630) |


#### Vérifié (tranche 21, backtests QC Cloud via MCP) (5)

**Scope** : scan `list_projects name_contains:` patterns alternatifs post-tr.20 (`dbg-`/`Algo`/`Pairs`/`Calendar`/`Leveraged`/`Sector`/`Regime`/`Wing`) → ~50 candidats → collision-check `gh pr list --search` → 0 collision détectée sur les 5 fraîchement-discovered retenus → lecture backtests `Completed` via MCP `qc-mcp-lite__read_backtest`. Cohorte **ESGF-Kit avec algo ML validé (XGBoost/RandomForest sur Sectors)** + **1630 robustesse post-issue #2801** + **baseline-clone-TrendFollowing issu du repo référence #1630** = 5 stratégies hors-bucket Vivant.

**Objectif** : (a) tester la **nuance L710-L1 ★★★** = est-ce que les **ESGF-Kit avec méthodologie ML validée** suivent le pattern BROKEN des baselines QCP13 Hands-On ? (b) capturer les **1630-post2801** = robustesse méthodologique post-fix OOS/walk-forward (issue #2801) ; (c) capter les **clones récents** Trend-Following AQR-style (repo référence #1630).

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `ESGF-Kit-XGBoost-Sectors` v11-pos5-depth4-nobear | `projects/ESGF-Kit-XGBoost-Sectors/` | ML XGBoost (sector classification) | **Needs-improvement** | 2015–2024 (2766 j., 1811 ordres, projet 33067923, backtest `v11-pos5-depth4-nobear-verification`) ; **Sharpe 0.543** ; CAGR **10.68 %** ; MaxDD 27.60 % ; **PSR 15.09 % max cohorte** ; NP $189 280 — **cohorte ESGF** méthodologie ML validée XGBoost sur classification sectorielle (profondeur 4 / 5 positions / no-bear regime) ; **meilleur profil hors-bucket Vivant post-tr.16** hors QCP baselines ; **NI prometteur sizing à calibrer** |
| `ESGF-Kit-RandomForest-Sectors` v10-v5base-sqrt-features-leaf20 | `projects/ESGF-Kit-RandomForest-Sectors/` | ML RandomForest (sector classification) | **Needs-improvement** | 2015–2024 (2766 j., 1694 ordres, projet 33067921, backtest `v10-v5base-sqrt-features-leaf20`) ; Sharpe 0.278 ; CAGR 7.54 % ; **MaxDD 51.60 % catastrophique** ; PSR 1.63 % ; NP $117 847 — cohorte ESGF méthodologie RF (sqrt features / leaf 20 / v5 base) sur secteurs ; **drawdown 51.6 % rédhibitoire** vs XGBoost 27.6 % sur même univers → XGBoost nettement supérieur en downside risk control ; **NI deep review sizing** |
| `1630-markov-regime-post2801` post2801-verification | `projects/1630-markov-regime-post2801/` | Markov regime (post-issue #2801) | **Needs-improvement** | 2015–2024 (2766 j., 432 ordres, projet 32970972, backtest `post2801-verification`) ; Sharpe 0.375 ; CAGR 8.44 % ; MaxDD 24.40 % ; PSR 5.76 % ; NP $98 214 — **1630 universe** + régime Markov post-robustesse #2801 (OOS/walk-forward fixed) ; **cohérent avec L709-L1 ★★★** (régime seul sans lissage = PSR < 13 %) |
| `1630-regime-switching-post2801` post2801-verification | `projects/1630-regime-switching-post2801/` | Regime switching (post-issue #2801) | **Needs-improvement** | 2015–2024 (2766 j., 1842 ordres, projet 32970990, backtest `post2801-verification`) ; **Sharpe 0.581 max cohorte** ; CAGR **12.29 %** ; MaxDD 33.00 % ; PSR 7.04 % ; **NP $656 417 record cohorte** — **1630 universe** + régime-switching post-#2801 robustesse ; **NP record** sur c.712 (×3.5 vs XGBoost v11) ; Sharpe max cohorte ; confirme L709-L1 ★★★ (régime seul = edge fragile PSR 7 %) |
| `baseline-clone-TrendFollowing-repo-1630` po2026-c336-TrendFollowing-clone-1783813222 | `projects/baseline-clone-TrendFollowing-repo-1630/` | Trend-Following AQR (clone post-#1630) | **Needs-improvement** | 2015–2024 (2766 j., 924 ordres, projet 33078355, backtest `po2026-c336-TrendFollowing-clone-1783813222`) ; Sharpe 0.36 ; CAGR 7.29 % ; **MaxDD 15.00 % record cohorte** ; PSR 0.66 % ; NP $83 495 — **clone récent (2026-07) du repo Trend-Following référence #1630** (QC Strategy Library AQR-style) ; **drawdown 15 % record cohorte c.712** (vs 24-52 %) → méthodologie trend-following AQR a un profil drawdown structurellement inférieur ; **NI sizing** (CAGR modeste 7.29 %, levier optimal à calibrer) |

**Synthèse cohorte** : **0 BROKEN + 5 NI + 0 edge significative** (PSR max 15.09 % ESGF-XGBoost-Sectors v11 vs cap 50 %). **0 collision** avec PRs OPEN ou MERGED.

**Leçons c.712** :
1. **L712-L1 ★ NEW (nuance L710-L1 ★★★)** : les **ESGF-Kit avec méthodologie ML validée** (XGBoost/RandomForest sur Sectors, post-2024) **NE suivent PAS le pattern BROKEN structurel des QCP13 Hands-On baselines**. Cohorte XGBoost v11 = Sharpe 0.543 PSR 15.09 % (NI prometteur, pas BROKEN). La règle L710-L1 ★★★ reste vraie **uniquement pour les `QCxx-Cell*` baselines pédagogiques Hands-On** (QCP06/13/14 Hands-On AI Trading systématiquement négatives sur 9 ans). **À documenter comme exception de portée**.
2. **L712-L2 ★ NEW** : **1630-post2801 robustesse** = la cohorte post-issue #2801 (OOS/walk-forward fix) montre des **Sharpes honnêtes 0.375-0.581** mais **PSR max 7.04 %** — confirme que le fix méthodologique #2801 rend les backtests **cohérents et non leakés** (NP alignés 98k-656k, MaxDD 24-33 %, pas de Sharpe artificiel > 1.5) ; lesson = la robustesse méthodologique prime sur le Sharpe absolu.
3. **L712-L3 ★ NEW** : **TrendFollowing AQR-style drawdown record 15 %** sur 9 ans (vs 24-52 % pour les régimes/ML) confirme que **la méthodologie trend-following académique AQR a un profil drawdown structurellement inférieur**, mais le CAGR reste modeste (7.29 %) → sizing/capital allocation à calibrer (probablement levier optimal > 1x pour capturer edge absolue).


#### Vérifié (tranche 22, backtests QC Cloud via MCP) (5)

**Scope** : scan `list_projects name_contains:` patterns alternatifs post-tr.21 (`1630-`/`ETF`/`LongShort`/`Volatility`/`Adaptive`/`Risk`/`Index`/`Tail`/`Dynamic`/`Rotation`) → ~15 candidats → collision-check `gh pr list --search` sur 12 stratégies → 0 collision atomique sur les 5 retenus (les matches historiques sur `1630-ML-RandomForest-post2801`/`1630-ML-FeatureEngineering-post2801`/`1630-RiskParity-aligned` réfèrent à des PRs MERGED pre-#1621 sur le même nom mais avec **catalogage pre-#2801** ; re-vérification post-#2801 confirme la robustesse méthodologique) → lecture backtests `Completed` via MCP `qc-mcp-lite__read_backtest`. Cohorte **3× 1630-ML-*-post2801 (XGBoost/RF/FeatureEng.)** + **1 Framework Composite DualMomentumNoTLT** + **1 1630-RiskParity-aligned** = 5 stratégies hors-bucket Vivant.

**Objectif** : (a) confirmer la **2ᵉ cohorte post2801** (3 stratégies ML 1630 universe) cohérente avec L712-L2 ★ ; (b) tester si **1630-ML-RandomForest** confirme la "near-immune" property documentée pre-#1621 (PR #3081 catalogue 0.68→0.70) ; (c) capter **Framework-DualMomentumNoTLT** composite framework sans bond hedge.

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `1630-ML-XGBoost-post2801` post2801-verification | `projects/1630-ML-XGBoost-post2801/` | ML XGBoost (post-issue #2801) | **Needs-improvement** | 2015–2024 (2879 j., 2285 ordres, projet 32958201, backtest `post2801-verification`) ; Sharpe 0.555 ; CAGR **14.51 %** ; MaxDD 40.40 % ; PSR 10.66 % ; NP $394,722 — **1630 universe** + ML XGBoost post-#2801 ; **2ᵉ cohorte post2801 confirmée** (cf L712-L2 ★) ; NI prometteur (Sharpe honnête 0.555 > 0.5, CAGR > 14 %) |
| `1630-ML-RandomForest-post2801` 1630-ML-RandomForest-post2801 verify | `projects/1630-ML-RandomForest-post2801/` | ML RandomForest (post-issue #2801) | **Needs-improvement** | 2015–2024 (2878 j., 1228 ordres, projet 32940005, backtest `1630-ML-RandomForest-post2801 verify`) ; **Sharpe 0.700 max cohorte** ; CAGR **20.59 %** ; MaxDD 40.90 % ; **PSR 18.40 % max cohorte c.713** ; **NP $753,586 record cohorte** — **1630 universe** + ML RandomForest post-#2801 ; **confirme "near-immune" property PR #3081 historique** (catalogue 0.68→0.70) ; **PSR 18.40 % > ESGF-XGBoost-Sectors c.712 (15.09 %)** = RF 1630 plus robuste que XGBoost ESGF Sectors |
| `1630-ML-FeatureEngineering-post2801` post2801-verification | `projects/1630-ML-FeatureEngineering-post2801/` | ML Feature Engineering (post-issue #2801) | **Needs-improvement** | 2015–2024 (2878 j., 1273 ordres, projet 32952140, backtest `1630-ML-FeatureEngineering-post2801`) ; Sharpe 0.654 ; CAGR **18.74 %** ; **MaxDD 28.10 % record cohorte c.713** ; PSR 15.14 % ; NP $615,281 — **1630 universe** + ML Feature Engineering post-#2801 ; **confirme "upward +15 %" PR #3104 historique** (catalogue 0.57→0.65) ; **MaxDD 28.10 % record** sur 3 stratégies ML 1630 (vs XGBoost 40.4 % / RF 40.9 %) → **feature engineering discipline = facteur discriminant du downside risk** |
| `Framework-DualMomentumNoTLT` Framework-DualMom-v1 | `projects/Framework-DualMomentumNoTLT/` | Composite Framework Dual Momentum no TLT | **Needs-improvement** | 2015–2024 (2516 j., 2245 ordres, projet 31244186, backtest `Framework-DualMom-v1`) ; Sharpe 0.634 ; CAGR **16.91 %** ; MaxDD 34.50 % ; PSR 14.27 % ; NP $318,072 — **composite framework** dual momentum **sans bond hedge TLT** (vs Framework-DualMomentum standard qui hedge en TLT) ; **NI prometteur** (Sharpe 0.634 > moyenne cohorte c.713) — variante L-series #1630 (cf leçon cross-tranche QC #1621 sur robustesse #1630) ; confirme L705-L1 ★★★ (composite framework > single-factor) |
| `1630-RiskParity-aligned` po2026-riskparity-1630-zerotrade-confirm | `projects/1630-RiskParity-aligned/` | Risk Parity aligned (post-#1630) | **Needs-improvement** | 2018–2024 (1761 j., 309 ordres, projet 33286158, backtest `po2026-riskparity-1630-zerotrade-confirm` créé 2026-07-11) ; Sharpe 0.361 ; CAGR 8.30 % ; **MaxDD 18.40 %** (record bas cohorte c.713, sous TrendFollowing AQR clone 15 % c.712) ; PSR 1.85 % ; NP $60,838 — **1630 universe** + Risk Parity aligned post-#1630 (reproduction juillet 2026 par po-2026) ; **MaxDD 18.40 % structurellement bas** confirme trend-following cross-sectionnel AQR-style (cf L712-L3 ★) ; PSR 1.85 % trop bas pour edge statistical mais drawdown record justifie watchlist pour sizing/levier |

**Synthèse cohorte** : **0 BROKEN + 5 NI + 0 edge significative** (PSR max 18.40 % `1630-ML-RandomForest-post2801` vs cap 50 %). **0 collision** avec PRs OPEN ou MERGED (les matches historiques référencent des catalogues pre-#1621 / pre-#2801).

**Leçons c.713** :
1. **L713-L1 ★ NEW** : **1630-ML-RandomForest-post2801 NI prometteur** (Sharpe 0.700 / PSR 18.40 % max cohorte c.713) > ESGF-XGBoost-Sectors c.712 (15.09 %) confirme **robustesse méthodologique RandomForest sur 1630 universe post-#2801** = **2ᵉ cohorte post2801 cohérente** après Markov/regime-switching c.712 ; leçon : **la méthodologie RF est plus robuste que XGBoost sur l'univers 1630 post-#2801** (Sharpe +26 %, MaxDD comparable, PSR +73 %).
2. **L713-L2 ★ NEW** : **1630-ML-FeatureEngineering-post2801 MaxDD 28.10 % record cohorte c.713** = sur 3 stratégies ML 1630 universe post-#2801 (XGBoost 40.4 % / RF 40.9 % / FeatureEng. 28.10 %), **la qualité du feature engineering discipline est le facteur discriminant du downside risk** ; FeatureEng. = -30 % MaxDD vs XGBoost brut sur même univers 1630 ; leçon : pour ML quant 1630, le ROI marginal se trouve dans le feature engineering discipliné (filtrage/normalisation/cross-validation rigoureuse), pas dans le choix de l'algo ML.
3. **L713-L3 ★ NEW** : **1630-RiskParity-aligned MaxDD 18.40 % mais PSR 1.85 %** confirme trend-following cross-sectionnel AQR-style (cf L712-L3 ★) ; **drawdown bas par construction (Risk Parity = allocation par volatilité inverse) mais edge statistical fragile** sans levier ; sizing optimal à calibrer (cohérent avec L712-L3 ★ TrendFollowing AQR sizing/levier > 1x).
4. **L713-L4 ★ NEW** : **3 stratégies 1630-ML-*-post2801** sur 5 candidats c.713 = **cohorte ML 1630 universe confirme leçon L709-L1 ★★★** : méthodologie ML seule sans composite weighting ne franchit PAS le cap PSR 50 % (max cohorte 18.40 % vs cap 50 %) ; pour atteindre edge statistical significative, le blending composite multi-factors reste nécessaire (cf Framework_Composite_TrendWeather tr.16 PSR 77.94 %).


#### Vérifié (tranche 23, backtests QC Cloud via MCP) (5)

**Scope** : scan patterns alternatifs (15 catégories : `MeanReversion` / `Carry` / `Breakout` / `Pairs` / `StatArb` / `Sector` / `Momentum` / `VolTarget` / `Quality` / `Alpha` / `Macro` / `TermStructure` / `Spread` / `Forex` / `Crypto` / `Equity`) avec **3 itérations de pivot R3** pour collision-check avant finalisation. **0 edge significative + 1 BROKEN empty + 4 Needs-improvement** (PSR max 23.81 % < cap 50 %).

| ProjetId | Nom projet | Sharpe | CAGR | MaxDD | PSR | NP | Verdict | Notes |
|----------|------------|--------|------|-------|-----|----|---------| ------|
| 30395392 | `Multi-Layer-EMA-Crypto` | 0.000 | 0.00 % | 0.00 % | N/A | $0 | **BROKEN empty** | **≠ 28433748 (Multi-Layer-EMA tr.4)** — vérif `read_project name` confirme homonymie QC Cloud distincte ; projet **vide/dépublié** (Sharpe/CAGR/NP tous 0 = pas de backtest valide) |
| 29809163 | `CausalEventAlpha` post-#2801 | 0.447 | 11.71 % | 38.80 % | 5.51 % | $225,496 | NI | **CONFIRMATION downgradé historique #3067** (MERGED 0.78→0.45 sur univers antérieur) → 0.447 freshly-discovered post-#2801 sur IBKR margin = robustesse méthodologique #2801 = post-leak fix effectif |
| 32730301 | `MacroFactorRotation-QC` post-#2801 | 0.731 | 22.63 % | 42.00 % | **23.81 %** | $720,114 | NI | **Max cohorte c.714** ; macro/factor = drawdown structurellement élevé (cohérent L712-L3 ★ TrendFollowing AQR + L713-L3 ★ RiskParity) ; **calibration sizing/levier** = facteur discriminant (cf L712-L3 ★) |
| 31932810 | `Equity Aroon Trend` (clone) | 0.227 | 6.41 % | 36.50 % | 0.81 % | $77,283 | NI | freshly-discovered, clone Equity Aroon Trend original (projectId différent) ; Aroon trend-following = profil médiocre post-#2801 |
| 31996999 | `Equity Aroon Trend 1` (clone) | 0.225 | 6.35 % | 37.70 % | 0.79 % | $76,351 | NI | freshly-discovered, second clone Equity Aroon Trend ; Sharpe/MaxDD quasi-identique au clone 31932810 (diff ~0.4 % = même moteur, projectId distinct = tests param variants) |

**Synthèse cohorte** : **0 edge + 1 BROKEN empty + 4 NI** (PSR max 23.81 % vs cap 50 %) ; **2 post-#2801 freshly-discovered** (CausalEventAlpha + MacroFactorRotation) confirment robustesse méthodologique #2801 ; **2 Equity Aroon Trend clones** = profil médiocre post-#2801 (Sharpe ~0.225, PSR < 1 %) ; **1 BROKEN empty Multi-Layer-EMA-Crypto** = homonymie QC Cloud distincte du tr.4 `Multi-Layer-EMA`.

#### Vérifié (tranche 24, statut réel Cloud-* — sync + backtests frais baseline #1630) (4)

**Scope** : dispatch ai-01 c.96 — statut réel (`alive` / `archived` / `superseded` / `broken` / `duplicate`) des 6 projets `Cloud-*` QC Cloud par compilation + backtest réels via MCP. Deux constats structurels d'abord :

1. **Divergence code cloud ↔ local** : les 6 projets QC Cloud (créés 2026-04-28) portaient encore le code **pré-alignement #1630** (`set_start_date(2014)`) alors que le repo local a l'alignement 2018-2025 depuis juin (commits #3893-#3907). Le code local (source de vérité) a été re-poussé vers les 4 projets du scope ; compile `BuildSuccess` 4/4.
2. **`read_project` renvoie `files: []`** pour ces projets alors qu'ils ne sont PAS vides — artefact de listing du champ `files` ; `read_file` (sans `name`) révèle le contenu réel. Ne jamais conclure « projet vide » sur `read_project.files` seul.

| ProjetId | Nom projet | Param run | Ordres | Sharpe | CAGR | MaxDD | PSR | NP | Verdict | Notes |
|----------|------------|-----------|--------|--------|------|-------|-----|----|---------|-------|
| 30822855 | `Cloud-MeanReversion-Sectors` v1 | `version=v1` | 273 | **0.067** | 3.79 % | 41.70 % | 0.147 % | $35 082 | NI / near-cash | run frais 2026-08-14 `MeanReversion-v1-2018-2025-aligned-status-2026-08`, 1761 j. — **corrige la ligne tranche 4** qui citait le run v3 d'avril sur code stale 2014 |
| 30820857 | `Cloud-RiskParity-Composite` | `rebalance_days=30` (défaut) | 297 | **0.027** | 3.50 % | 24.40 % | 0.094 % | $17 435 | NI (plafond structurel confirmé) | run frais 2026-08-14 `RiskParity-Composite-2018-2025-aligned-status-2026-08`, 1761 j. — bien sous le 0.399 de la figure #5753 (univers/code différent) |
| 30821748 | `Cloud-SectorRotation-Momentum` | — | 345 | **−0.029** | 2.12 % | 42.70 % | 0.050 % | $12 369 | **BROKEN (confirmé)** | run frais 2026-08-14 `SectorRotation-Momentum-2018-2025-aligned-status-2026-08`, 1761 j. — **reproduit exactement** le run précédent du catalogue (Sharpe/CAGR/MaxDD/NP identiques) |
| 30823587 | `Cloud-VolTargeting` v1 | `version=1` | 54 | **0.207** | 6.72 % | 38.20 % | 0.557 % | $32 854 | NI / near-cash (confirmé) | run frais 2026-08-14 `VolTargeting-v1-2018-2025-aligned-status-2026-08`, 1761 j. — **reproduit exactement** le run précédent (le catalogue tr.7 avait déjà la bonne période) |

**Statuts réels établis** : les 4 projets `Cloud-*` locaux = **alive, compilable, backtestable** (BuildSuccess + run Completed chacun) — aucun archived/superseded/duplicate/broken-côté-outil ; `Cloud-SectorRotation-Momentum` = BROKEN **côté edge** (Sharpe négatif, confirmé sur run frais baseline #1630). Les 2 projets cloud-only restants (`Cloud-RegimeSwitching` 30823208, `Cloud-DualMomentum-NoTLT` 30822524) = doublons cloud des projets locaux sans préfixe (`RegimeSwitching`, `DualMomentumNoTLT`, déjà catalogués) — laissés hors du présent scope (tranche bornée).

**Ledger mapping cloud → local (décision ai-01 c.96, 2026-08-14 : doublons CONSERVÉS — l'historique de runs cloud est la pièce à conviction de #1621, suppression irreversible au bénéfice nul)** :

```
30823208  Cloud-RegimeSwitching       -> projects/RegimeSwitching        (doublon cloud, conservé)
30822524  Cloud-DualMomentum-NoTLT    -> projects/DualMomentumNoTLT      (doublon cloud, conservé)
```

**Synthèse cohorte** : **0 edge + 1 BROKEN + 3 NI** (PSR max 0.557 % ≪ cap 50 %) ; la correction clé de la tranche = **MeanReversion-Sectors** : la métrique 0.278/14.7 % citée depuis juillet provenait du run **v3** sur code **stale 2014-2025** — sur la baseline #1630 alignée, v1 tombe à 0.067 (l'alignement retire les années fastes 2014-2017). Leçon de méthode (pour toute relecture de tranche 4) : **toujours étiqueter variante + période d'un run cité** — deux runs du même projet peuvent différer d'un facteur 4 en Sharpe sans que rien ne le signale dans le catalogue.

**Leçons c.714** :

1. **L714-L1 ★ NEW** : **`Multi-Layer-EMA-Crypto` (30395392) ≠ `Multi-Layer-EMA` (28433748 tr.4)** — homonymie QC Cloud piège à collision R3. **TOUJOURS vérifier le projetId par `read_project name`** (ou backtest universe) **AVANT de claim** sur la base de similarité de nom. Le pattern "EMA + Layer" porte un risque de collision cross-tranches non-négligeable : un même auteur peut avoir cloné/re-publié plusieurs variantes sous nom proche. **Garde-fou** : (a) `list_projects name_contains: "<pattern>"` AVANT scan ; (b) pour chaque résultat, `read_project name` + diff universe (assets / période / class) ; (c) si universe différent, c'est **un autre projet** même si le nom suggère une famille commune.

2. **L714-L2 ★ NEW** : **`CausalEventAlpha` freshly-discovered Sharpe 0.447 (post-#2801) CONFIRME le downgradé historique #3067** (MERGED 0.78→0.45 sur univers antérieur). Triade temporelle : original ~0.78 (pré-leak) → MERGED 0.45 (fix leak partiel) → 0.447 post-#2801 (robustesse méthodologique fixée) — **#2801 = fix leak méthodologique effectif** sur cohorte ex-edge. CausalEventAlpha reste NI, mais l'écart 0.78→0.45 est désormais **expliqué** méthodologiquement (c'est la perte d'edge due au leak, pas une dégradation spontanée). ROI pédagogique #2801 confirmé sur 3 cohortes (Markov + switching + CausalEventAlpha).

3. **L714-L3 ★ NEW** : **`MacroFactorRotation-QC` MaxDD 42.00 %** confirme L712-L3 ★ (TrendFollowing AQR MaxDD 15 % record) et L713-L3 ★ (RiskParity MaxDD 18.40 %) — **les méthodologies macro/factor/cross-sectional = drawdown structurellement élevés sans sizing/levier calibration**. La triade TrendFollowing-RiskParity-MacroFactor dessine un pattern net : CAGR modeste (7-23 %) mais **MaxDD systématiquement > 40 %** sans levier explicite. **Calibration sizing/levier** = facteur discriminant du downside risk sur ces familles. Cohérent avec L712-L3 ★ : « TrendFollowing AQR drawdown 15 % record = sizing/levier > 1x à calibrer ».

4. **L714-L4 ★ NEW** : **Pivot R3 triple succès c.714** = **3 itérations de scan/collision** pour finaliser 5 stratégies :
   - Itération 1 (MeanReversion / Carry / Breakout / Pairs / StatArb / Momentum / Options) : **4/5 collisions** (BlackLitterman tr.3, LeveragedETFMomentum tr.6, Cloud-MeanReversion tr.4, PCA-StatArb tr.15).
   - Itération 2 (VolTarget / Defensive / MultiFactor / ESG / Quality) : **3/5 collisions** (tr.2 / tr.6 #1621) + 2 catalogues historiques.
   - Itération 3 (Crypto / Forex / Futures / Equity) : **1 collision** (composite-c2-equityfactor historique) + 1 (EMA-Cross-Crypto tr.17).
   - Itération 4 (Alpha / Macro / TermStructure / Spread) : **2 collisions** (CausalEventAlpha tr.5, MacroFactorRotation tr.4) — MAIS ces 2 stratégies sont retenues après **relecture post-collision** : `CausalEventAlpha` = relecture post-#2801, `MacroFactorRotation-QC` = relecture post-#2801 (projectId distincts des collisions historiques). Le pivot final = 5 freshly-discovered + 2 relectures post-#2801 = **7 stratégies candidates** dont 5 retenues.

   **Leçon opérationnelle** : **QC Cloud pool s'épuise post-22 tranches** (227 projets, ~80 % catalogués #1621 + historique). Les 3 itérations R3 successives démontrent un **ROI marginal décroissant** : la moisson de stratégies **edge-statistiquement-significatives** (PSR > 50 %) devient structurellement plus rare au-delà de tr.16 (Framework_Composite_TrendWeather PSR 77.94 %). **Implication pour tr.24+** : **cadence réduite** (1 tranche / 2 cycles) **OU pivot méthodologique** vers audit cross-tranches / consolidation leçons / agent propre (recherche QC, analyse robustesse, mise à jour catalogue).

**Scan méthodologie pivot (anti-collision R3 triple)** :

| Itération | Patterns scannés | Collisions détectées | Stratégies retenues |
|-----------|------------------|----------------------|---------------------|
| **1** | MeanReversion / Carry / Breakout / Pairs / StatArb / Momentum / Options | BlackLitterman tr.3, LeveragedETFMomentum tr.6, Cloud-MeanReversion tr.4, PCA-StatArb tr.15 | 0/5 retenu (4 collisions, 1 BROKEN) |
| **2** | VolTarget / Defensive / MultiFactor / ESG / Quality | tr.2 #1621 (2 collisions catalogues) + tr.6 (2 collisions catalogues) | 0/5 retenu |
| **3** | Crypto / Forex / Futures / Equity | composite-c2-equityfactor historique, EMA-Cross-Crypto tr.17 | 0/4 retenu post-collision ; **Multi-Layer-EMA-Crypto freshly-discovered BROKEN empty** retenu |
| **4** | Alpha / Macro / TermStructure / Spread | CausalEventAlpha tr.5, MacroFactorRotation tr.4 (relecture post-#2801 OK) | **5 retenus** : Multi-Layer-EMA-Crypto (30395392) + CausalEventAlpha post-#2801 (29809163) + MacroFactorRotation-QC post-#2801 (32730301) + 2 Equity Aroon Trend clones (31932810 + 31996999) |

**R3 collision-check verification (5 stratégies c.714)** : `gh pr list --search "<keyword>"` pour `Multi-Layer-EMA-Crypto` / `CausalEventAlpha` / `MacroFactorRotation` / `Equity Aroon Trend` → **0 collision atomique active** post-pivot. Chaque stratégie = projetId QC Cloud distinct, vérifié par `read_project name` (homonymie gérée par L714-L1 ★).

**Atomicité tranche 23** : 1 commit / 1 file (`docs/qc/qc-strategies-status.md`) / +N/-0 ; cohorte = 5 freshly-discovered QC Cloud via MCP `qc-mcp-lite` (lecture seule `list_projects name_contains:` + `list_backtests` + `read_backtest` + `read_project name`). **0 code de production touché** (cf CLAUDE.md section G.4 / one-subject-per-PR : 1 PR = 1 sujet vérifiable).

**End-to-end verification** : 5/5 backtests lus via `mcp__qc-mcp-lite__read_backtest` → Sharpe/CAGR/MaxDD/PSR/NP reportés dans le tableau ci-dessus ; 5/5 projets vérifiés via `mcp__qc-mcp-lite__read_project name` → univers + période confirmés ; cohérence cross-tranche respectée (cf L710-L1 ★★★ / L712-L2 ★ / L713-L1 ★).

**Limites honnêtement documentées** : (a) **1 BROKEN empty** = `Multi-Layer-EMA-Crypto` (30395392) = backtest sans données (Sharpe/CAGR/NP tous 0 = projet dépublié/perdu) — *pas un signal de qualité de la stratégie* mais un **statut runtime** du projet QC Cloud ; (b) **2 Equity Aroon Trend clones** = Sharpe/MaxDD quasi-identiques (diff ~0.4 %) = même moteur testé sur variants param différents ; (c) **0 edge significative** sur 5 stratégies = continuation de la tendance cross-tranches post-tr.16 ; (d) **QC Cloud pool s'épuise** post-22 tranches — pivot méthodologique recommandé pour tr.24+ (L714-L4 ★).

**Conformité règles** : C596-L1 ★★ R3 PRE-FLIGHT ✓ (post-push scan 0 collision) ; L677-L4 ★★ body PR HORS worktree ✓ (`/tmp/c714_pr_body.md` supprimé après `gh pr create`) ; L143 secrets hygiene ✓ (0 literal inline, scan pre-commit hygiene = clean) ; C.1 notebook ✓ (0 notebook dans cette tranche) ; C.2 outputs ✓ (N/A — fichier markdown) ; L1502 anti-dédouble peer PR ✓ (périmètre QC #1621 tr.23 strictement) ; L710-L1 ★★★ skip baselines pédagogiques ✓ (cohorte c.714 = freshly-discovered + relectures post-#2801, **aucune QCPxx-Cell* baseline pédagogique** conformément à L712-L1 ★ nuance).

**Liens** : Issue #1621 (EPIC QC Consolidation) ; PR #7370 (tr.22 MERGED-pending) ; PRs historique tr.3-#7340 (tr.15 MERGED) ; PRs tr.7-16 (MERGED) ; PRs tr.17-22 (OPEN) ; leçons L709-L1 ★★★ / L710-L1 ★★★ / L711-L1 ★ / L712-L1 ★ / L712-L2 ★ / L712-L3 ★ / L713-L1 ★ / L713-L2 ★ / L713-L3 ★ / L714-L1 ★ / L714-L2 ★ / L714-L3 ★ / L714-L4 ★.

---

#### Vérifié (tranche 25, statut réel ML-* — création cloud + backtests frais baseline #1630) (4)

> **Scope tranche 25 (#1621)** : les 4 stratégies ML classiques du bucket Vivant **jamais backtestées**
> (`ML-Classification`, `ML-Regression`, `ML-Ensemble`, `ML-DeepLearning` — distinctes des ML
> couvertes tr.7/tr.17 : FeatureEng./Reversion-Trending/SVM/Trend-Scanning/FX-Wavelet). **Aucune
> n'existait sur QC Cloud** → 4 projets créés (`*-status25` : 35167230/35167238/35167240/35167247),
> code local poussé **après alignement #1630** (les 6 ML-* locaux portaient encore 2015→2024/25 —
> ratés par le sweep de juin), compile **BuildSuccess 4/4**, backtest frais chacun (**1761 j. tradeable**,
> fenêtre 2018-2025 confirmée). Constat concomitant : **les étiquettes de période de la tranche 7
> étaient erronées** (« 2018–2025 » alors que le code backtesté portait 2015→2024) — corrigées
> dans le tableau tr.7 ci-dessus.

| Stratégie | Projet / run | Ordres | Sharpe | CAGR | MaxDD | PSR | NP | Verdict |
|---|---|---|---|---|---|---|---|---|
| `ML-Classification` | 35167230 / `classification-2018-2025-status25` | 0 | — | — | — | — | $0 | **BROKEN (code)** — Runtime Error au 1ᵉʳ Initialize : `module 'joblib' has no attribute 'loads'` (main.py:63). Le loader ObjectStore est cassé depuis l'origine : joblib expose `load(file)`, pas `loads(bytes)`. Compile OK (erreur d'exécution uniquement) ; l'artefact `classification_model` existe au niveau org (l'erreur survient au décodage, pas au ContainsKey). Fix hors scope d'une tranche de statut : `joblib.load(BytesIO(model_bytes))`. |
| `ML-Regression` | 35167238 / `regression-2018-2025-status25` | 9754 | **−0.125** | 1.47 % | 27.0 % | 0.017 % | $10 763 | **BROKEN** — Sharpe négatif, PSR quasi nul. Ridge weekly-retrain sur 20 tickers, rebalance quotidien : 9754 ordres = friction IBKR érode tout ; NP +10.8 % brut sur 7 ans < frais cumulés vs buy-hold SPY. |
| `ML-Ensemble` | 35167240 / `ensemble-2018-2025-status25` | 6659 | **0.724** | 18.80 % | 39.4 % | 14.41 % | $234 454 | **Needs-improvement** — meilleur Sharpe du ML classique vérifié (Ridge+RF+GB, 30 tickers, weekly). Mais PSR 14.4 % = edge non significative, MaxDD 39.4 % élevé ; cohérent avec le pattern « Sharpe décent, PSR ne suit pas » tr.7-17. |
| `ML-DeepLearning` | 35167247 / `deeplearning-2018-2025-status25` | 707 | **−0.028** | 3.22 % | 16.1 % | 0.050 % | $24 862 | **BROKEN** — LSTM 1×32 sur 3 ETF (SPY/QQQ/IWM), retrain mensuel : ne bat pas le cash. MaxDD modéré (16.1 %) parce que quasi-flat, pas par gestion du risque. Cohérent avec `LSTM-Forecasting` (MLPClassifier) et `DL-LSTM` tr.10 : le LSTM simple mono-couche ne produit pas d'edge. |

**Statuts réels** : 4/4 alive côté outil (compilables — les 4 `main.py` locaux sains, 3/4 exécutables de bout en bout) ; côté edge : 3 BROKEN + 1 Needs-improvement, **0 edge significative** (PSR max 14.41 %). Alignement #1630 appliqué aux 4 du scope (2018→2025) — **les 2 ML restants (FeatureEngineering, Reversion-Trending) portaient aussi 2015→2024 et restent à aligner** (candidat tranche 26).

**Leçons tr.25** :

1. **L716-L1 ★ NEW — baseline déclarée ≠ baseline vérifiée** : le sweep d'alignement #1630 de juin (PR #3893-#3907 et suivants) a aligné les périodes de ~52 stratégies mais **a raté les 6 projets ML-\* locaux** — ils n'ont jamais été touchés (créés 2026-04-08 avec `2015→2024`, jamais re-balayés). Une baseline « cross-stratégie » ne se suppose pas : se vérifie par `grep SetStartDate` par famille. Corollaire : les métriques tr.7 étiquetées « 2018–2025 » décrivaient du code 2015-2024 — corrigées ici.
2. **L716-L2 ★ NEW — 3 backtests frais sur projets créés = preuve de réplicabilité du pipeline statut** : create_project + update_file_contents + create_compile + create_backtest chaîne proprement (contrairement au mythe « impossible de créer depuis MCP ») ; seul point d'attention : `create_file` échoue sur projet neuf (`main.py` template pré-existant) → `update_file_contents` d'emblée. Et la contrainte réelle = **nodes de calcul** (2 backtests concurrents max sur l'org FREE-tier) : sérialiser les lancements, poller entre chaque.

**Conformité** : tranche annoncée sur le dashboard avant le 1ᵉʳ appel (rate-limit 10/min fleet) ; ~45 appels étalés sur 25 min ; métriques lues firsthand via `read_backtest`, aucune valeur recopiée ; 0 notebook touché ; 4 `main.py` alignés = diffs 2 lignes chacun (dates uniquement, byte-identique ailleurs).

**Liens** : Issue #1621 (EPIC, tranches 24-25) ; PR #10896 (tranche 24 Cloud-*, même fichier — merge séquentiel + update-branch) ; leçons L714-L4 ★ (cadence réduite respectée : 1 tranche / cycle).

---

#### Vérifié (tranche 26, statut réel des 2 derniers ML-* locaux — création cloud + backtests frais baseline #1630) (2)

**Scope** : achèvement du sweep ML-* du dispatch ai-01 c.96 pt.3 — les 2 derniers projets ML locaux **jamais backtestés sur QC Cloud** (`ML-FeatureEngineering`, `ML-Reversion-Trending`). Même constat structurel que la tr.25 (L716-L1 ★) : les 2 portaient encore `SetStartDate(2015, 1, 1)` / `set_end_date(2024, 12, 31)` — ratés par le sweep #1630 de juin. Projets cloud créés (`ML-*-status26`), code local aligné 2018-01-01 → 2025-01-01 puis poussé, compiles `BuildSuccess` 2/2, backtests frais 2/2 (1761 j. chacun = fenêtre #1630 confirmée, backtests sérialisés — org = 2 nodes de calcul).

| Stratégie (projet cloud tr.26) | Ordres | Sharpe | CAGR | MaxDD | PSR | NP | Verdict |
|---|---|---|---|---|---|---|---|
| `ML-FeatureEngineering` (35168129) | 811 | **0.482** | 16.07 % | 42.6 % | 3.921 % | $188,439 | **Needs-improvement** — run frais 2026-08-14 `FeatureEngineering-2018-2025-aligned-status26`, 1761 j. — 0.656 tr.7 (2015-2024) → 0.482 aligné : l'alignement retire ~0.17 Sharpe ; PSR 3.9 % = edge nulle ; MaxDD 42.6 % (vs 28.1 % du jumeau `1630-ML-FeatureEngineering-post2801` tr.22 sur univers 1630-étendu) |
| `ML-Reversion-Trending` (35168132) | 3210 | **0.495** | 9.85 % | 20.7 % | 4.573 % | $95,691 | **Needs-improvement** — run frais 2026-08-14 `ReversionTrending-2018-2025-aligned-status26`, 1761 j. — 0.571 tr.7 (2015-2024) → 0.495 aligné : l'alignement retire ~0.08 Sharpe ; PSR 4.6 % = edge nulle ; MaxDD 20.7 % contenu (5 actifs ETF défensifs SPY/TLT/GLD/IWM/EFA) |

**Correction tranche 7 (suite tr.25)** : les lignes tr.7 de ces 2 stratégies étiquetaient leurs métriques « 2018–2025 (2830 j.) » alors que le code backtesté portait 2015→2024 (2830 j. = fenêtre 2015-2024, ≠ 1761 j. d'une vraie 2018-2025) — étiquettes corrigées en « 2015–2024 » (tr.25 les avait déjà corrigées ; la tr.26 confirme et ajoute les runs frais) ; les métriques tr.7 restent celles du run d'origine.

**Leçons c.716 (suite)** :

- **L716-L1 ★ (extension)** : le sweep #1630 a raté **les 6 ML-\* locaux** au total (tr.25 : 4, tr.26 : 2 — 6/6 alignés à présent). La convention snake_case de `ML-Reversion-Trending` (`set_start_date` au lieu de `SetStartDate`) fait que même un grep casse-exacte le rate : **balayer par famille de répertoires (`projects/ML-*/`)**, pas par motif de casse d'API.
- **L716-L2 (rappel)** : projet cloud frais = template `main.py` pré-créé → `create_file` échoue, `update_file_contents` direct.

---

#### Vivant (best-guess, non vérifié) (91 physiques = 12 true + 79 promues tr7-25 ; voir synthèse)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `BTC-ML` | `projects/BTC-ML/` | ML Crypto | **Vérifié tranche 11** | main.py: class MyEnhancedCryptoMlAlgorithm(QCAlgorithm) + research.ipynb + quantbook.ipynb — voir section tranche 11 |
| `CSharp-BTC-EMA-Cross` | `projects/CSharp-BTC-EMA-Cross/` | Trend EMA (C#) | Vivant | Main.cs: class BtcEmaCrossDaily1Algorithm : QCAlgorithm + research_robustness.ipynb |
| `CSharp-BTC-MACD-ADX` | `projects/CSharp-BTC-MACD-ADX/` | Trend MACD/ADX (C#) | **Vérifié tranche 11** | Main.cs: class BtcMacdAdxDaily1Algorithm : QCAlgorithm + Research.ipynb + RESEARCH_FINDINGS.md — voir section tranche 11 |
| `CSharp-CTG-Momentum` | `projects/CSharp-CTG-Momentum/` | Momentum (C#, multi-fichiers) | Vivant | Main.cs: class StocksOnTheMoveAlgorithm : QCAlgorithm + 4 indicateurs .cs + research_robustness.ipynb |
| `Chronos-Foundation-Forecasting` | `projects/Chronos-Foundation-Forecasting/` | DL (Chronos foundation) | **Vérifié tranche 14** | main.py: class ChronosFoundationForecasting(QCAlgorithm) + research.ipynb — voir section tranche 14 |
| `Clustering-Fundamentals-ML` | `projects/Clustering-Fundamentals-ML/` | ML non supervisé | **Vérifié tranche 13** | main.py: class ClusteringFundamentalsAlgorithm(QCAlgorithm) — voir section tranche 13 |
| `Crypto-LSTM-Prediction` | `projects/Crypto-LSTM-Prediction/` | DL (LSTM) Crypto | **Vérifié tranche 10** | main.py: class CryptoLSTMPredictionAlgorithm(QCAlgorithm) + research.ipynb — voir section tranche 10 |
| `Crypto-MultiCanal` | `projects/Crypto-MultiCanal/` | Crypto multi-signal | **Vérifié tranche 11** | main.py: class CryptoMultiChannelAlgorithm(QCAlgorithm) + research.ipynb + quantbook.ipynb — voir section tranche 11 |
| `DL-LSTM` | `projects/DL-LSTM/` | DL (LSTM) | **Vérifié tranche 10** | main.py: class LSTMModel(nn.Module) + algo QCAlgorithm + quantbook.ipynb — voir section tranche 10 |
| `Dividend-Harvesting-ML` | `projects/Dividend-Harvesting-ML/` | ML dividendes | **Vérifié tranche 13** | main.py: class DividendHarvestingAlgorithm(QCAlgorithm) — voir section tranche 13 |
| `EMA-Cross-Alpha` | `projects/EMA-Cross-Alpha/` | Trend EMA | Vivant | main.py: class EMACrossAlphaAlgorithm(QCAlgorithm) + quantbook.ipynb |
| `EMA-Cross-Stocks` | `projects/EMA-Cross-Stocks/` | Trend EMA | **Vérifié tranche 16** | main.py: class EMACrossStocksAlgorithm(QCAlgorithm) + quantbook.ipynb — voir section tranche 16 |
| `Framework_Composite_EMATrend` | `projects/Framework_Composite_EMATrend/` | Composite | **Vérifié tranche 9** | main.py: class FrameworkCompositeEMATrend(QCAlgorithm) + quantbook.ipynb — voir section tranche 9 |
| `Framework_Composite_MomentumRegime` | `projects/Framework_Composite_MomentumRegime/` | Composite | **Vérifié tranche 16** | main.py: class FrameworkCompositeMomentumRegime(QCAlgorithm) + quantbook.ipynb — voir section tranche 16 |
| `Framework_Composite_TrendWeather` | `projects/Framework_Composite_TrendWeather/` | Composite | **Vérifié tranche 16** | main.py: class FrameworkCompositeStrategy(QCAlgorithm) + quantbook.ipynb — voir section tranche 16 |
| `Gaussian-Direction-Classifier` | `projects/Gaussian-Direction-Classifier/` | ML classification | **Vérifié tranche 13** | main.py: class GaussianDirectionClassifier(QCAlgorithm) + research.ipynb — voir section tranche 13 |
| `HAR-RV-J-Kelly` | `projects/HAR-RV-J-Kelly/` | Volatility / Kelly | **Vérifié tranche 8** | main.py: class HarrvjKellyAlgorithm(QCAlgorithm) — voir section tranche 8 |
| `LSTM-Forecasting` | `projects/LSTM-Forecasting/` | DL (LSTM) | **Vérifié tranche 10** | main.py: class LSTMForecasting(QCAlgorithm) + research.ipynb — voir section tranche 10 |
| `ML-Chronos-Foundation` | `projects/ML-Chronos-Foundation/` | DL (Chronos) | **Vérifié tranche 14** | main.py: class ChronosFoundationAlgorithm(QCAlgorithm) — voir section tranche 14 |
| `ML-Classification` | `projects/ML-Classification/` | ML supervisé | **Vérifié tranche 25 — BROKEN (code)** | voir tableau Vérifié (tranche 25) ci-dessous — Runtime Error `joblib.loads` au Initialize (loader ObjectStore cassé depuis l'origine) |
| `ML-DeepLearning` | `projects/ML-DeepLearning/` | DL | **Vérifié tranche 25 — BROKEN** | voir tableau Vérifié (tranche 25) ci-dessous — Sharpe −0.028 PSR 0.05 % (backtest frais 2018-2025) |
| `ML-EnhancedPairs` | `projects/ML-EnhancedPairs/` | ML pairs | Vivant | main.py: class MLEnhancedPairsAlgorithm(QCAlgorithm) + quantbook.ipynb |
| `ML-Ensemble` | `projects/ML-Ensemble/` | ML ensemble | **Vérifié tranche 25** | voir tableau Vérifié (tranche 25) ci-dessous — Promu Needs-improvement (Sharpe 0.724, PSR 14.4 %) |
| `ML-FX-SVM-Wavelet` | `projects/ML-FX-SVM-Wavelet/` | ML FX (SVM/Wavelet) | **Vérifié tranche 7** | voir tableau Vérifié (tranche 7) ci-dessus — Promu Needs-improvement (PSR 0.39 %) |
| `ML-FeatureEngineering` | `projects/ML-FeatureEngineering/` | ML features | **Vérifié tranche 26** | voir tableau Vérifié (tranche 7) ci-dessus — Promu Needs-improvement (PSR 14.79 %, période corrigée tr.26) ; re-backtest aligné #1630 en tranche 26 |
| `ML-FinBERT-Sentiment` | `projects/ML-FinBERT-Sentiment/` | ML NLP (FinBERT) | **Vérifié tranche 12** | main.py: class FinBERTSentimentAlgorithm(QCAlgorithm) + research.ipynb — voir section tranche 12 |
| `ML-Gaussian-Classifier` | `projects/ML-Gaussian-Classifier/` | ML classification | **Vérifié tranche 13** | main.py: class GaussianNaiveBayesAlgorithm(QCAlgorithm) — voir section tranche 13 |
| `ML-HeadShoulders-CNN` | `projects/ML-HeadShoulders-CNN/` | DL (CNN patterns) | Vivant | main.py: class CNNPatternDetectionAlgorithm(QCAlgorithm) + research.ipynb |
| `ML-LLM-Summarization` | `projects/ML-LLM-Summarization/` | ML NLP (LLM) | **Vérifié tranche 12** | main.py: class LLMNewsSentimentAlgorithm(QCAlgorithm) — voir section tranche 12 |
| `ML-Regression` | `projects/ML-Regression/` | ML supervisé | **Vérifié tranche 25 — BROKEN** | voir tableau Vérifié (tranche 25) ci-dessous — Sharpe −0.125 PSR 0.017 % (backtest frais 2018-2025) |
| `ML-Reversion-Trending` | `projects/ML-Reversion-Trending/` | ML classification | **Vérifié tranche 26** | voir tableau Vérifié (tranche 7) ci-dessus — Promu Needs-improvement (PSR 25.06 %, période corrigée tr.26) ; re-backtest aligné #1630 en tranche 26 |
| `ML-SVM` | `projects/ML-SVM/` | ML supervisé (SVM) | Vivant | main.py: class MLSVMAlgorithm(QCAlgorithm) + quantbook.ipynb |
| `ML-Temporal-CNN` | `projects/ML-Temporal-CNN/` | DL (Temporal CNN) | **Vérifié tranche 10** | main.py: class TemporalCNNPredictionAlgorithm(QCAlgorithm) — voir section tranche 10 |
| `ML-TextClassification` | `projects/ML-TextClassification/` | ML NLP | Vivant | main.py: class MLTextClassificationAlgorithm(QCAlgorithm) + quantbook.ipynb |
| `ML-Trend-Scanning` | `projects/ML-Trend-Scanning/` | ML trend | **Vérifié tranche 7** | voir tableau Vérifié (tranche 7) ci-dessus — Promu Needs-improvement (PSR 7.84 %) |
| `Option-Wheel` | `projects/Option-Wheel/` | Options (wheel) | **Vérifié tranche 9** | main.py: class WheelStrategyAlgorithm(QCAlgorithm) + research.ipynb + quantbook.ipynb — voir section tranche 9 |
| `Options-VGT` | `projects/Options-VGT/` | Options (covered call) | **Vérifié tranche 15** | main.py: class GainStrategy(QCAlgorithm) + quantbook.ipynb — voir section tranche 15 (Needs-improvement, Sharpe 0.507 / PSR 17.51 %) |
| `OptionsIncome` | `projects/OptionsIncome/` | Options (covered call) | **Vérifié tranche 9** | main.py: class CoveredCallStrategy(QCAlgorithm) + research.ipynb + quantbook.ipynb — voir section tranche 9 |
| `PCA-StatArbitrage` | `projects/PCA-StatArbitrage/` | StatArb (PCA) | **Vérifié tranche 15** | main.py: class PCAStatArbitrageAlgorithm(QCAlgorithm) — voir section tranche 15 (Needs-improvement, Sharpe 0.165 / PSR 0.18 %) |
| `Portfolio-IBKR-Coinbase-Hybrid` | `projects/Portfolio-IBKR-Coinbase-Hybrid/` | Hybrid crypto/broker | Vivant | main.py: class PortfolioHybridIBKRCoinbase(QCAlgorithm) (helpers FeeModel/Slippage en amont) + research.ipynb + quantbook.ipynb |
| `Positive-Negative-Splits-ML` | `projects/Positive-Negative-Splits-ML/` | ML (stock splits) | Vivant | main.py: class SplitEventsAlgorithm(QCAlgorithm) |
| `PuppiesOfTheDow-QC` | `projects/PuppiesOfTheDow-QC/` | Value (Dogs of the Dow) | **Vérifié tranche 16** | main.py: class PuppiesOfTheDow(QCAlgorithm) — voir section tranche 16 |
| `RL-DQN-Trading` | `projects/RL-DQN-Trading/` | RL (DQN) | **Vérifié tranche 12** | main.py: class ReinforcementLearningTrading(QCAlgorithm) — voir section tranche 12 |
| `RegimeSwitching` | `projects/RegimeSwitching/` | Régime | **Vérifié tranche 8** | main.py: class RegimeSwitching(QCAlgorithm) + quantbook.ipynb — voir section tranche 8 |
| `SVM-Wavelet-Forecasting` | `projects/SVM-Wavelet-Forecasting/` | ML (SVM/Wavelet) | Vivant | main.py: class SVMWaveletForecasting(QCAlgorithm) |
| `Sector-ML-Classification` | `projects/Sector-ML-Classification/` | ML sectoriel | **Vérifié tranche 7** | voir tableau Vérifié (tranche 7) ci-dessus — Promu Needs-improvement (PSR 29.34 %, période ESGF 2024–2026 585 j.) |
| `Stoploss-Volatility-ML` | `projects/Stoploss-Volatility-ML/` | ML risk | Vivant | main.py: class StoplossVolatilityMLAlgorithm(QCAlgorithm) + research.ipynb |
| `Temporal-CNN-Prediction` | `projects/Temporal-CNN-Prediction/` | DL (Temporal CNN) | **Vérifié tranche 10** | main.py: class TemporalCNNPrediction(QCAlgorithm) + research.ipynb — voir section tranche 10 |
| `TermStructureCommodities-QC` | `projects/TermStructureCommodities-QC/` | Commodities (term structure) | **Vérifié tranche 15** | main.py: class CommodityTermStructureAlgorithm(QCAlgorithm) — voir section tranche 15 (BROKEN, Sharpe -0.244 / PSR 0.007 %) |
| `Trend-Following` | `projects/Trend-Following/` | Trend (AQR) | **Vérifié tranche 15** | main.py: class TrendFollowingAQR(QCAlgorithm) + quantbook.ipynb — voir section tranche 15 (Needs-improvement, Sharpe 0.407 / PSR 8.68 %) |
| `TrendFilteredMeanReversion` | `projects/TrendFilteredMeanReversion/` | Mean reversion filtré | Vivant | main.py: class TrendFilteredMeanReversion(QCAlgorithm) + research.ipynb |
| `TrendStocks-Alpha` | `projects/TrendStocks-Alpha/` | Trend actions | **Vérifié tranche 8** | main.py: class TrendStocksAlphaAlgorithm(QCAlgorithm) + quantbook.ipynb — voir section tranche 8 |
| `TrendStocksLite` | `projects/TrendStocksLite/` | Trend actions (lite) | **Vérifié tranche 8** | main.py: class TrendStocksLite(QCAlgorithm) + research.ipynb — voir section tranche 8 |
| `VIX-TermStructure` | `projects/VIX-TermStructure/` | Vol (VIX term) | **Vérifié tranche 8** | main.py: class VIXTermStructureStrategy(QCAlgorithm) + research.ipynb + quantbook.ipynb — voir section tranche 8 (BROKEN) |
| `VolTarget-Momentum` | `projects/VolTarget-Momentum/` | Vol / Momentum | **Vérifié tranche 9** | main.py: class VolTargetMomentum(QCAlgorithm) — voir section tranche 9 |
| `composite-c1-multiasset` | `projects/composite-c1-multiasset/` | Composite multi-actifs | **Vérifié tranche 9** | main.py: class CompositeC1MultiAssetRotation(QCAlgorithm) — voir section tranche 9 |

#### Vivant (README revendique vérifié) (0)

> Bucket désormais vide : `Multi-Layer-EMA` (dernier entrant) promu en tranche 4 — sa revendication
> README « Verified on QC Cloud (project 28433748) » **confirmée firsthand** via MCP qc-mcp, mais
> reclassée Needs-improvement (Sharpe 0.798, MaxDD crypto 57 %, PSR 23.9 % — edge non significative).

#### Recherche uniquement (pas d'algo déployable) (5)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `Alpha-Correlation-Analysis` | `projects/Alpha-Correlation-Analysis/` | Recherche (analytique) | Recherche | README : « Research (analytical notebook, no trading algorithm) » + quantbook.ipynb seul |
| `Ensemble-DLinear-TFT` | `projects/Ensemble-DLinear-TFT/` | Recherche DL | Recherche | pas de main.py ; research.ipynb + _generate_research.py |
| `GraphSAGE-MultiAsset-Ranking` | `projects/GraphSAGE-MultiAsset-Ranking/` | Recherche GNN | Recherche | pas de main.py ; research.ipynb + _generate_research.py |
| `Mamba-Crypto-Ranking` | `projects/Mamba-Crypto-Ranking/` | Recherche DL (Mamba) | Recherche | pas de main.py ; research.ipynb + _generate_research.py |
| `TFT-Crypto-Ranking` | `projects/TFT-Crypto-Ranking/` | Recherche DL (TFT) | Recherche | pas de main.py ; research.ipynb + _generate_research.py |

#### Stub (code non créé) (2)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `Corrective-AI` | `projects/Corrective-AI/` | Stub | Stub | README : « Stub (exercice planifié, fichiers de code non encore créés) » ; pas de main.py |
| `RL-Options-Hedging` | `projects/RL-Options-Hedging/` | Stub (RL options) | Stub | README : « Stub (planned exercise, code files not yet created) » ; pas de main.py |

#### Squelette/template (pas de stratégie active) (2)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `RL-Portfolio` | `projects/RL-Portfolio/` | RL (squelette) | Squelette | README : « Template/skeleton (no active strategy) » + main.py: class RLPortfolioAlgorithm(QCAlgorithm) |
| `Reinforcement-Learning-Trading` | `projects/Reinforcement-Learning-Trading/` | RL (squelette) | Squelette | README : « Template/skeleton (no active strategy) » + main.py: class ReinforcementLearningTrading(QCAlgorithm) |

#### Contre-exemple pédagogique (BROKEN) (2)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `ETF-Pairs` | `projects/ETF-Pairs/` | Pairs (cassé) | Contre-exemple | README : « Statut : ❌ BROKEN — contre-exemple à visée pédagogique » + main.py: class ETFPairsTrading(QCAlgorithm) |
| `PairsTrading` | `projects/PairsTrading/` | Pairs (cassé) | Contre-exemple | README : « Statut : BROKEN — contre-exemple à visée pédagogique » + main.py: class PairsTrading(QCAlgorithm) |

#### Archivé / superseded (3)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `TurnOfMonth` | `projects/TurnOfMonth/` | Calendrier (archivé) | Archivé | README : « Status: ARCHIVED (Sharpe ceiling ~0.13) » + main.py: class TurnOfMonthEffect(QCAlgorithm) |
| `MomentumStrategy` | `projects/MomentumStrategy/` | Rotation ETF sectoriels (momentum) | Archivé | `ARCHIVE.md` + main.py en-tête `# [ARCHIVED - Sharpe ceiling ~0.48]` ; class SectorMomentumETFRotation(QCAlgorithm) — reclassé firsthand c.570 |
| `SectorMomentum` | `projects/SectorMomentum/` | Dual momentum 3 actifs (SPY/TLT/GLD) | Archivé | `ARCHIVE.md` + main.py en-tête `# [ARCHIVED - Sharpe ceiling ~0.56]` ; class SectorDualMomentumStrategy(QCAlgorithm) — reclassé firsthand c.570 |

#### Research phase (1)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `Portfolio-Optimization-ML` | `projects/Portfolio-Optimization-ML/` | ML portefeuille (recherche) | Recherche-phase | README : « Status: 🔄 Research Phase - Based on HandsOnAITrading Book » + main.py: class PortfolioOptimizationMLAlgorithm(QCAlgorithm) |

#### Démonstration pédagogique (1)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `TradingCosts-Optimization` | `projects/TradingCosts-Optimization/` | Démo coûts de transaction | Démo | README : « Status: Educational demo » + main.py: class TradeCostEstimationAlgorithm(QCAlgorithm) |

#### Utilitaire / docs (pas une stratégie) (2)

| Stratégie | Chemin | Type | Statut (best-guess) | Signal source (fichier/ligne ou nom) |
|-----------|--------|------|---------------------|--------------------------------------|
| `Research-Executor` | `projects/Research-Executor/` | Harness d'exécution recherche | Utilitaire | README : « Utility (research execution harness, not a trading strategy) » + main.py: class ResearchExecutor(QCAlgorithm) |
| `_docs` | `projects/_docs/` | Documentation / audits | Utilitaire | dossier de docs (OPTIMIZATION_BACKLOG.md, QUANTCONNECT_PROJECTS_AUDIT.md, …) ; pas d'algo |

### Incertitudes prioritaires — résolues firsthand (spot-check code, c.570)

Entrées où le statut *best-guess* était le plus fragile (divergence nom de dossier / nom de classe, doublons suspects). **Résolution firsthand par lecture directe de `main.py`** — la divergence de nommage se tranche par le code, pas par les métriques, donc aucun backtest requis :

- **`Multi-Layer-EMA`** (`OptimizedCryptoAlgorithm`) — **résolu**. Vérifié tranche 4 (Needs-improvement, Sharpe 0.798). Divergence de nommage levée : crypto BTC/ETH/LTC (Binance) avec EMA10/50 + RSI + Bollinger + filtre de volatilité ATR (max 3 positions) — « Multi-Layer-EMA » est défendable (EMA = couche primaire d'un empilement multi-indicateurs).

- **`LeveragedETFMomentum-QC`** (`ConditionalSectorRotation`) — **résolu, pas une divergence**. QC Strategy Library #60 (Grant Forman) : ETF à effet de levier SPY/QQQ/TQQQ/UVXY/TECL/SPXL/SQQQ/TECS/BSV, régime RSI + SMA. Le dossier nomme le *thème* (momentum ETF levier), la classe le *mécanisme* (rotation conditionnelle) — complémentaires. Déjà backtesté tranche 6 (PSR 79.8 %, flag OOS ETF levier).

- **`MacroFactorRotation-QC`** (`AIStocksBondsRotationAlgorithm`) — **résolu, pas une divergence**. QC Strategy Library #72 (Derek Melchin) : rotation cross-actifs SPY/GLD/BND/BTCUSD pilotée par `DecisionTreeRegressor` sur facteurs FRED (VIX, courbe 10Y-3M, fed funds), rebalancement mensuel. Nom = thème macro-factoriel, classe = mécanisme ML actions/bonds/crypto. Multi-actifs sur brokerage par défaut (IBKR rejette le crypto — cf #1027).

- **`FamaFrench`** (`FactorETFRotation`) — **résolu, pas une divergence**. Rotation d'ETF factoriels VLUE/MTUM/SIZE/QUAL/USMV (momentum risk-adjusted 12m/vol63 + régime SMA200, stop -12 %). La sémantique Fama-French *est* portée par les ETF factoriels tradés ; la classe nomme le mécanisme. Métriques auto-rapportées v3.0 (Sharpe 0.540) dans la docstring — non recroisées firsthand.

- **`Options-VGT`** (`GainStrategy`) — **résolu**. Stratégie d'*income options* (contrats OTM, `OptionChainProvider`, échéance ~30 j) sur des tech single-names NVDA/ORCL/CSCO/AMD/QCOM, benchmark VGT. Le dossier « VGT » désigne le *benchmark*, pas le sous-jacent tradé. Nom de classe `GainStrategy` vague mais contenu clair.

- **`HAR-RV-J-Kelly`** vs **`HAR-RV-Kelly`** — **résolu : PAS une relation de supersession**. Classes d'actifs distinctes : `HAR-RV-J-Kelly` (`HarrvjKellyAlgorithm`) trade du **crypto** (BTC/ETH/LTC/BCH, Binance) avec composante de saut Huang-Tauchen (paramètre `use_jumps`) ; `HAR-RV-Kelly` (`HarrvKellyAlgorithm`) trade des **ETF multi-actifs actions** (SPY/EFA/EEM/TLT/GLD/DBC, HAR classique Corsi). Deux démonstrations complémentaires (crypto-jump vs equity-classique, Kelly 1/4 commun) — backtester la variante « J » ne la rend pas « supérieure » à la plain puisque l'univers diffère.

- **`MomentumStrategy`** vs **`SectorMomentum`** — **résolu : deux stratégies distinctes, toutes deux ARCHIVÉES** (reclassées hors du bucket Vivant, cf synthèse). `MomentumStrategy` (`SectorMomentumETFRotation`, `ARCHIVE.md`) = rotation d'ETF sectoriels v4.0, plafond Sharpe ~0.48 ; `SectorMomentum` (`SectorDualMomentumStrategy`, `ARCHIVE.md`) = dual-momentum 3 actifs SPY/TLT/GLD v3.2, plafond ~0.56. Chevauchement de *thème* (momentum) seulement, univers + mécanisme distincts. Les deux portent l'en-tête `# [ARCHIVED …]` : le best-guess « Vivant » était erroné.

- **`DL-LSTM` / `ML-DeepLearning` / `Crypto-LSTM-Prediction` / `LSTM-Forecasting`** — **résolu : périmètres distincts (profondeur de modèle × classe d'actifs)**. `DL-LSTM` = PyTorch LSTM bidirectionnel (2×50), prédiction de prix mono-action (modèle de `research_lstm.ipynb`). `ML-DeepLearning` = PyTorch LSTM simple (1×32), prédiction de rendement multi-actions (baseline). `Crypto-LSTM-Prediction` = PyTorch DLinear (AAAI 2023) + LSTM comparé, **crypto** BTCUSDT. `LSTM-Forecasting` = **PAS un LSTM** : `MLPClassifier` sklearn (docstring honnête « replacing hand-rolled fake LSTM »), actions, livre Ch06 — le nom est un héritage du « fake LSTM » remplacé. Les quatre ne sont pas redondants.

- **`RL-DQN-Trading`** vs **`Reinforcement-Learning-Trading`** — **résolu : classification doc correcte**. Nom de classe identique `ReinforcementLearningTrading`, mais `RL-DQN-Trading` = DQN amélioré v2.0.1 (`MLPRegressor(64,32)`, 11 features, reward risk-adjusted) = *Vivant/développé* ; `Reinforcement-Learning-Trading` = démo DQN basique SPY-seul (livre Ch07) = *Squelette*. Seule l'homonymie de classe créait l'ambiguïté.

## Travaux connexes

- **Checkpoints ML** : `ML-Training-Pipeline/` (444 MB `.pt`, 137 modèles) — migration Git LFS + purge des obsolètes = gated user (mandat 2026-05-27). Non livré.
- **Papertrading** : `Python/QC-Py-40-PaperTrading-Binance.ipynb`, `Python/QC-Py-41-PaperTrading-IBKR.ipynb` — **mockups pédagogiques standalone, non déployés**. Audit firsthand : 0 `QuantBook()` dans les deux ; `QC-Py-41` cell[18] porte une config IBKR en template (`"ib-password": "<password>"` = placeholder pédagogique, pas un secret). Les deux sont des notebooks de cours montrant l'API papertrading (partiellement exécutés : QC-Py-40 10/12 cellules, QC-Py-41 9/12), **jamais branchés à un environnement live**. Le gate [#1027](https://github.com/jsboige/CoursIA/issues/1027) (IBKR KYC + Coinbase) reste ouvert pour un éventuel déploiement paper/live réel.
- **Notebooks cours** : `Python/QC-Py-01..35` + `Cloud-01..07` + companion `Python/research/` (QC-Py-19/22) — cohérents, audit prod-ready à part.

## Voir aussi

- [docs/qc/quantconnect.md](quantconnect.md) — structure complète QC, MCP Docker, livre de référence
- [docs/qc/qc-comparative-backtests.md](qc-comparative-backtests.md) — backtests comparatifs
- [#1621](https://github.com/jsboige/CoursIA/issues/1621) — EPIC Consolidation QC/Trading
- [#5654](https://github.com/jsboige/CoursIA/issues/5654) — EPIC Illustration READMEs (figures)
- [#1027](https://github.com/jsboige/CoursIA/issues/1027) — paper-trading / backtest gate
