Jikipedia
第 04 篇

雪球云蒙银行股搬砖

把雪球大 V 云蒙的银行股策略搬上聚宽:用盈利性、资本约束、拨备回拨三类指标乘出一个综合分,再除以市净率得到「性价比」,只持评分最高的 4 只、每次换仓要求比分高出 3% 才动。本篇是量化课堂第 4 篇(postId=1402,作者 Haozun),示范「看懂大 V 的公开策略 → 在平台实现 → 回测检验」三步。素材见 raw/collections/jq-quant-classroom/04-04-雪球云蒙银行股搬砖md.md。

量化银行股综合打分市净率云蒙调仓高股息价值

这是什么

本篇讲一个综合打分 + 仓位管理的银行股量化选股策略,来源是雪球大 V 云蒙公开发布的《银行股量化指标选股》(经作者授权)。思路分三层:① 用盈利性指标、资本约束及稳健指标、资本回拨系数给每只银行股算出「财报评分」;② 用评分 ÷ 市净率得到「单位估值评分」(性价比),实现横向对比;③ 在 16 只银行股里始终持有评分最高的 4 只,按 4:3:2:1 分配资金,且只有当新进者比被替换者评分高出 3% 以上才调仓。文章还讲透了一套「从右边开始比较」的份额调整规则,并演示 CSV 评分数据怎么读进回测。

核心要点

为什么要看大 V(本系列的方法论)

  • 自己一时想不到好策略的解法之一:看金融论坛大 V 公开的成熟策略。
  • 三步走:看懂公开策略 → 在 JoinQuant 平台实现 → 回测检验。

云蒙的银行股打分模型(招商银行为例)

  1. 盈利性指标:2011–2015(原文列了六个数,年份口径含混)加权平均 ROE 分别为 21.75%、24.17%、24.78%、23.12%、19.28%、17.09%,按 1:2:3:4:5:6 权重加总再除以 21,得 6 年加权 ROE = 20.75%。考虑银行同质化严重:以 80 分为标杆,40 分给线性对比、40 分给同质化,盈利性指标 = ROE×200+40 = 81.51。
  2. 资本约束及稳健指标:用核心资本充足率衡量杠杆风险。银行整体系统性风险还较小,因此每比 8.5% 多 1 个点给 2% 溢价。招行年报核心资本充足率 10.83% → (10.83%−8.5%)×2+1 = 1.0466。
  3. 资本回拨系数(拨备盈亏):严格保守假设——80% 不良贷款损失掉、40% 关注类损失掉、80% 逾期超 90 天损失掉、40% 逾期 90 天内损失掉;逾期与关注/不良有重复所以除以 2;再扣 25% 税;比上股东权益统一成系数。招行:拨备总额 848 亿、关注贷款 738 亿、不良贷款 474 亿、90 天内逾期 354 亿、超 90 天逾期与重组贷款 495 亿、普通股股东权益 3608 亿 → 算得 1.0504。
  4. 年报综合评分 = 81.51 × 1.0466 × 1.0504 = 89.61 分。
  5. 季报也能评分:年报数据最全;一季报没公布关注贷款,就按不良贷款的同比增加来推算;逾期/重组继续用年报数;当年 ROE 用当期同比乘去年全年。一季报:盈利性 78.20、资本约束 1.0645、资本回拨系数口径(原文写作 6.45%,疑为另一个 1.0645 级的系数)→ 一季报评分 89.29 分。
  6. 性价比 = 评分 ÷ 市净率:4 月 30 日 A 股市净率 1.181 倍、H 股 0.946 倍。A 股 = 89.29/1.181 = 75.6 分;H 股 = 89.29/0.946 = 94.4 分。模型到这一步都是「盲评」(只用静态财报数据),除市净率后得到的就是性价比,可横向对比。

评分数据怎么进回测(CSV 导入)

  • 分数算好存在 CSV;研究模块点 upload 上传文件(示例 bankshares.csv)。
  • 回测里读取:
    from pandas import Series, DataFrame
    from six import StringIO
    g.data_body = read_file("bankshares.csv")
    g.rating_data = pd.read_csv(StringIO(g.data_body))
    

策略构建(买卖与调仓)

  • 16 只银行股里选 num = 4 只进组合。
  • 财报更新 → 评级变化 → 判断是否调仓;始终保持评级最高的 4 只。
  • 防频繁调仓的 3% 门槛:只有当新进者(如 E)的评级比被替换者(如 D)高 k = 3% 以上才调仓。例子:原前 4 名 A、B、C、D,新前 4 名 A、B、C、E——只有当 E 比 D 高 3% 以上才换。
  • 权重:初始按评分从高到低给 4:3:2:1,并把全部资产按此分配。例:100 万资产、比例 4:3:2:1 → 第一名买 100×4/(1+2+3+4) 万元。

