fix(#17066): QC-Py-07-Futures-Forex — fusion doubles colles (2 explications Donchian, 2 conclusions) + correction prochaines étapes - #17095
Conversation
… explications Donchian, 2 conclusions completes), corriger les prochaines etapes sur le catalogue reel Tranche 8 campagne #17066. Cellule 74 : une explication Donchian fusionnee (off-by-one, performance 0.4-0.6, limites VIX harmonisees — contradiction >30 vs <25 tranchee). Cellule 75 : une conclusion unique, prochaines etapes du bloc 1 factuellement fausses (08!=Options, 09!=Crypto, 10!=Multi-asset) remplacees par le bloc 2 correct verifie sur ls (08 Multi-Asset, 13 Alpha, 25 RL), ligne finale reciblee. Cellule 58 : retitre hors prefixe fermant. Organ : 2 dup_closing -> 0, advisory multi_closing pre-existant elimine. Markdown-only, cellules code byte-identiques. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
…s la Conclusion unique (cellule 75) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ody, guards rerun) Le tag Grain du body pointait prev: sur #16740 (closed-unmerged) -- prev-abandoned #13475 signale par le VTR guard. Body reecrit vers LIGHT/tooling #17018 (merged, meme lane). Commit vide = payload frais pour rejouer les always-on guards (runs anterieurs introuvables au rerun, store fracture), pattern etabli (#17095/#17103). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
[ADJOINT PREFLIGHT] |
…ifiant #15511 (#16768) * fix(gate,#16764): nits organ - SHA de datation vs preuve + siege qualifiant Deux faux positifs de blocage mesures sur ai-01 (passe 18/09) : un gate qui force a deformer la prose pour passer entraîne a ecrire pour l'organe. Classe 1 : un SHA cite pour DATER une reserve (« (review ..., head <sha>) », « la reserve posee sur <sha> ») etait lu comme SHA de PREUVE -> refus #13639. Gouverneurs bornes (head en apposition, posee/emise sur, mot de reserve + sur/dans/de) avec anti-collision verbe d'adresse ; seul le SHA gouverne par « traite en / adressee par » doit appartenir a la PR. Instance #16657 : r.5252462567 refusee, reposte sans SHA 53 s plus tard. Classe 2 : la levee par siege qualifiant (contrat #15511) n'etait pas vue - la trappe tierce exigeait le marqueur [OVERRIDE]. Reconnaissance bornee des deux cotes : le NIT declare le relais ET la LEVEE revendique le siege en tete de ligne ET l'auteur est le siege (LIFT_OVERRIDE_LOGINS). Instance #16608 : review Hermes r.5242448146 + levee c.5728784093. CONCERN_MARKERS intact (contrat cote emission, #14682). Fixtures = corps reels des fondateurs. Mesures toutes declarees sur origin/main 7885a69. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(#16764): empty commit for fresh CI payload (prev: repaired in body, guards rerun) Le tag Grain du body pointait prev: sur #16740 (closed-unmerged) -- prev-abandoned #13475 signale par le VTR guard. Body reecrit vers LIGHT/tooling #17018 (merged, meme lane). Commit vide = payload frais pour rejouer les always-on guards (runs anterieurs introuvables au rerun, store fracture), pattern etabli (#17095/#17103). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2025:CoursIA — prev: DEEP/notebook-python #17086
Redressement critique #17066 — QC-Py-07-Futures-Forex : fusion des doubles collés (2 explications Donchian dans la cellule 74, 2 blocs « ## Conclusion » complets dans la cellule 75) + correction factuelle des « Prochaines étapes » sur le catalogue réel. See #17066 (tranche 8 de la famille QuantConnect/Python, 1 notebook par PR, référence #17069).
Mesure organ (avant → après)
check_duplicate_sections.py: 2 findings (dup_closing« conclusion » ×2 + « recapitulatif » ×3, tous portés par les cellules 58/75) → 0 finding (carriers: 0,records: 0), et l'advisorymulti_closingpré-existant sur main (3 familles fermantes distinctes en queue) est éliminé — la queue n'a plus qu'une seule famille fermante.L'organe à zéro est nécessaire, jamais suffisant : la lecture critique de bout en bout (76 cellules) a attrapé ce que l'organe ne voit pas — une erreur factuelle dans le bloc conclusion d'origine et une contradiction numérique entre les deux explications Donchian.
Diagnostic de la dégénérescence
Motif distinct des tranches précédentes : ici le collage de campagne a dupliqué des blocs entiers plutôt que titré uniformément :
Erreur factuelle corrigée (G.1, sur pièces)
Le bloc conclusion d'origine annonçait : « QC-Py-08 : Options trading · QC-Py-09 : Crypto trading · QC-Py-10 : Multi-asset » — faux sur toute la ligne (vérifié sur
ls MyIA.AI.Notebooks/QuantConnect/Python/: QC-Py-08-Multi-Asset-Strategies, QC-Py-09-Order-Types, QC-Py-10-Risk-Portfolio-Management ; Options = QC-Py-06, le notebook précédent). La ligne finale « Prêt pour QC-Py-08-Options-Trading » était tout aussi fausse. La greffe, elle, citait juste (08 Multi-Asset, 13 Alpha Models, 25 RL) — le contenu consolidé garde les pointeurs corrects (bloc 2) et retire les pointeurs faux ; la ligne finale est reciblée vers QC-Py-08-Multi-Asset-Strategies.PLAN du notebook après réparation
Structure inchangée partout ailleurs. Cellule 74 : une explication Donchian 20/10 en 4 parties (canal + off-by-one · sizing · rollover · performance/limites) suivie des 5 points d'amélioration. Cellule 75 : une conclusion (## Conclusion = le seul titre fermant) — récapitulatif 4 groupes directement sous le H2, table « En pratique — six règles », prochaines étapes corrigées, exercice suggéré, limites assumées, ressources, ligne finale reciblée. Cellule 58 : table backtest + transition retitrée « Où en sommes-nous avant la section 9 ? » (corps inchangé).
DÉTAIL de chaque consolidation
A. Cellule 58 (retitrage seul). Corps byte-préservé ; seul le H3 change (« Récapitulatif avant la section 9 » → « Où en sommes-nous avant la section 9 ? ») pour sortir du champ de l'organe fermant — les tokens « avant », « section », « 9 » survivent.
B. Cellule 74 (fusion des deux explications). Une seule H3 « ### Explication de la stratégie Donchian 20/10 » : (1) le canal — définition bands + entrée/sortie 20/10 en une formulation (les deux blocs la donnaient en doublon), off-by-one/look-ahead bias de la greffe, lecture tendance-vs-bruit ; (2) formule de sizing 1% (bloc d'origine) ; (3) rollover automatique (bloc d'origine, complété du
OnSecuritiesChanged) ; (4) performance et limites de la greffe (Sharpe 0.4-0.6, range-bound 2015-2019, MA 200j −30% DD, breakout pur sans stop-dollar, gaps overnight, filtre VIX < 25). Suivent les 5 points d'amélioration d'origine, le point 5 harmonisé sur le filtre VIX unique (la contradiction > 30 vs < 25 est tranchée sur la valeur de la greffe, qui porte le raisonnement détaillé).C. Cellule 75 (fusion des deux conclusions). Le récapitulatif fusionné garde les 4 groupes du bloc 1 enrichis des uniques du bloc 2 : marge initiale/maintenance et 5-10 jours (Futures), cross rates et couverture par corrélation (exercice 2) (Forex), démo $100k/1%/4 stops (Leverage), filtres VIX/MA-200/ATR (Stratégie). La table de 6 règles (bloc 1) est conservée sous « ### En pratique — six règles » (retitré hors préfixe fermant « points clés »). « ### Prochaines étapes » = les 3 pointeurs vérifiés du bloc 2. « ### Exercice suggéré » (Mean Reversion RSI EURUSD, bloc 1) conservé. « ### Limites assumées » (bloc 2) conservé — les numéros de cellules suspects (#4, #5, #37, #65) de la phrase « démos Python » sont retirés (invérifiables, 37/65 sont des cellules markdown). « ### Ressources » (3 liens, bloc 1) conservé.
VERDICT DE SÉQUENCE (honnête)
La stratégie Donchian est expliquée une fois, le notebook se conclut une fois, chaque bloc de la conclusion a une fonction distincte (récapitulatif, règles pratiques, suite, exercice, limites, ressources). Résiduel assumé : (1) les H3 « Récapitulatif » ×2 de la base sont fusionnés sous le H2 Conclusion sans H3 intermédiaire — c'est la consolidation elle-même (plan-loss exit 0, le contenu survit) ; (2) les numéros de cellules de la phrase « démos Python » ne sont pas re-vérifiables et sont retirés plutôt que propagés ; (3) aucune re-densification : les cellules non touchées (76 au total) restent telles quelles.
Sections assumées — markers plan-loss (#14532)
Les deux H3 « Recapitulatif » de la base (cellule 75) disparaissent comme titres de section : leur contenu survit enrichi dans le récapitulatif fusionné sous le H2 Conclusion unique (cf VERDICT résiduel 1 — c'est la consolidation elle-même) :
Preuves
outputsetexecution_countintacts — markdown-only, exception C.2.carriers: 0,records: 0,advisory: 0(multi_closing pré-existant éliminé).lsdes 29 QC-Py-*.ipynb cité dans la section Erreur factuelle.🤖 Generated with Claude Code