Skip to content

Ligue (#19821, brique 4) : colonne du coeur actions et membres O2-O4 dans la matrice de correlation #20365

Closed

Description

@jsboige

Suite de la brique 4 de l'EPIC #19821 (outil livré par #20084, protocole #20083).

Écart

#20083 l'avait écrit : aucun des deux cœurs n'a de trace au format shadow, leur colonne de la matrice attendait. Le cœur actions à parité de volatilité est la règle inverse-vol du harnais papier. Il est déjà suivi en ombre, mais en candidate locale (ivol-U, scripts/shadow_inverse_vol.py, clôtures Yahoo), pas sur QC. league_correlation.py ne lit que des traces QC. Quatre mesures ont aussi été mergées depuis la première matrice et n'y figurent pas.

Protocole écrit avant la mesure

  1. Série du cœur : shadow_inverse_vol.replay avec les paramètres de la candidate gelée ivol-U (convention U, target 0,025), ouverte le 2010-02-01 et rejouée jusqu'au 2026-10-01 exclu, sur les clôtures Yahoo du jour, comme un passage d'ombre.
  2. Devise : les membres QC sont des courbes en USD, le cœur rend des rendements d'investisseur en EUR. Pour corréler dans une seule devise, sa courbe est ramenée en USD avec le cours EURUSD du panel : même portefeuille, compté en dollars. Une matrice en EUR, avec tous les membres convertis, est une autre question, hors de cette issue.
  3. Format : CSV date,net_return,turnover, celui que shadow_replay.py --series-dir écrit déjà, rangé hors dépôt avec les empreintes des clôtures. league_correlation.py apprend à lire un membre kind: local dans ce CSV. Le reste du protocole [QC][Ligue] Brique 4 : matrice de corrélation hebdomadaire des séries mesurées (#19821) #20083 ne change pas (semaine W-FRI, 104 semaines communes au moins, bootstrap apparié par blocs de 8 semaines, 10 000 tirages, graine 0).
  4. Nouveaux membres, chacun dans la variante par défaut de sa PR de mesure :
  5. Rapport : la corrélation de chaque membre au cœur, avec son IC à 95 % et sa position par rapport au seuil de 0,7, sans décider de l'entrée (brique 7). Deux sensibilités sont rapportées sans choix a posteriori : la cible de volatilité (target) sur les trois valeurs de la grille du verdict [ML-Pipeline] Inverse de volatilité pour un investisseur en euros : mesurer la volatilité en USD ou en EUR ? (pré-enregistrement) #19072 (TARGETS de inverse_vol_currency.py), et le cœur compté en EUR plutôt qu'en USD.

Hors périmètre

Le cœur crypto : sa règle n'a pas encore de trace au format shadow. Ce sera un grain suivant.

Acceptance

  • league_correlation.py lit un membre kind: local, avec tests ;
  • script qui produit la série du cœur en USD, avec tests de la conversion ;
  • shadow/league_members.json : le cœur (role: core) et les quatre membres ;
  • matrice recalculée et publiée dans la PR (agrégat seulement, séries hors dépôt).

Activity

  1. jsboige commented on Oct 11, 2026

    @jsboige
    OwnerAuthor

    Grain: DEEP/research-code — lane myia-po-2024:CoursIA-3 — prev: MED/qc #20347

    [CLAIMED] lane myia-po-2024:CoursIA-3 -- colonne du coeur actions (membre kind local) et membres O2-O4 + ema-cross-stocks dans la matrice de la ligue -- paths: MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/league_correlation.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/league_core_series.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/tests/test_league_correlation.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/tests/test_league_core_series.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/shadow/league_members.json, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/shadow/README.md

  2. jsboige commented on Oct 11, 2026

    @jsboige
    OwnerAuthor

    Amendement du point 2, avant toute mesure (aucune série n'a encore été calculée).

    Ramener la courbe EUR en USD avec le cours EURUSD compterait aussi en dollars la part de la règle restée en liquide. Cette part est en euros, chez un investisseur en EUR. Sa corrélation au cœur mêlerait alors celle du change. Les membres QC, eux, sont des comptes en USD dont la part liquide est en dollars.

    Le cœur entre donc dans la matrice comme la règle tenue sur un compte en USD. Les poids sont les mêmes (convention U, calculés sur les clôtures USD, mêmes dates de rééquilibrage, même bande, mêmes frais), et les rendements se lisent sur les clôtures USD, la part liquide en dollars. shadow_inverse_vol.replay reçoit pour cela un paramètre de devise des rendements. Sa valeur par défaut reste l'EUR, ce qui ne change rien à la candidate gelée ivol-U, qui rejoue son propre commit. La sensibilité « cœur compté en EUR » du point 5 est maintenue.

    [CLAIMED-AMEND] lane myia-po-2024:CoursIA-3 -- paths: MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/league_correlation.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/league_core_series.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/shadow_inverse_vol.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/tests/test_league_correlation.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/tests/test_league_core_series.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/tests/test_shadow_inverse_vol.py, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/shadow/league_members.json, MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/shadow/README.md

  3. added a commit that references this issue on Oct 12, 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