Skip to content

Quantbook ETF-Pairs : la selection de cointegration ne retient aucune paire sur l'univers a 10 tickers #20910

Closed

Description

@jsboige

Part of #20355

Constat

Le quantbook MyIA.AI.Notebooks/QuantConnect/projects/ETF-Pairs/quantbook.ipynb ne retient aucune paire cointegrée sur son univers actuel, donc sa section 3 (« Backtest Pairs Trading ») ne demontre rien : toutes les metriques sortent a zero.

Mesure firsthand (re-execution du 2026-10-15, commit 2162087fcd8 de #20447, kernel LEAN Research local, fenetre 2020-01-02 → 2025-12-31, 1508 jours, 10 tickers) :

  • critere de selection du carnet : p-value < 0.05 ET demi-vie < 50 jours
  • resultat : Paires cointegrees trouvees: 0
  • consequence : Sharpe 0.000, CAGR 0.0%, MaxDD 0.0%, Vol 0.0% sur les trois seuils de z-score et les trois lookbacks testes
  • reference SPY B&H (meme execution) : CAGR 15.9%, Sharpe 0.747, MaxDD -25.4%

Le zero n'est pas un accident de comptabilite (le correctif de #20355 est en place) : c'est le filtre de demi-vie qui ecarte tous les candidats.

Mesure du mecanisme

Diagnostic independant sur la meme fenetre (data daily ajustee), test d'Engle-Granger puis demi-vie par regression du spread :

Paire p-value demi-vie retenue ?
SPY-AAPL 0.0399 81.6 j non (demi-vie >= 50)
AAPL-MSFT 0.0632 78.4 j non (p >= 0.05)
IWM-EFA 0.0639 72.2 j non (p >= 0.05)
EFA-AMZN 0.0838 86.1 j non (p >= 0.05)

Sur les 45 paires testees, une seule passe le seuil de p-value, et sa demi-vie (≈ 82 jours) depasse le seuil de tradabilite. Le carnet est donc structurellement vide sur cet univers, pas seulement mal parametre.

Cause probable

L'univers melange trois classes d'actifs sous un intitule qui n'en annonce qu'une : le commentaire du carnet dit « Univers d'ETFs sectoriels » mais la liste contient cinq actions individuelles (AAPL, MSFT, GOOGL, AMZN, NVDA) a cote d'ETF d'indices (SPY, QQQ, IWM, EFA) et d'un ETF obligataire (AGG). Une relation de cointegration sur les prix est peu probable entre un fonds obligataire et une action individuelle, et la demi-vie des relations qui subsistent est trop longue pour la strategie visee.

Le carnet a par ailleurs ete etendu de 5 a 10 tickers sans re-execution : les sorties committee sur main decrivaient encore l'ancien univers a 5 tickers (Donnees chargees: 7540 lignes = 1508 x 5), ce qui masquait le probleme.

Options (a arbitrer, pas tranchees ici)

  1. Reduire l'univers a une classe d'actifs coherente (ETF d'indices seuls, ou actions seules) et verifier que la selection redevient non vide.
  2. Assouplir le filtre de demi-vie (le seuil de 50 jours est une convention, pas une contrainte du modele) et documenter le nouveau seuil.
  3. Assumer la vacuite comme resultat pedagogique explicite (le carnet enseigne alors qu'une recherche de cointegration peut legitimement ne rien rendre) et reorganiser la section 3 en consequence.

Les options 1 et 2 changent la definition de la strategie : elles demandent un arbitrage de conception, pas une reparation de sorties. C'est pourquoi la re-execution de #20447 a committee le resultat vide tel quel.

Acceptance

  • Une des trois options est choisie et ecrite dans le carnet.
  • Le carnet est re-execute et ses sorties committees correspondent a la prose (regle C.2 / C.4).
  • Si l'option 3 est retenue, la section 3 est reecrite pour presenter l'absence de paire tradable comme le resultat, avec la mesure qui le fonde.

Activity

  1. jsboige commented on Oct 20, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA-2 -- fix(qc,#20910): option 2 (seuil demi-vie 50 -> 90 j, documente) + re-execution du quantbook. Grain: DEEP/qc (plancher G-VAR-1).

  2. jsboige commented on Oct 21, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2023:CoursIA-2 -- PR #21713 (option 2 arbitree : seuil de demie-vie 50 -> 90 jours, re-execution LEAN Research reelle)

    Resume des mesures fraiches (fenetre 2020-01-02 -> 2025-12-31, 1508 jours, 10/10 cellules code executees, 0 erreur) : 1 paire retenue (AAPL-SPY, p-value 0.0427, hr 0.369, HL 82.8 j) ; 40 trades ; Sharpe -3.952 / CAGR -0.1% / MaxDD -2.2% en config par defaut ; meilleur lookback 100 j (Sharpe -3.557) ; reference SPY B&H CAGR 15.6%, Sharpe 0.727. Le verdict declare dans le carnet : resultat de marche negatif (selection non vide, strategie ne bat pas la reference), plus un etat de selection vide.

    Les 3 criteres d'acceptance sont couverts : option ecrite dans le carnet (cellules 7-8 + 9), sorties re-executionnees coherentes avec la prose (C.2/C.4), section 3 reecrite sur les mesures. Le detail vit dans le body de la PR.

    — lane myia-po-2023:CoursIA-2 c.1703

    🤖 Generated with Claude Code

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions