Skip to content

Fix(qc,#18063): tranche 3b-ii -- metriques/periodes/statuts alignes sur les mesures (8 projets) - #19570

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/18063-qc-readme-tranche3b2
Oct 6, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/18063-qc-readme-tranche3b2

Conversation

@jsboige

@jsboige jsboige commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Grain: MED/docs — lane myia-po-2023:CoursIA — prev: MED/docs #19559

Audit READMEs QuantConnect — tranche 3b-ii (DESCRIPTION_MISMATCH métriques/périodes/statuts — re-vérification intégrale)

Suite de #19524 (t1), #19553 (t2), #19555 (t3a), #19559 (3b-i). Chaque finding re-vérifié firsthand contre origin/main : sorties JSON des notebooks, main.py, et docs/qc/qc-strategies-status.md (les runs cloud enregistrés y sont la source faisant foi — deux « évidences » d'audit se sont retournées contre mon premier diagnostic, voir ci-dessous). 8 CONFIRMÉS (fixés) / 1 FALSE POSITIVE / 1 HORS CLAIM / 3 DIFFÉRÉS en 3b-iii.

CONFIRMÉS — fixes livrés (8 projets, 8 fichiers)

Projet Claim README (avant) Mesure firsthand Fix
TrendStocks-Alpha « Backtest Metrics (2015-2026) » quantbook : header « Sharpe 0.609 (2020-2025) » Période corrigée (2020-2025) + note de provenance (quantbook 0.609 ; run cloud sweep enregistré 0.512/15.73 %/39.6 %, status doc l.262)
MeanReversion Table 0.294 / 7.53 % / 16.5 % / +80.9 % « (2015-2026) », et « Pas encore déployé » Ces valeurs ne correspondent à aucune mesure ; status doc l.186 : run cloud BROKEN (−0.082 / 3.00 % / 17.5 %, PSR 1.3 %, 2845 j.) ; quantbook (code v4.0 local) : 0.365 / 7.2 % / 14.7 % Table = run cloud BROKEN (source citée) + note « reproduction QuantBook 0.365… plus favorable que le run cloud » ; ligne QC Cloud corrigée (« Pas de projet cloud persistant ; backtest de sweep enregistré — BROKEN »)
ML-Reversion-Trending Table 0.571 / 10.51 % / 19.6 % libellée « run frais aligné #1630 » Status doc l.762 : 0.571 = run d'origine tr.7 (2015-2024) ; le run frais aligné #1630 (2018-2025) = 0.495 / 9.85 % / 20.7 % — la table mélait deux provenances ; research.ipynb (walk-forward multi-seed) : 0.301 ± 0.808, INCONCLUSIVE, PSR cloud 4.6 % Table = run aligné 0.495/9.85 %/20.7 % (2018-2025) avec le 0.571 tr.7 rappelé comme historique + note « Verdict de recherche : walk-forward INCONCLUSIVE »
BTC-ML « research.ipynb - Research notebook » (sans distinction) research : Sharpe 0.166 (moteur simplifié) ; README table (cloud, status doc l.319) : 0.057 Ligne research clarifiée : verdict faisant foi = backtest QC Cloud 0.057
VIX-TermStructure research présenté sans borne de validité research mesure l'analyse pré-v6.0 (SVXY, signal de terme seul, Sharpe −0.97) ; la v6.0 dual-signal est dans le tableau du README Ligne research annotée « analyse pré-v6.0… la v6.0 est mesurée dans le tableau ci-dessus »
TurnOfMonth « 9 hypothesis tests (H1-H9) » research.ipynb : labels mesurés = H1-H6 (le quantbook couvre H1-H4) « 6 hypothesis tests (H1-H6) »
Stoploss-Volatility-ML « Predicts next-day realized volatility » research : cible = rendement bas hebdomadaire (weekly low return), features vol glissante 30/60/90 j Description réécrite sur la cible réelle
RL-Portfolio « Template/skeleton project… no active strategy » research/quantbook portent la stratégie Q-Learning effective (recherche documentée, baseline incluse) ; main.py seul = squelette Statut « Reference implementation (Q-Learning dans les notebooks ; main.py squelette) »

False positive

  • AllWeather : l'allocation Dalio est déjà présentée comme « baseline v1.0 » d'origine — conforme sur main, aucun fix.

Hors claim

Différés → 3b-iii (changent la prose en profondeur ou touchent des notebooks)

  • MomentumStrategy (réécriture complète : US Large Caps Top-20 mensuel vs rotation ETF réelle 11 GICS 2-6 positions), Trend-Following (quantbook « stratégie de compétition optimisée ~1.5-2.0 » vs README 0.36), EMA-Cross-Alpha (header notebook Sharpe 0.996 vs README −0.01 — édition notebook markdown-only), Multi-Layer-EMA ×2, Option-Wheel ×4, OptionsIncome ×2, TrendWeather refs L154/L155. Renommage m3→m16 (ML-Training-Pipeline) = issue séparée (touche le catalogue).

Gardes

  • check_prose_quantitative_claims.py --diff origin/main...HEAD --strict : rc=0 (sur diff committé, commit 9b5f175)
  • fix_ipynb_links.py --check sur les 8 projets : 0 STALE_LINK (pré-check avant push, leçon Fix(qc,#18063): tranche 3a -- presentation notebooks manquants (15 projets) + refs perimees #19555)
  • Aucun notebook modifié — 8 README ; prose réécrite en français y compris dans fichiers EN (readme-french-first HARD 1)
  • Chaque chiffre cité provient d'une mesure nommée : sortie de cellule JSON parsée, ou ligne du status doc citée (l.186, l.262, l.319, l.762) — jamais du finding d'audit

See #18063

🤖 Generated with Claude Code

…ur les mesures (runs cloud status doc + sorties notebooks)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19570 (Fix(qc,#18063): tranche 3b-ii -- metriques/periodes/statuts alignes sur les mesures (8 projets)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2023:CoursIA a deja consomme son budget LIGHT du jour (axe genre G-VAR-2/3 (light-genre, quel que soit le tier declare) : #19260 (MED/docs, merge a 2026-10-06T06:40:03Z), #19430 (LIGHT/docs, merge a 2026-10-06T06:43:31Z), #19479 (MED/docs, merge a 2026-10-06T14:43:56Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) variation-genre-mismatch declared genre != genre infere depuis les chemins du diff (#10020, advisory) labels Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2023:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-06) :

  • TIER-INFLATION : declared LIGHT << effective LIGHT-genre (tally : declared=1 genre=3 cap=2)
  • GENRE-RUN : run consecutif d'un genre LIGHT (voir signals.runs dans le log du job)
  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=1 genre=3 cap=2)
  • GENRE-MISMATCH : declared genre != genre infere depuis les chemins du diff

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 42 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@jsboige

jsboige commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19570
head: 9b5f175
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 33a730ee576e6c1ece8b91927d7d5e936eb071d042b3f2da5648a1d8c30e3445
diff-files: 8
diff-additions: 24
diff-deletions: 18
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19570
organ-rc: 0
[/ADJOINT PREFLIGHT]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615) trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) variation-genre-mismatch declared genre != genre infere depuis les chemins du diff (#10020, advisory) variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants