Skip to content

[QC-research] Probabilistic Sharpe Ratio (#17112) #18359

Closed

Description

@jsboige

Article source

  • URL : https://www.quantconnect.com/research/17112/probabilistic-sharpe-ratio/
  • Auteur(s) : republication du post de forum « Probabilistic Sharpe Ratio » de Jack Simonson (QC staff) ; code exécutable en QuantBook embarqué dans la page. La page research porte la mention « pending review » (0 upvote) mais le contenu intégral (prose + notebook 21 Ko) est public et lisible.
  • Catégorie putative : risk / pedagogy (métrique de performance)
  • Date de publication : republication ; lastmod 2024-11-06 (post d'origine ~2019, fenêtre de données 2019-08→2024-05)

Lecture analytique

Ce que l'article annonce

Le Sharpe observé est un estimateur ponctuel : le PSR de Bailey & López de Prado (2012) donne la probabilité que le vrai Sharpe dépasse un seuil SR* choisi, en corrigeant l'erreur-type par l'asymétrie et la kurtose des rendements. Trois démonstrations : (1) un panier equal-weight de 10 valeurs avec SR 0,07 vs benchmark SPY 0,05 n'a que 77 % de chances d'être réellement supérieur ; (2) l'exemple « zéro-compétence » (SR 0,458, n=29) : significatif à 95 % sous gaussianité, plus significatif dès que l'on compte skew −2,448 / kurtose 10,164 ; (3) l'anatomie de sensibilité — le PSR monte avec SR, la longueur d'échantillon et l'asymétrie positive, descend avec la kurtose. Point méthodologique central : aucune annualisation — le PSR se calcule à la fréquence native des rendements, ce qui en fait la métrique préférable pour les stratégies à fréquences irrégulières.

Sources primaires citées / à vérifier

  • Bailey, D. H. & López de Prado, M. — The Sharpe Ratio Efficient Frontier (2012), SSRN 1821643, DOI 10.2139/ssrn.1821643 — source de la formule PSR.
  • López de Prado, M. & Lewis, M. J. — Detection of False Investment Strategies Using Unsupervised Learning Methods (2018), SSRN 3167017 — source de l'exemple zéro-compétence (SR 0,458, skew −2,448, kurt 10,164).
  • Mertens, E. — Comments on variance of the IID estimator in Lo (2002) — normalité asymptotique de l'estimateur de Sharpe même sous non-gaussianité.

Variances mesurées entre l'article et sa propre source (lecture du code embarqué, pas du résumé) :

  1. Convention de kurtose incohérente dans le code de l'article. La formule de Bailey–López de Prado utilise la kurtose brute γ₄ (gaussienne = 3, terme (γ₄−1)/4). Les fonctions zero_skill_normal()/zero_skill_non_normal() de l'annexe respectent cette convention (3 et 10,164). Mais la classe BuyAndHold.get_psr() appelle scipy.stats.kurtosis() sans fisher=False — kurtose excédentaire (gaussienne = 0) — injectée dans une formule qui attend la brute : le terme (γ₄−1)/4 vaut −1/4 au lieu de 1/2 pour des rendements gaussiens. L'exemple phare de l'article (PSR 0,765) est donc calculé avec une erreur de convention dans son propre code. C'est un piège reproductible pour l'étudiant : scipy dit Fisher par défaut.
  2. Balayage de kurtose physiquement impossible. varying_kurtosis() balaie la kurtose de −3 à +47 : la kurtose brute est ≥ 1 par construction ; la plage n'a de sens qu'en convention excédentaire, alors que la formule du même bloc utilise la convention brute — mélange des deux conventions dans la même cellule.

Différenciation vs bouquet existant

  • Filtre : docs/qc/qc-strategies-status.md — le PSR y est la métrique d'edge de toute la flotte (25 tranches de verdicts « PSR < 50 % »), mais les nombres viennent du moteur LEAN (statistique rapportée par qc-mcp-lite), jamais dérivée devant l'étudiant.
  • Projets voisins :
  • L'article est-il redondant ? PARTIELLEMENT — le cœur de la formule et la leçon du seuil sont déjà dans 12b §3. Trois apports ne sont nulle part dans le bouquet : (a) le piège de convention kurtose Fisher/Pearson, démontrable sur le code même de l'article ; (b) le point « pas d'annualisation » — la psr() actuelle de 12b prend un Sharpe annualisé + n_years, saisie sous laquelle les termes γ₃·SR et γ₄·SR² opèrent à la mauvaise échelle et déforment matériellement le PSR sous non-normalité (à quantifier dans le notebook) ; (c) l'anatomie de sensibilité (PSR vs longueur d'échantillon / skew / kurtose / benchmark).

Verdict

  • CONSOLIDATION
  • PÉDAGOGIQUE — l'article documente un concept à intégrer dans un cours existant. Notebook à modifier : MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-12b-Backtest-Validity.ipynb. Pas de nouveau notebook. Enrichissement de §3 : calcul par-période vs saisie annualisée (distorsion quantifiée), piège de convention kurtose sur le code de l'article comme pièce forensique, courbes de sensibilité, la chaîne de sources primaires (SSRN 1821643 / 3167017 / Mertens 2002) et le renvoi à l'implémentation de production correcte (L5_vol_targeted_composite.py — copie pédagogique déclarée).
  • NOUVEAU
  • IGNORE

Acceptance locale

  • Article lu en entier (prose + notebook embarqué 21 Ko extrait du JSON de la page et lu cellule par cellule)
  • Voisinage docs/qc/qc-strategies-status.md re-vérifié (PSR = métrique flotte via LEAN, aucune dérivation pédagogique existante)
  • Sources primaires identifiées (3) et tracées
  • Verdict coché avec justification
  • PR associée : #18362 (enrichissement QC-Py-12b)

Liens

Activity

  1. added
    documentationImprovements or additions to documentation
    quantconnectQuantConnect strategy development
    quantconnect-researchMoissonnage QC research — distillation intelligente
    on Sep 29, 2026
  2. jsboige commented on Sep 29, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2025:CoursIA -- article #17112 (Probabilistic Sharpe Ratio) : verdict PEDAGOGIQUE, enrichment QC-Py-12b -- paths: MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-12b-Backtest-Validity.ipynb, docs/qc/qc-research-seeded.json

  3. jsboige commented on Sep 29, 2026

    @jsboige
    OwnerAuthor

    PR associee (verdict PEDAGOGIQUE) : #18362 -- enrichment QC-Py-12b section 3bis, re-exec 36/36, ratchets verts. Case acceptance PR cochee a la livraison.

  4. added a commit that references this issue on Sep 29, 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

    documentationImprovements or additions to documentationquantconnectQuantConnect strategy developmentquantconnect-researchMoissonnage QC research — distillation intelligente

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions