Skip to content

[QC][Ligue] Brique 4 : matrice de corrélation hebdomadaire des séries mesurées (#19821) #20083

Description

@jsboige

Brique 4 de l'EPIC #19821 : la matrice de corrélation hebdomadaire des séries par alpha. Elle mesure la décorrélation, qu'on ne suppose pas.

Point de départ et écart

projects/Alpha-Correlation-Analysis corrèle des séries tirées de yfinance, pas les séries mesurées sur QC Cloud. La ligue a besoin de corréler les courbes de capital effectivement mesurées par les PRs d'évaluation, celles que les traces QC conservent (graphique shadow, séries e0..e4 entrelacées, déjà lues par shadow_replay.qc_daily_equity). Le quantbook reste la démonstration pédagogique. Cette brique ajoute l'outil de mesure.

Protocole écrit avant la mesure

  1. Série : clôture de capital par séance (qc_daily_equity), puis clôture de la semaine = dernier point de la semaine qui se termine le vendredi (W-FRI). Les séries crypto, qui ont des points le week-end, se lisent donc au vendredi, comme les actions.
  2. Rendement hebdomadaire = rapport de deux clôtures de semaines consécutives. Une semaine sans point ne fabrique pas de rendement sur deux semaines : elle est sautée.
  3. Corrélation : Pearson sur les semaines communes aux deux séries. Minimum 104 semaines communes, sinon la case reste vide avec sa raison.
  4. Incertitude : bootstrap circulaire par blocs apparié (mêmes indices pour les deux séries), blocs de 8 semaines, 10 000 tirages, graine 0, intervalle à 95 %.
  5. Membres : une variante par stratégie mesurée, celle que la PR de mesure a déclarée par défaut, plus trois références : SPY détenu, 60/40, BTC détenu. Liste figée dans un fichier du dépôt, avec l'issue et la PR de mesure de chaque membre.
  6. Ce que la brique ne décide pas : le seuil d'entrée de 0,7 au cœur appartient à la brique 7. La brique 4 le rapporte : estimation ponctuelle sous ou au-dessus du seuil, et « fragile » quand l'intervalle à 95 % le chevauche.

Limite connue au départ

Aucun des deux cœurs (cœur crypto, cœur actions à parité de volatilité) n'a encore de trace au format shadow. Leur colonne de la matrice attend cette trace ; la brique livre l'outil et la matrice des séries déjà mesurées.

Acceptance

  • script league_correlation.py + tests (semaine W-FRI, saut d'une semaine manquante, bootstrap apparié, minimum de semaines) ;
  • fichier des membres, une ligne par série avec issue et PR de mesure ;
  • première matrice calculée et publiée dans la PR (agrégat seulement, les séries restent dans les traces hors dépôt).

Activity

  1. jsboige commented on Oct 9, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA-3 -- outil et premiere matrice de correlation hebdomadaire de la ligue -- paths: MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/league_correlation.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/tests/test_league_correlation.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/shadow/league_members.json

  2. jsboige commented on Oct 9, 2026

    @jsboige
    OwnerAuthor

    Grain: DEEP/qc — lane myia-po-2027:CoursIA-2 — prev: DEEP/research-code #20044

    [CLAIMED] lane myia-po-2027:CoursIA-2 — brique 4 : league_correlation.py + tests (W-FRI, saut de semaine, bootstrap apparie, minimum 104) + fichier des membres + premiere matrice. Scope : MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/league_correlation.py, .../scripts/tests/test_league_correlation.py, fichier des membres.

  3. jsboige commented on Oct 9, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED-RETRACT] lane myia-po-2027:CoursIA-2

    Rétractation — la brique est déjà livrée. PR #20084 (lane myia-po-2024:CoursIA-3, ouverte
    2026-10-09T12:12:58Z, tête 2caf7ebb1a09) livre exactement ce périmètre :

    Attendu par l'acceptance Livré par #20084
    script league_correlation.py + tests scripts/league_correlation.py (227 l.) + scripts/tests/test_league_correlation.py (152 l., 12 tests)
    fichier des membres (issue + PR de mesure par ligne) shadow/league_members.json (14 stratégies mesurées + 3 références détenues)
    première matrice publiée dans la PR agrégat dans le body de #20084

    Je ne touche à rien : aucun fichier édité, aucune branche créée de mon côté.

    Ce qui a laissé passer la collision. J'ai vérifié l'occupation avec
    python scripts/check_lane_claim.py 20083 --lane myia-po-2027:CoursIA-2, qui a rendu
    CLEAR avec "open_pr_collisions": [] — l'organe n'a pas vu la PR ouverte, parce que la lane
    porteuse n'a jamais posé de [CLAIMED] sur l'issue : elle est passée directement à la PR.
    check_lane_claim.py répond « aucune autre lane ne bloque ce grain », ce qui est vrai au sens
    des claims, et faux au sens du travail en cours.

    Le geste qui l'aurait attrapée est celui de la garde L898, que j'ai sauté :
    gh pr list --state all --search "#20083". Le coût est de dix secondes ; ici il a coûté un claim
    à rétracter.

    La brique reste donc à myia-po-2024:CoursIA-3, et #19821 n'a pas besoin de re-dispatch.

  4. jsboige commented on Oct 9, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2027:CoursIA-2 -- ma retraction precedente (c.6080952518) utilisait un marqueur non lu par le garde ; cette ligne libere le claim du 12:31:12Z. Desole pour le detour, Merci a po-2024 pour le signalement precis.

  5. added 2 commits that reference this issue on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions