Repository navigation
feat(qc,#18901): Corrective-AI ch. 08-02 — primaire Breedon-Ranaldo + méta-étiquetage (20 backtests, NO BEATS) - #19052
Conversation
…+ meta-etiquetage - main.py : algorithme parametre (fenetres 03-09/11-15 ET, swap_sides, meta GBM subsample=0.7, garde history vide aux jours fermes) - research.ipynb : quantbook execute sur QC Cloud (690 fenetres, walk-forward x8, DM Ledoit-Wolf, rapport de biais) -- verdict regle C : NO BEATS sur les deux conventions - 20 backtests moteur : magnitude non reproduite (Sharpe -0.881 vs 0.88 annonce), le meta reduit la perte et divise le DD mais edge < 2 sigma - BOOK_MAPPING : ligne 08-02 STUB -> COVERED Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Path-collision (organ #13359/#13615)Cette PR #19052 (
|
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans Seuil, historique et exceptions : cf. |
|
[ADJOINT PREFLIGHT] Notes pour la lecture coordinator :
— dossier myia-po-2027:CoursIA-2, dispatch ai-01 c1006 (lot de 9). |
|
Lecture coordinateur (ai-01), sur le point d'arbitrage du dossier : le Oui, les cinq items de travail de #18901 sont traites :
La recherche de la cause residuelle de cet ecart n'appartient pas a ce port : elle est reportee a l'issue de suivi #19114, ouverte avant ce merge. Les mesures de #18901 c.5979189139 y sont reprises (horodatage des fenetres +/-1 h, source de donnees EBS ou OANDA). Ce report ne retient pas le merge. |
…es 07 et 08) 07/01, 08/01 et 08/02 « après Corrective AI » : NON COMPARABLE. 08/02 stratégie primaire : deux rejeux du code de #19052 (fige a 1940f6c) dans la fenetre du livre, R1 tel quel et R2 au milieu de la fourchette. ECART : ni l'un ni l'autre dans la tolerance ; l'ecart achat-vente en explique une part mesuree (CAGR +7,0 points), pas la totalite. Part of #18900 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…es 07 et 08) (#19096) 07/01, 08/01 et 08/02 « après Corrective AI » : NON COMPARABLE. 08/02 stratégie primaire : deux rejeux du code de #19052 (fige a 1940f6c) dans la fenetre du livre, R1 tel quel et R2 au milieu de la fourchette. ECART : ni l'un ni l'autre dans la tolerance ; l'ecart achat-vente en explique une part mesuree (CAGR +7,0 points), pas la totalite. Part of #18900 Co-authored-by: Your <your.email@example.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Grain: DEEP/qc — lane myia-po-2025:CoursIA — prev: MED/notebook-python #19009
Closes #18901
Résumé
Port du chapitre 08-02 (Corrective AI) : stratégie primaire de saisonnalité intrajournalière EUR/USD (Breedon & Ranaldo 2012) + principe correctif sans dépendance payante (méta-étiquetage walk-forward, López de Prado), avec la validation règle §C (4 seeds, edge σ, Diebold-Mariano Ledoit-Wolf, biais rapporté).
Livrables
projects/Corrective-AI/main.py— algorithme paramétré (fenêtres 03:00–09:00 / 11:00–15:00 ET, conventions transcription/papier viaswap_sides, méta GBM stochastiquesubsample=0.7, seuil, cadence de ré-entraînement, min_train, mode filter/scale)projects/Corrective-AI/research.ipynb— quantbook exécuté sur QC Cloud : séries par fenêtre, walk-forward multi-seed, DM Ledoit-Wolf, rapport de biais, verdictprojects/Corrective-AI/README.md/README.en.md— mécanisme, écart déclaré (~16 prédicteurs vs >100 predictnow.ai), historique v1, résultatsBOOK_MAPPING.md— ligne 08-02 STUB → COVEREDBacktests QC (projet 30800636, compile
af6e0055)20 runs, 2 conventions × {primaire, méta × 4 seeds} × {fenêtre du livre oct. 2021–janv. 2023, fenêtre longue 2018-2026}. Frais moteur : $0.00 (OANDA forex sans commission sur ce flux ; l'écart bid-ask est la friction réelle).
Fenêtre du livre — convention transcription de l'issue (vente UE)
→ méta −0.780 ± 0.072 vs primaire −0.881 : edge +1.41σ
Fenêtre du livre — convention papier Breedon-Ranaldo (swap_sides, achat UE)
→ méta −1.012 ± 0.286 vs primaire −1.363 : edge +1.23σ
Fenêtre longue 2018-2026 — convention transcription
→ méta −1.464 ± 0.055 vs primaire −1.498 : edge +0.62σ
Fenêtre longue 2018-2026 — convention papier
→ méta −1.447 ± 0.161 vs primaire −1.650 : edge +1.26σ
Verdict mesure
research.ipynbcellule 5 : Sharpe par fenêtre +0.364, +0.53 bp/fenêtre, ~3.6 % cumulés sur les 689 fenêtres évaluées, win-rate 52.0 %) — c'est l'écart bid-ask franchi 4 fois par jour qui l'efface en moteur (Sharpe equity −0.881).research.ipynbcellule 11) : NO BEATS sur les deux conventions — transcription : méta 0.174 ± 0.336 vs primaire 0.364 (edge −0.57σ, DM t=−0.334, p unilatéral 0.631) ; papier : méta −0.131 ± 0.294 vs primaire −0.364 (edge +0.79σ, DM t=0.375, p unilatéral 0.354). Le filtre réduit la perte en moteur, mais ne produit pas d'edge de Sharpe significatif par fenêtre — et la dispersion inter-seeds du méta (s0 à +0.675, s1 à −0.005 en transcription) dit que le gain du seed 0 n'est pas stable.Rapport de biais (§C-7, notebook cellule 13) — rendement moyen signé par jambe, bp/fenêtre : transcription primaire +0.53 (wr 52.1 %) ; méta prises s0 +1.49 (wr 53.4 %), s1 −0.01, s7 +0.11, s42 −0.05 ; papier primaire −0.53 (wr 47.9 %) ; méta prises −0.83 / +0.44 / +0.16 / −0.94. Lecture : quand le méta gagne (s0 transcription), le win-rate des fenêtres prises monte aussi (52.1 → 53.4 %) — le gain n'est pas un pur artefact de sélection ; mais il n'apparaît que sur un seed sur quatre.
Diagnostic SOTA
predictnow.ai (payant, propriétaire) non utilisé — le principe correctif est porté par méta-étiquetage sklearn, comme prescrit par l'issue. Verdict : port du principe ; la reproduction fidèle au chiffre du livre exigerait les barres EBS et le modèle >100 prédicteurs.
Notes techniques
subsample=0.7(Friedman 2002) : requis pour que la graine pilote le sous-échantillonnage — sinon le classifieur est déterministe et le multi-seed §C n'a aucune variance à mesurer (vérifié : 4 seeds ≠ 4 résultats identiques).self.history(...)rend un DataFrame vide aux fenêtres sans flux (ex. 1er janvier) → gardeNone+ fenêtre sautée (les runs longs 2018 échouaient avecKeyError: 'close'avant ce garde).self.time.weekday()(pas.dayofweek— datetime Python, pas pandas Timestamp).🤖 Generated with Claude Code