调仓的份额调整规则(从右边开始比较)

  • 例:原 A100 分、B95、C80、D60 → 权重 A4 B3 C2 D1。重评后 A110、B100、D85、C75 → A、B 名次没变不动;D 升到第三,理论上应加 1 份、C 减 1 份;先验 D=85 是否比 C=80 高 3% 以上——满足 → D 加 1 份、C 减 1 份,得 A4 B3 D2 C1。
  • 股票更多、发生多处名次变化时,遵循「始终从右面(末位)开始比较」:找到份额不对的位次,往左找第一个缺份的位次,判断两分差是否满足 3%,满足则移动相应份数。三个示例演示了移 1 份、移 2 份等情形。
  • 作者明说:个别股票排名变了、但没满足 3% 时,四只持仓的份额会偏离 4:3:2:1——这是策略的正常现象。

结果与总结

  • 在 JoinQuant 回测,基准设银行股指数,结果见图(无数值正文)。
  • 属「从云蒙处适度修改」的版本;鼓励克隆回测自己跑。

机制 / 论证

  • 多指标相乘成综合分:盈利(ROE 加权)、资本约束(充足率溢价)、拨备回拨(资产质量)三类指标量纲不同,各自折算成可乘系数,最后乘出 89.61 分——这是「把多因子合并成一个分数」的打分法实例。
  • 银行同质化假设:银行股业务高度同质,用「80 分标杆 + 线性对比」映射 ROE,避免某一家凭单一指标失真。
  • 除市净率 = 盲评变性价比:财报评分是「公司好不好」的静态质量;除以 PB 得到「花多少钱买到这个质量」——A 股 75.6 分 vs H 股 94.4 分,同一家银行 H 股更便宜,这就是可横向对比的性价比。
  • 3% 门槛与从右比较:评分小数抖动会引发无谓换仓(付手续费、吃排名噪音),所以设 3% 缓冲;从右往左比较是为了把「多份 vs 缺份」的差额一次理顺,避免连锁误判。
  • 权重跟着评分走:4:3:2:1 让评分高的股票拿更大仓位——选股与仓位管理合在同一套评分里。

可操作

  • 打分参数(保留原文):
    • 盈利性:6 年加权 ROE(权重 1:2:3:4:5:6,除以 21);指标分 = ROE×200+40(80 分标杆、40 线性 + 40 同质化)。
    • 资本约束:核心资本充足率,每比 8.5% 高 1 个百分点 +2% 溢价,即 (充足率−8.5%)×2+1。
    • 资本回拨:拨备总额 − 各类损失假设(80% 不良 + 40% 关注 + 80% 超 90 天逾期 + 40% 内逾期,重复项除 2)×0.75 税后,再 ÷ 普通股股东权益 +1。
    • 综合分 = 盈利性 × 资本约束 × 资本回拨;性价比 = 综合分 ÷ 市净率。
    • 组合:num=4 只;调仓门槛 k=3%;权重 4:3:2:1(等比例放大到全部资产)。
  • CSV 导入代码:研究模块 upload → read_file("bankshares.csv")pd.read_csv(StringIO(g.data_body))
  • 落地提示:选股范围 = A 股银行(见 股票池(交易对象范围与过滤));财务字段取数见 聚宽行情与财务数据获取 API;下单/仓位用 order 系列(聚宽下单 API 与订单对象)。正文未贴交易代码,具体 API 在附图与官方源码 [需要验证]。
  • 教训:给组合设换仓缓冲(3%)能挡掉排名噪声与手续费;把「质量分」与「价格」分开算,最后除价格才得到性价比。

术语

  • 加权平均 ROE / 净资产收益率:股东权益的赚钱效率,按年份加权。
  • 核心资本充足率:衡量银行资本扛杠杆风险的能力。
  • 拨备 / 资本回拨系数:拨备 = 银行预提的坏账准备;回拨系数估算把拨备用完(或盈余)后还剩多少。
  • 不良贷款、关注类贷款、逾期贷款:按风险从高到低/从低到高的贷款分类。
  • 市净率(PB):股价 ÷ 每股净资产;A/H 同股不同价造成差异。
  • 盲评:只用静态财报数据的评分,不含价格判断。

不确定 / 待验证

  • 原文数字多处口径含混:盈利性指标年份列了 6 个却写「2011–2015」;拨备公式排版破碎(0.580%、括号错位);一季报「资本回拨系数为 6.45%」与上下文(应为一个 1.06x 系数)对不上。本页按上下文还原,落地需对照雪球原帖与官方源码 [需要验证]。
  • 正文把策略作者写成「雪球大 V 神采飞扬」一句,前后文均指云蒙——疑为原文笔误,以云蒙为准 [需要验证]。
  • 回测只有图、无数值;银行股样本 16 只、2015 年语境,模型参数(80 分标杆、8.5%、损失比例)是作者主观设定。
  • 「每比 8.5% 多 1 个点给 2% 溢价」的 (10.83−8.5)×2+1=1.0466 是按百分比点还原的解读。

相关

更新 2026-09-06

检索知识库

按标题、类型或正文检索