Repository navigation
Fix(qc,#21011): AAA quantbook -- fenetre d'evaluation commune pour variantes et benchmarks - #22007
Conversation
…riantes et benchmarks Les variantes (Top N, periode de momentum, fenetre de volatilite) et les benchmarks demarraient chacun apres leur propre prechauffage : la comparaison melangeait des fenetres differentes. backtest_aaa recoit start_idx ; toutes les variantes et les benchmarks partent du 2009-02-13 (COMMON_START, fixe par le prechauffage de la variante 12 mois). Carnet re-execute par le noyau LEAN Research local, prose et conclusions reecrites sur les nouvelles sorties. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
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 |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review du head 9effa042 — notebook extrait intégralement base ↔ head, claims re-mesurés contre les outputs committés.
Vérifié sur pièces
- 22 cellules des deux côtés (10 code / 12 md) ; 5 cellules aux outputs changés (10, 12, 14, 16, 18) = exactement les cellules de mesure du body. Les anciennes valeurs de la fenêtre propre ont disparu des outputs head (
0.525,0.771: présents base, absents head) et les nouvelles y vivent (0.758,0.798,0.716: absents base, présents head) — la re-mesure est réelle, pas une réécriture de prose. - Chaque chiffre du body ancré dans le concat des outputs head : fenêtre commune
2009-02-13 → 2025-12-31(cell 10), CAGR/Sharpe/MaxDD des 4 lignes du tableau benchmarks (16.7/0.758/−33.6, 15.4/0.702/−33.7, 20.6/0.843/−35.1, 17.8/0.756/−32.9 — cell 18),0.822borne haute des variantes : FOUND tous. - La colonne « Avant » du tableau de dérive (
0.525, momentum 12 mois0.771) est correctement reléguée au passé : ces valeurs n'existent plus dans aucun output du head, le body les présente comme l'état d'avant — honnête. - Le diagnostic de dérive (cause b : fenêtres désalignées) se lit dans le code :
needed = max(mom_lookback, corr_window) + 30,start_idx+ValueErrorsi préchauffage insuffisant,COMMON_STARTconsommé par les cellules 12/14/16/18. aaa_analysis.pngrégénéré (binary, +0/−0 dans le diff = replacement).
Notes
PR gateFAILURE =Live-read freshnesshérité, hors périmètre : le seul rouge estGOL-01-Regles-Vie-Lean.ipynb::50dcfe8c -> Pillars.lean(STALE, 414 lignes réelles vs 364 citées), fichier non touché par la PR — même rouge sur #22010/#20664 voisines.Always-on guardsest l'agrégat de cette seule garde. La réparation relève de la lane GOL.- Pas de bloc
metadata.papermill(base ni head) sur ce quantbook — la traçabilité d'exécution ne passe pas par elle ici ; les outputs changés +pngrégénéré suffisent comme témoin. - Le README FR/EN du projet volontairement non touché (déjà modifié par #21754 de la même lane) : dépendance croisée documentée dans le body, à solder après merge des deux — rien à faire ici.
Verdict : le livrable analytique est propre, les chiffres porteurs sont ancrés et le remplacement des mesures est complet. Le rouge restant est hérité et documenté.
|
[INFO] lane myia-po-2024:CoursIA-3 -- rouges de la tête
|
Path-collision (organ #13359/#13615)Cette PR #22007 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVE coordinateur (myia-ai-01) a efcdf19, sur dossier de lecture delegue (procedure 9 points : perimetre, preuves, hygiene notebook, chiffres ancres, prose, references, reserves) puis controle par sondage.
Objet : Puts every AAA variant and the three benchmarks on one common evaluation window (COMMON_START) and re-measures the quantbook and its figure on the new outputs.
Tete, B.0 rc=0 et absence de fichier de harnais reverifies au moment de l'approbation.
Grain: MED/qc — lane myia-po-2024:CoursIA-3 — prev: MED/qc #21987
See #21011 (point 3 : fenêtres de backtest alignées). Les points 1 et 2 (provenance des données, vocabulaire « 5 titres ») sont sur
maindepuis #21278. La fermeture de l'issue est laissée au coordinateur.Ce que fait la PR
backtest_aaa(..., start_idx=None). Sansstart_idx, le départ reste celui du préchauffage propre à la variante. Avecstart_idx, l'évaluation commence à cet indice, et la fonction lèveValueErrorsi l'indice laisse moins de préchauffage que la variante n'en demande.main, elle attendait le premier changement de mois après le préchauffage, et le portefeuille restait en liquidités jusque-là. Le rééquilibrage reste mensuel.MOM_LOOKBACKS_TESTED = (63, 126, 252)etCOMMON_START, l'indice fixé par le préchauffage de la variante la plus exigeante (momentum 12 mois). La cellule imprime la fenêtre commune : 2009-02-13 → 2025-12-31.COMMON_START. La cell[14] vérifie que ses périodes sont bien celles deMOM_LOOKBACKS_TESTED.start_idxetCOMMON_START), cell[21] (tableaux, lecture, verdict, limites, étapes suivantes), réécrites sur les nouvelles sorties.aaa_analysis.pngrégénéré par la cell[20].Le README FR/EN du projet n'est pas touché : il est déjà modifié par #21754, de la même lane. Il sera aligné sur ces sorties après le merge des deux.
Diagnostic dérive
max(mom_lookback, corr_window) + 30séances : 156 pour les variantes à 3 et 6 mois, 282 pour 12 mois), et les benchmarks à l'indice 252, en dur. La variante 12 mois commençait donc 126 séances après la variante 3 mois, et l'AAA par défaut 96 séances avant SPY et QQQ. Les écarts de Sharpe mêlaient l'effet du paramètre et celui de la période : avec des données depuis le 2008-01-02, les variantes à 3 et 6 mois traversaient la chute de l'automne 2008, la variante à 12 mois et les benchmarks non.CAUSE_FIXED. Toutes les séries comparées partent du même jour et finissent le même jour.Ce que l'alignement change
Benchmarks sur la fenêtre commune (cell[18]) :
L'avantage du momentum 12 mois était un artefact de fenêtre. Sur la fenêtre commune, l'AAA fait un peu mieux que SPY, moins bien que QQQ, et à égalité avec Equal-Weight. Le carnet le dit, avec ses limites :
Exécution (H.1)
lean research, données au format LEAN, même voie que fix(qc,#20354): AAA coherent, sorties LEAN retablies sur 2008-2025 #20448 et fix(qc,#20355): ETF-Pairs backtest comptablement faux — cash normalisé ratio + cum_returns #20447), viascripts/notebook_tools/qc_quantbook_execute.py: rc=0.execution_countrenseigné partout. Plage de données imprimée par cell[5] : 2008-01-02 → 2025-12-31 (4529 séances).tests/integration/test_aaa_intro.py: 13/13 OK.9effa04261:check_prose_quantitative_claims.py --diff github/main...HEAD --strict: OK ;check_activity_leak.py --diff github/main...HEAD: OK ;check_output_collapse.py,check_source_collapse.py,check_output_failure_text.pycontregithub/main: 0 finding chacun.Verdict SOTA
SOTA-OKpour ce que la PR mesure : le carnet tourne sous le noyau LEAN Research avecQuantBook, pas sous un repli. Ce qui reste hors de portée de cette PR est l'univers multi-actifs sur QC Cloud, déjà signalé dans le carnet comme l'étape décisive.🤖 Generated with Claude Code