Task #7 — 可转债量化组合 · Brief v0
Author: @RayDario
Sources: 万柏 PM Q&A (Kaite 转发, 2 篇) + 2024 转债 default 复盘 + 中证转债 历史回测
Status: v0 — Kaite verification + @JimSimons data/backtest spec
---
0. 一页摘要
mini-cypress 可转债 = **借鉴万柏 PM 多因子框架** + 1 亿规模适配 (vs 万柏 30 亿)
**核心思想**: 按 **平底溢价率** 分三层 (偏债 / 平衡 / 偏股), 每层独立选 top 20%, 多因子模型加权打分, 月度 (v0) → 双周 (v0+) → 日度 (v1) 调仓节奏。
**目标** (Kaite locked): **跑赢中证可转债等权指数 +10%/年, MDD ≤ -10%**
- 注: 万柏 PM 对标"中证转债指数" (市值加权), Kaite 让我对标"等权指数" — 后者更难超越 (等权天然吃小盘 alpha), 但 +10% 仍有路径
**关键 spec** (Kaite revised, 已 lock):
- 评级 ≥ **A** (不是 AA)
- **无行业黑名单** (光伏 in)
- 硬剔除: ST / 退市风险
- 单券 ≤ 5% NAV
- 行业集中 ≤ 25% (我提议, Kaite 未否)
**v0 不做** (留 v0+ / v1):
- 日内 T0 增厚 (万柏 90% 胜率 / 5% 年化, 但需要算法交易基础设施)
- 主观条款博弈 (下修博弈), v0 纯量化
- 期权 / 杠杆
---
1. 框架综合
1.1 学术 + 实战 anchor
- **双低策略** (国内经典): 价格 < 130 + 转股溢价率 < 30%, 历史 5-10 年年化 ~15-25%
- **摊大饼**: 等权 + 信用过滤 + 流动性过滤, 收益偏 beta, alpha 来自 rebalancing
- **万柏 PM 多因子框架**: 三层分类 + 因子加权 (核心借鉴对象)
- **2024 default 事件**: 蓝盾 / 搜特 / 鸿达 — 提醒信用筛选必要性 (即使 Kaite 放宽到 A 及以上, 仍需硬剔除 ST/退市风险)
1.2 万柏 PM framework 核心 (我借鉴的)
| 元素 | 万柏 | mini-cypress v0 采纳 |
|---|---|---|
| 三层分类 (平底溢价率) | 偏债 / 平衡 / 偏股 三层独立选股 | ✅ 直接借鉴, 三层独立 top 20% |
| 因子库 | 500+, 实际常用 ~50 | v0 起步 30 个核心因子, v1 扩展 |
| 三层不同因子 | 偏债: 双低/YTM/稀释率; 平衡: delta; 偏股: 动量/换手 | ✅ 直接借鉴, §3 详列 |
| 调仓节奏 | 日度 | v0 月度 → v0+ 双周 → v1 日度 (依基础设施成熟度) |
| 日内 T0 增厚 | +5% 年化, 90% 胜率 | ❌ v0 不做, 等算法交易系统就位 |
| 单券止损 | -10% | ✅ 借鉴 |
| 仓位择时 | 60-100% (防守择时) | ✅ 借鉴 |
| 持仓数量 | ~60 只 | v0 30-50 只 (1 亿规模适配, 更分散) |
| 评级 | A 及以上 | ✅ (Kaite 也明示) |
| 总头寸 cap | 单券 5% | ✅ (Kaite 明示) |
| 主观策略 | 下修博弈 / 尽调 / 行业轮动 | ❌ v0 不做主观, 纯量化 |
1.3 mini-cypress 适配 (与万柏的差异)
- **规模**: 1 亿 vs 30 亿 → 更灵活, 不必受容量约束
- **基础设施**: 没有日内交易系统 → 先月度 / 双周, 拒绝高换手
- **决策结构**: AI agent 主导 → 优先全量化, 减少主观干预
- **对标**: 中证可转债**等权指数** (Kaite 指定, 比市值加权指数难超越, 因为等权吃小盘 alpha)
---
2. 三层分类 (按 平底溢价率)
2.1 平底溢价率定义
- **平底溢价率** = (转债价格 - 纯债价值) / 纯债价值
- 衡量转债的"股性 vs 债性" 偏好
2.2 三层划分规则
| 层 | 平底溢价率 | 股性程度 | 主要 alpha 来源 |
|---|---|---|---|
| **偏债** | < 5% | 几乎纯债 | 信用利差 / YTM / 双低反弹 |
| **平衡** | 5% - 30% | 股债混合 | delta / 期权时间价值 |
| **偏股** | > 30% | 强股性 | 正股动量 / 换手 / 流动性 |
2.3 分层后选股流程
1. 全市场转债 → 信用 + 流动性 + ST/退市过滤 → 可投池 (预计 200-300 只)
2. 按平底溢价率分三层
3. 每层独立 run 多因子模型 (因子集不同, §3)
4. 每层 top 20% 入候选
5. 三层市值权重相同 (1/3 each, 不是按数量) — 这是万柏的关键设计
6. 检查 §4 风控约束 (行业 + 单券) → 输出最终持仓
---
3. 因子库 v0 (30 因子分三层)
3.1 偏债层 (15 因子)
**估值** (alpha 来源):
1. 双低指标 = 价格 + 转股溢价率 × 100
2. 价格 (绝对值, 越低越好)
3. YTM (越高越好)
4. 纯债溢价率 (越低越好)
5. 转股稀释率 (越低越好, 大转股 = 大稀释 = 弱保护)
**基本面** (避雷 + 选优):
6. 主体信用评级 (A / A+ / AA- / AA / AA+ / AAA)
7. 评级展望 (正面 / 稳定 / 负面)
8. 公司 ROE (正股 ROE 高于行业中位)
9. 公司经营现金流 / 净利润
10. 公司 营收 yoy
**流动性 + 风险**:
11. 转债日均成交额 (近 30 日)
12. 转债日均换手率
13. 剩余规模 (流通规模 ≥ 5 亿优先)
14. 距强赎日 (太近不利, 太远利)
15. 信用利差变化 (近 20 日, 走阔 = 减权)
3.2 平衡层 (12 因子)
**期权特性** (核心 alpha):
1. Delta (越高越敏感, 弹性大)
2. Vega (越高对波动暴露大)
3. 隐含波动率 vs 历史波动率 (低估)
4. Gamma (敏感性变化)
5. 期权时间价值 (距到期年限)
**价量** (短期信号):
6. 转债 60 日动量
7. 转债 20 日 RS vs 中证可转债等权
8. 换手率 60 日均值
9. 成交额 60 日 z-score
**正股**:
10. 正股 60 日收益率
11. 正股 ROE
12. 正股 行业 RS vs 沪深 300
3.3 偏股层 (13 因子)
**动量 + 量价**:
1. 转债 60 日动量
2. 转债 120 日动量
3. 转债 突破 60 日 high (binary)
4. 换手率 z-score
5. 成交量放大 (vs 30 日均量)
**正股驱动** (强股性, 正股是核心):
6. 正股 60 日动量
7. 正股 120 日动量
8. 正股 250 日 RS vs 沪深 300
9. 正股 ROE
10. 正股 EPS 单季 yoy
11. 正股 北向资金 净买入近 20 日
**风险**:
12. 转债 60 日年化波动率 (适度防过度集中)
13. 距强赎触发 (太近 → 强赎风险)
3.4 因子加权方式 (v0)
- v0: 等权 (每层因子等权, 简化起步)
- v0+: IC 加权 (用过去 6 个月 IC 加权, 每月滚动更新)
- v1: 万柏式的 IC + IR 综合加权 + 因子库扩展
3.5 因子有效性监测 (持续动态)
- 每月计算每个因子的 1 月 IC, 6 月累计 IC
- 触发淘汰: 因子 6 月累计 IC < 0 + IR < 0.1 → 临时下线, 等评估
- 触发新增: 新因子需有 12 月样本外 IC > 0.05 + 与现有因子相关性 < 0.7
---
4. 风控 (Kaite revised + 万柏参考)
4.1 选股层风控 (硬过滤, 前置)
- 评级 ≥ A
- ST / 退市风险 / 净资产 < 5000w / 连续 2 年亏损 / 审计意见非标 → 硬剔除
- 剩余规模 < 3 亿 → 流动性差, 剔除
- 距退市 < 1 年 → 剔除
- 强赎触发 (转股价 × 1.3) → 减权或剔除 (强赎风险)
4.2 持仓集中度
- **单券 ≤ 5% NAV** (Kaite locked)
- 单行业 ≤ 25% NAV (我提议, Kaite 未否定)
- 总持仓数 30-50 只 (1 亿规模适配)
- 三层市值权重 1/3 each ± 5% (允许波动)
4.3 仓位择时 (借鉴万柏防守择时)
- 默认仓位 80% NAV (留 20% 缓冲, 防赎回 / 加仓机会)
- **触发降至 60%**:
- 信用利差 (转债加权 YTM - 5Y 国债 YTM) 20 日内走阔 > 50 bp
- 中证可转债等权指数 跌破 250 日 MA + 单周 跌 > 3%
- 沪深 300 跌破 250 日 MA + 流动性紧缩信号
- **触发降至 30%** (极端):
- 单月可转债等权指数 跌 > 8% + 信用事件链 (≥ 2 个 default in month)
- **触发加仓 (在 80% → 90%)**:
- 信用利差快速收窄 + 估值百分位 < 30th
4.4 单券风控
- **-10% 单券止损** (借鉴万柏)
- 持仓券 + 正股发生 ST / 评级负面 → 当日清仓
- 持仓券 近 5 日跌 > 15% + 正股有重大利空 → 当日清仓
4.5 调仓换手控制
- v0 月度调仓, 单次换手 ≤ 30% NAV (1 亿规模, 即 3000 w; 转债日均成交 > 3000 w 即可承接)
- v0+ 双周调仓, 单次换手 ≤ 20%
- 年换手率目标 ≤ 12 倍 双边 (远低于万柏 60 倍, 因为我们 v0 不做 日内)
---
5. JimSimons 数据 + 回测 spec
5.1 数据层
**转债数据** (rqdata):
- 全市场可转债日线 OHLCV
- 转债静态: 发行日 / 到期日 / 转股价 / 转股开始日 / 强赎条款 / 下修条款 / 剩余规模 / 信用评级 + 历史评级变动
- 转债动态: 平底溢价率 / 纯债价值 / 转股价值 / YTM / 隐含波动率 / Delta / Vega / Gamma
- 转债事件流: 强赎公告 / 下修公告 / 提前赎回 / 暂停转股
**正股数据** (复用 Task #5 / #4 部分):
- 正股日线 OHLCV + 复权
- 正股财务三表 (ROE / 经营现金流 / EPS 单季)
- 北向资金日级 (正股 net buy)
- 行业分类 (申万一级 + 中信一级)
**Benchmark**:
- 中证可转债指数 (000832) — 市值加权
- **中证可转债等权指数** (931078 or 类似代码, JimSimons 确认) — Kaite 指定 benchmark
- 5Y 国债 YTM (信用利差计算用)
**历史**:
- 转债数据起点: 2018-01-01 (可转债扩容期之后)
- 全 + 信用评级 + 事件流 + 因子原始数据
**落地**: ~/data/mini-cypress/rqdata/convertible/2018-2026/
5.2 回测任务
**baseline 配置**:
- 三层分类 → 每层多因子打分 → top 20% 入候选 → §4 风控 → 持仓 30-50 只 → 月度调仓 (v0)
- 因子等权 (v0)
- 仓位 80% 默认 + 择时降仓
- 单券 -10% 止损 / 急触发即时退出
**OOS 拆分** (与 Task #4 / #6 同):
- IS: 2018-01-01 至 2023-12-31
- OOS-A: 2024-01-01 至 2024-09-23 (2024 default 集中期, 关键 stress test)
- OOS-B: 2024-09-24 至 2025-06-30
- OOS-C: 2025-07-01 至今
**输出指标** (每个 OOS 段独立):
- 年化 / vol / Sharpe / Sortino / Calmar
- max DD + recovery 时长
- **vs 中证可转债等权指数** (Kaite benchmark): alpha / IR / 跟踪误差
- vs 中证可转债 (市值加权指数): 同上 (参考)
- 月度换手率 + 交易成本
- 三层独立表现 (每层 alpha / IC)
- 因子 IC 时序 (验证因子有效性变化)
- 2024 default 期间表现 (信用过滤是否有效)
5.3 多因子模型构建细节
- 横截面标准化 (每月对每层内所有候选转债的每个因子做 z-score)
- 因子加权求 composite score
- 按 composite score 排序, 取 top 20%
- 入候选后过 §4 风控 (单券 / 行业 / 集中度), 不满足的换排序下一位补
5.4 Failure case (回测异常时 ping 我)
- IS 年化 > 30% → 极可能 overfit
- IS MDD > 15% → 风控失效, 检查降仓触发 + 止损
- OOS-A 单月 MDD > 8% → 2024 default 期间信用过滤无效, 检查评级 + 退市过滤
- 跑不赢中证可转债等权指数 → benchmark 选 trim 或多因子失效, 排查
---
6. 失败模式备忘
6.1 信用事件链 (2024 复盘)
- 风险: 蓝盾 (BB+) / 搜特 (CC) / 鸿达 (CCC) 在 2024 default, 个别低评级转债"踩雷"
- 应对: §4.1 评级 ≥ A 过滤 (Kaite locked); §4.3 仓位降至 60% 触发 (信用利差走阔)
6.2 信用利差快速走阔
- 风险: 2024 年底场景 — 权益震荡 + 信用风险 + 固收+赎回 + 资金面收紧 同时发生
- 应对: §4.3 触发降仓 60% + 持仓偏债平衡型 (类似万柏 PM 的应对)
6.3 转债估值高位 (当前 2026 market view per 万柏 PM)
- 风险: 双高 (价格高 + 溢价高) 安全垫薄, 双低策略失效
- 应对: 多因子层面减低"价格" / "双低" 因子权重, 提高"动量" / "流动性" 因子 (与万柏 PM 当前调整方向一致)
- v0+: 引入"市场状态识别"信号 — 双高 / 双低 / 结构性 三种 regime, 自动调整因子权重
6.4 强赎风险
- 风险: 正股价格冲高触发强赎, 持仓券被强制赎回, 损失期权时间价值
- 应对: §4.1 距强赎触发 → 减权或剔除; §3.1 距强赎日因子作为减权信号
6.5 下修博弈反向 (v0 不做但要监测)
- 风险: 下修不及预期 (公司没下修或下修幅度小) → 转债短期承压
- 应对: v0 不主动博弈下修, 只做被动监测; 下修公告后正股 + 转债同步进入因子模型
6.6 流动性枯竭
- 风险: 小盘转债日均成交 < 500w → 我们 5% NAV (500w/票) 进出都难
- 应对: §4.1 剩余规模 ≥ 3 亿 + 日均成交 ≥ 1000 w 双重过滤
6.7 因子失效
- 风险: 历史有效因子在 regime shift 时突然失效 (e.g. 双低 2024 年底失效)
- 应对: §3.5 持续监测每个因子 1/6 月 IC, 触发淘汰 + 新增
- 长期: v1 引入"regime conditional 因子加权" — 不同 regime 用不同因子权重
---
7. @Kaite verification
7.1 框架借鉴范围
- 万柏 PM 三层分类 (按平底溢价率) — 我直接借鉴, 你接受?
- 每层 top 20% 选股 — 接受?
- 三层市值权重 1/3 each — 接受还是建议偏债 / 平衡 / 偏股 权重不均 (e.g. 平衡偏多)?
7.2 调仓节奏
- v0 月度 → v0+ 双周 → v1 日度 (依基础设施)
- 我没上来就用万柏的日度, 是因为日度调仓需要算法交易系统 (ptrade A 路径才能落) + 容量需求 (1 亿 vs 30 亿)
- 你能接受 v0 月度起步吗? 还是要直接上日度?
7.3 因子库
- v0 30 因子 (§3 列出), 等权; v0+ IC 加权; v1 扩展 + 引入 IC 时间序列动态
- 你认为有遗漏的关键因子要补?
- "万柏特色因子" (条款定价模型 / 正股一致预期) 是 alpha 来源, 但工程量大 — v0 不做, v1 是否优先实现?
7.4 主观策略
- 万柏 PM 有"下修博弈 / 尽调择券 / 行业轮动" 主观策略
- 我 v0 纯量化, 不做主观 — 你接受吗?
- 主观能不能在 v1 引入? 如果引入, 由 谁 (你? 我?) 做主观判断?
7.5 仓位 + 止损
- 默认 80%, 触发降至 60% / 30%
- 单券 -10% 止损 (借鉴万柏)
- 这些数字接受还是要调?
7.6 Benchmark
- 你指定中证可转债**等权指数** (比市值加权指数难超越, 等权吃小盘 alpha)
- +10% 超额 是 hard target, 我们 v0 等权设置可能跑不到 +10%
- 你能接受 v0 跑出 +5% 到 +10% 之间, 通过 v0+ / v1 迭代到 +10%? 还是 v0 就必须 +10%?
---
8. 与其他 task 协同
- **Task #4 全天候**: 可转债不在全天候组合内 (全天候只做股 / 债 / 商品 / 黄金 + 现金); 仅在 Task #4 §4.2 中证可转债指数作为 benchmark
- **Task #5 领头羊**: 正股数据复用 (Task #5 数据层一并拉, JimSimons 一次性 pipeline)
- **Task #6 ETF 轮动**: 不重叠
- **Task #8 组合层**: 可转债占资金权重 20% / 风险预算 ~15% (per Kaite + 我初版)