Skip to content

[QC-research] Piotroski F-Score Investing (#15728) #17770

Closed

Description

@jsboige

Sous-grain de l'EPIC #11698 (moissonnage quantconnect.com/research/). Article 15728, préflight par numéro : aucune issue/PR existante (vérifié gh issue list --search 15728 / --search Piotroski / gh pr list), pas de cellule Piotroski dans les notebooks (grep piotroski origin/main : 5 fichiers, tous dans QuantConnect/ — voir voisinage).

Article source

Lecture analytique

Ce que l'article annonce

Filtre d'univers Piotroski F-Score ≥ 7 (9 sous-scores calculés sur MorningStar US Fundamental : ROA+, CFO+, ΔROA+, accruals, Δlevier, Δliquidité, Δactions, Δmarge brute, Δrotation d'actifs), pondération sectorielle (SectorWeightingPortfolioConstructionModel), exécution SpreadExecutionModel(0.01), slippage VolumeShareSlippageModel. Backtest 3 ans (07/2020-07/2023) vs SPY : CAR 43,2 % vs 14,4 %, Sharpe 1,139 vs 0,722 — mais MaxDD pire (29,9 % vs 26,3 %), vol annuelle ~2× (0,293 vs 0,151), et l'auteur conclut lui-même « weakly proven » : IC95 des rendements annuels se chevauchent ((9,2 %, 76,6 %) vs (−3,1 %, 31,8 %)).

Sources primaires citées / à vérifier

  • Piotroski, Joseph D. (2000/2002), « Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers », J. Accounting Research 38 (Supplement) 1-41 / U Chicago GSB working paper — la source primaire. Vérifier : le papier prescrit (a) un pré-filtre book-to-market du bas 80 %, (b) données annuelles avec mise à jour ~5 mois après fin d'exercice (éviter look-ahead), (c) portefeuille equal-weighted des F-Score 8-9. L'implémentation de l'article utilise three_months vs one_year (comparaisons trimestrielles ≠ papier) — divergence identifiée par Fyker1 en discussion.
  • Eremenko (2017) SSRN 3262154 ; Mohr (2012) F-score+momentum sur 2008 ; Hyde (2018) market-neutral high/low F-Score — extensions citées dans la discussion de l'article.

Réserves mesurées dans la discussion (à porter dans la distillation)

  1. Liquidité (Pavel Fedorov, 4,9 k) : « tout le retour vient d'actions totalement illiquides ; avec un critère de dollar-volume décent, les résultats deviennent horribles ». Réponse de l'auteur : l'illiquidité serait constitutive du value (l'arbitrage déjà réalisé quand le volume monte) — hypothèse testable, pas un fait. Croisement direct avec le notebook récent de liquidité feat(qc,#16239): QC-Py-14b — liquidité et coûts d'exécution (proxys, capacité, stress COVID réel) #17753 (QC-Py-14b : proxys, capacité, stress COVID).
  2. Implémentation ≠ papier (Fyker1 + version STAFF Derek Melchin) : une version corrigée suivant le papier original (yearly, +5 mois post-fiscal, exclusion B/M bas 80 %, seuil 8-9) a été postée en discussion par le staff — la divergence three_months/one_year peut reclassifier des sous-scores.
  3. Coût de calcul (AlMoJo + Jared Broad) : backtest fondamental > 1 h sur compte gratuit avant optimisation ; staff a ensuite « simplified, limited universe, optimized universe size, higher dollar volumes » + 2 notebooks de distribution des facteurs — la version actuelle n'est pas celle des métriques du tableau.

Différenciation vs bouquet existant

Verdict

Acceptance locale

  • Article lu en entier (lecture effective ce cycle : corps + discussion STAFF + commentaires)
  • Voisinage docs/qc/qc-strategies-status.md re-vérifié
  • Sources primaires identifiées (Piotroski 2000/2002 — fait ci-dessus) et tracées (papier à archiver bibliographie privée si PDF récupéré)
  • Verdict coché avec justification
  • PR ou commentaire GH associé si verdict CONSOLIDATION / PÉDAGOGIQUE / NOUVEAU

Liens

  • Registre : docs/qc/qc-research-seeded.json (entrée 15728, issue: null → à sync)
  • Dataset cité : MorningStar US Fundamental (quantconnect.com/datasets/morning-star-us-fundamentals)

Part of #11698

Activity

  1. jsboige commented on Sep 25, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2025:CoursIA — distillation Piotroski 15728 : lecture analytique faite (issue body), verdict CONSOLIDATION à finaliser contre HighBookToMarketFScore-QC + qc-strategies-status.md ; construction dès ouverture du cap WIP (16/15, 2 sorties requises). Sync du registre qc-research-seeded.json (entrée 15728) à inclure dans la PR de livraison.

  2. jsboige commented on Sep 25, 2026

    @jsboige
    OwnerAuthor

    Verdict : CONSOLIDATION (coché) — livré sur branche feature/17770-piotroski-fscore (tête 3bec5a1ed4), PR à ouvrir dès que le cap WIP de la lane le permet (15/15 effectif, cf DM ai-01).

    Le bouquet portait déjà le F-Score via le projet cloné HighBookToMarketFScore-QC (library claim, drapeau SUSPECT 3 causes) : la distillation consolide plutôt qu'elle ne duplique —

    • le notebook QC-Py-05b-FScore-Piotroski.ipynb apporte la version fidèle au papier 2000 (convention annuelle + retard fiscal) que le projet existant ne documente pas, et mesure la divergence avec l'implémentation de l'article (three_months/one_year) : 10/14 scores différents, 5/14 bascules du seuil ≥ 7 ;
    • le diagnostic de liquidité (réserve Fedorov) réutilise les proxys du QC-Py-14b (feat(qc,#16239): QC-Py-14b — liquidité et coûts d'exécution (proxys, capacité, stress COVID réel) #17753) ;
    • le doute small-universe du README voisin est rendu mesurable (IC95 Monte-Carlo : le 2.09 OOS 1Y de la library tombe dans [−0,94, +3,01] d'un SR vrai 1,0).

    Acceptance : article lu intégralement (corps + discussion STAFF) ✔ · voisinage vérifié (projet voisin relu sur main, slot 05b vérifié libre) ✔ · sources primaires identifiées (Piotroski 2000, J. Accounting Research 38) ✔ · verdict coché avec justification ✔ · PR en attente de cap WIP (commit poussé).

    See #11698

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

    quantconnect-researchMoissonnage QC research — distillation intelligente

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions