Repository navigation
[QC-research] Piotroski F-Score Investing (#15728) #17770
Description
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
- URL : https://www.quantconnect.com/research/15728/piotroski-f-score-investing/
- Auteur(s) : Louis Szeto (entrée org « Duke ») ; discussion : Jared Broad (STAFF), Derek Melchin (STAFF), Pavel Fedorov, Fyker1, Michael Hofer
- Catégorie putative : factor (value / fondamental)
- Date de publication : 2025-11-04 (lastmod registre
qc-research-seeded.json)
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_monthsvsone_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)
- 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).
- 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.
- 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
- Filtre :
docs/qc/qc-strategies-status.md+MyIA.AI.Notebooks/QuantConnect/projects/ - Projets voisins :
projects/HighBookToMarketFScore-QC/— composite F-Score × high book-to-market (grep piotroski : README + catalog + OVERVIEW). PR docs(qc,#1621,#9434): HighBookToMarketFScore-QC README — multi-source metrics (library #343 claim + SUSPECT overfit value+quality) #9555 y a documenté « multi-source metrics (library feat(Sudoku): completed Sudoku-9 notebook #343 claim + SUSPECT overfit value+quality) ».- QC-Py-14b liquidité (feat(qc,#16239): QC-Py-14b — liquidité et coûts d'exécution (proxys, capacité, stress COVID réel) #17753) — réservoir de méthodes capacité/liquidité réutilisables pour la réserve 1.
- L'article est-il redondant ? PARTIELLEMENT : le F-Score existe dans le bouquet via HighBookToMarketFScore-QC, mais (a) l'article apporte la version corrigée STAFF suivant le papier 2002 (timing fiscal, pré-filtre B/M) que le projet existant ne documente pas, (b) les réserves de liquidité/overfit sont exactement les doutes SUSPECT déjà portés par docs(qc,#1621,#9434): HighBookToMarketFScore-QC README — multi-source metrics (library #343 claim + SUSPECT overfit value+quality) #9555 sur le projet voisin. La distillation doit donc consolider plutôt qu'ajouter.
Verdict
- CONSOLIDATION — piste privilégiée a priori (voir ci-dessus) : enrichir
HighBookToMarketFScore-QC(timing fiscal papier 2002 + diagnostic liquidité à la feat(qc,#16239): QC-Py-14b — liquidité et coûts d'exécution (proxys, capacité, stress COVID réel) #17753) OU notebook QC-Py de recherche dédié au diagnostic. À trancher en relisant le README du projet etqc-strategies-status.md. - PÉDAGOGIQUE
- NOUVEAU
- IGNORE
Acceptance locale
- Article lu en entier (lecture effective ce cycle : corps + discussion STAFF + commentaires)
- Voisinage
docs/qc/qc-strategies-status.mdre-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
jsboige commentedon Sep 25, 2026
[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 registreqc-research-seeded.json(entrée 15728) à inclure dans la PR de livraison.jsboige commentedon Sep 25, 2026
Verdict : CONSOLIDATION (coché) — livré sur branche
feature/17770-piotroski-fscore(tête3bec5a1ed4), 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 —QC-Py-05b-FScore-Piotroski.ipynbapporte 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 ;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
fix(qc,#17770): repair the red gates of #17778 — liens QC-Py-14b, com…
Add: QC-Py-05b-FScore-Piotroski — distillation article 15728 (datatio…