Q-CodeQ-Code 打开工作台

F-Score 财务趋势选股

因子选股A股风险 中进阶更新 2026-09-25#F-Score#价值陷阱#财务因子

Piotroski 九项二值基本面打分:在低估值价值池内分离基本面改善者与恶化者,把价值陷阱筛在组合之外。

策略目标

价值因子长期有效,但低估值组合里混着大量基本面持续恶化、便宜有便宜理由的"价值陷阱"。Piotroski (2000) 的切入点不是预测谁会变好,而是在已经便宜的价值股池内,用 9 个来自历史财报的二值信号把基本面改善者与恶化者分开,高分组与低分组的后续收益差显著 [1]。九项信号分三组——盈利性(当前盈利、现金流真实度、盈利趋势)、杠杆与流动性(偿债方向、稀释行为)、运营效率(利润率与周转率的方向)。本策略在 A 股价值股池内执行 F-Score 打分并持有高分组合,定位是"价值陷阱筛除器":它改善的是价值组合的成分质量,而不是创造独立于价值的新收益源。

数据需求(财务)

数据 字段 来源报表 用途
盈利 净利润、总资产 利润表/资产负债表 ROA 及其变化
现金流 经营活动现金流净额 现金流量表 现金真实度
杠杆 长期负债、流动资产/流动负债 资产负债表 杠杆与流动性方向
股本 总股本变化 基础信息 增发摊薄信号
效率 营业收入、营业成本 利润表 毛利率与周转率变化
估值 市净率(或 BM) 行情衍生 价值池分组

原文献杠杆项使用利息费用字段,A 股报表口径下以长期负债率变化替代实现,替代口径在参数中标注"待确认";字段缺失的标的跳过该分项并如实降分,不做估算填充。

九项二值打分

F=∑k=19sk,sk∈{0,1},F∈[0,9]F = \sum_{k=1}^{9} s_k, \qquad s_k \in \{0, 1\}, \quad F \in [0, 9]

盈利性——① ROA > 0;② 经营现金流 > 0;③ ROA 同比提升;④ 经营现金流 > 净利润(应计质量)。

杠杆与流动性——⑤ 长期负债率同比下降;⑥ 流动比率同比提升;⑦ 未发生增发摊薄。

运营效率——⑧ 毛利率同比提升;⑨ 资产周转率同比提升。

执行规则

以市净率最低 30% 定义价值池(口径全程固定并写入参数);池内剔除 ST、金融行业与上市不满 3 年的标的(保证同比序列完整);年报为主调仓节点,可扩展季频,披露满 5 个交易日才可用;F ≥ 7 的标的等权持有,上限 40 只;持有期打分跌破 5 的提前剔除。与站点已有条目的分工:价值质量双因子选股是连续打分的截面排序,本策略是二值打分的陷阱筛除,同一池内不可混用两套逻辑;本策略更强调"不买什么",纪律性优先于持仓集中度。

风险与失效场景

  • 二值化信息损失:ROA 提升 1% 与提升 100% 同分,幅度信息全部丢弃,连续标准化打分版可作为对照;
  • 跨行业可比性:毛利率、周转率的方向性打分隐含行业结构假设,重资产行业天然吃亏,可选行业内分位打分但增加复杂度;
  • 口径漂移:会计准则修订与报表重述会改变分项方向,登记口径需锁定版本;
  • 稀释信号的政策依赖:增发信号的含义随再融资政策变迁,历史规律未必延续,标注待确认;
  • 拯救不了价值本身:F-Score 只在价值池内拉开组内差距,价值因子整体失效的风格环境中组合照样跑输;
  • 盈余管理:九项全部是财报衍生信号,定向盈余管理可以把分数做出来,需要审计意见等外部信号兜底。

验证状态

待验证。需要完成:F 分组收益单调性;价值池内高低分组的价差显著性;二值打分与连续标准化打分的对照;年报与季报频率对照;分项贡献拆解(识别 A 股中真正起区分度的分项,允许结构性删减)。本文不提供任何未实测的收益或回撤数字。

参考文献与延伸

[1] Piotroski, J. D. (2000). Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers. Journal of Accounting Research, 38 (Supplement).(F-Score 原始文献)

[2] Q-Code 量化策略工作台

策略逻辑结构

  1. 财报九项字段 — ROA、现金流、负债、股本、周转率
  2. 披露时滞纪律 — 年报披露满 5 个交易日
  3. 九项二值打分 — 三组九项各记 0 或 1
  4. 价值池筛选 — 市净率最低 30%,剔除 ST/金融/次新
  5. 高分组合 — F ≥ 7 等权 40 只
  6. 劣化剔除 — F 跌破 5 提前移出

AI 生成提示词

复制以下提示词,打开 Q-Code 工作台粘贴到 AI 对话框,即可自动生成该策略的 QMT 策略代码(单个完整 .py 文件,支持 QMT 回测与实盘)。

请生成一个 QMT 兼容的 A 股 F-Score 价值陷阱筛除策略。市净率最低 30% 定义价值池,剔除 ST、金融行业与上市不满 3 年标的;九项二值打分:ROA 为正、经营现金流为正、ROA 同比提升、经营现金流高于净利润、长期负债率下降、流动比率提升、未增发摊薄、毛利率提升、资产周转率提升;字段缺失时按参数中标注的替代口径降分处理,不做估算;只使用披露满 5 个交易日的年报数据,年频调仓,池内 F 大于等于 7 的 40 只等权持有,打分跌破 5 提前剔除。兼容回测与实盘分支,参数内联在 init,输出单个完整 Python 文件并包含详细日志。
用自然语言,生成你的 QMT 策略
注册即赠 200 积分,约可生成 5 次 · 支持 Kimi / GLM / DeepSeek
打开 Q-Code 工作台