Q-CodeQ-Code 打开工作台

ROE 持续性选股

因子选股A股风险 中进阶更新 2026-09-24#盈利质量#持续性#财务因子

不追单季高 ROE,而是选择近八个季度 ROE 均值高且波动小的公司——盈利的稳定性比一次性爆发更值钱。

策略目标

质量因子的学术定义核心是“盈利能力 + 持续性 + 安全性”[2]:单季 ROE 冲高可以是周期顶、一次性收益甚至财技,而连续八个季度的高 ROE 才构成竞争力的证据。盈利能力(毛利/总资产)本身的定价价值有独立于价值的实证支持 [1]。本策略用“均值高 + 标准差低”双条件把持续性量化,避开一次性爆发的伪质量。

数据需求(财务)

数据 字段 频率 用途
财务 单季度 ROE 季度 均值与波动
状态 行业、ST、上市日期、披露日期 基础信息 过滤与时滞

需要至少 8 个季度的 ROE 序列,上市不足两年(数据不足)的标的直接排除。

持续性复合分

Scorei=rank(ROEˉi,8q)+(1−rank(σROE,i,8q))Score_{i} = \mathrm{rank}\left(\bar{ROE}_{i,8q}\right) + \left(1 - \mathrm{rank}\left(\sigma_{ROE,i,8q}\right)\right)

均值排名衡量盈利水平,波动排名(反向)衡量稳定性,两维等权。

执行规则

季报后滚动更新,披露满 5 个交易日才可纳入。季度调仓 40 只等权;ROE 连续两季转负或标准差突然放大(盈利失稳)的持仓提前剔除。

风险与失效场景

  • 周期顶的伪持续:强周期行业在景气上行段 ROE 高且稳定地逐季抬升,持续性指标会误判为优质,需辅以景气位置判断;
  • 8 季窗口的滞后:盈利拐点出现后,均值与波动要数个季度才反映;
  • 行业间不可比:ROE 水平与波动存在行业结构差异,跨行业直接排名可做行业中性化对照;
  • 财报拥挤:优质稳定公司被普遍重仓,估值折扣少;
  • 数据修正:财报追溯调整会改变历史 ROE 序列,口径需锁定。

验证状态

待验证。需要完成:均值/波动两维的单因子分组对照;8 季与 12 季窗口对照;行业中性化前后差异;周期股占比对组合的影响。本文不提供任何未实测的收益或回撤数字。

参考文献与延伸

[1] Novy-Marx, R. (2013). The Other Side of Value: The Gross Profitability Premium. Journal of Financial Economics, 108(1).(盈利能力因子独立定价证据)

[2] Asness, C., Frazzini, A., & Pedersen, L. H. (2019). Quality Minus Junk. Review of Accounting Studies, 24(1).(质量 = 盈利 + 持续 + 安全的框架)

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

策略逻辑结构

  1. 季度财务数据 — 近 8 季 ROE 与披露日期
  2. 披露时滞纪律 — 披露满 5 个交易日可用
  3. 持续性与水平 — 均值与标准差双维度
  4. 范围过滤 — 剔除金融、ST、次新
  5. 持续性组合 — 复合分前 40 只等权
  6. 季度再平衡 — 缓冲带与恶化剔除

AI 生成提示词

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

请生成一个 QMT 兼容的 A 股 ROE 持续性选股策略。通过平台财务数据接口获取近 8 个季度 ROE:剔除金融、ST 与上市不足两年的标的;计算 ROE 均值与标准差,要求披露后满 5 个交易日方可纳入;复合得分 = 均值截面分位 + (1 - 标准差截面分位),取复合分最高的 40 只等权持有。季度调仓、缓冲带、单票上限写入 init,禁止未来函数,兼容回测与实盘分支,输出单个完整 Python 文件并包含详细日志。
用自然语言,生成你的 QMT 策略
注册即赠 200 积分,约可生成 5 次 · 支持 Kimi / GLM / DeepSeek
打开 Q-Code 工作台