Q-CodeQ-Code 打开工作台

相关性预警模块

风险控制A股风险 低进阶更新 2026-09-24#相关性#分散监控#风控模块

监控持仓间平均两两相关性:危机中相关性上升导致分散失灵,超阈值时预警并建议收缩总敞口。

模块目标

分散化是组合的唯一免费午餐——但只在正常时期有效。极端行情下各类资产的相关性会同步抬升,危机时刻分散恰好失灵 [1]。本模块持续监控组合的实际分散度(持仓间平均两两相关):当表面上的多标的组合内部相关系数悄然升高,说明组合的真实风险敞口已被低估,应提示收缩。与波动率目标(看波动速度)、回撤控制(看亏损深度)互补,构成风控的第三维度:看结构。

平均两两相关

ρˉt=2n(n−1)∑i<jρij,t\bar{\rho}_t = \frac{2}{n(n-1)} \sum_{i<j} \rho_{ij,t}

其中 ρij,t\rho_{ij,t} 为持仓 i,ji, j 过去 60 日收益的相关系数。三档阈值(示例):ρˉ<0.5\bar{\rho} < 0.5 正常;0.5≤ρˉ≤0.60.5 \leq \bar{\rho} \leq 0.6 预警;>0.6> 0.6 分散失灵,建议总敞口收缩 20%(可参数化)。

执行规则

每周收盘后计算一次,输出三档状态。动作模式可配置:仅提示(默认,供人工复核)或联动降仓(与回撤控制模块共用总敞口通道,取二者更保守者)。持仓数量少于 3 只时平均相关失去意义,模块自动休眠。

风险与失效场景

  • 估计噪声:60 日窗口的相关系数本身方差很大,单周越线不足为凭,需要连续两周确认;
  • 滞后:相关性抬升往往在下跌开始后才显现,预警天然晚于风险起点;
  • 行业同涨误报:持仓集中在同一强势行业时相关升高是常态而非危机,模块区分不了“行业抱团”与“系统性风险”;
  • 动作成本:联动降仓在相关性的钝化高点执行,可能卖在局部低点;
  • 阈值主观:0.5/0.6 只是行业常用经验值,必须随组合类型实测。

验证状态

待验证。需要完成:窗口 40/60/120 日的相关系数稳定性;阈值分档与历史危机时段(2015、2018、2024)的对应关系;连续两周确认规则的消融;与波动率目标、回撤控制模块叠加时的总敞口行为。本文不提供任何未实测的收益或回撤数字。

参考文献与延伸

[1] Longin, F., & Solnik, B. (2001). Extreme Correlation of International Equity Markets. Journal of Finance, 56(2).(极端行情下相关性上升的经典证据)

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

策略逻辑结构

  1. 持仓收益序列 — 各持仓 60 日日收益
  2. 相关矩阵 — 两两相关系数计算
  3. 平均相关 — 矩阵非对角元素均值
  4. 阈值分档 — 正常/预警/失灵三档
  5. 预警动作 — 提示或建议收缩总敞口

AI 生成提示词

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

请生成一个 QMT 兼容的持仓相关性预警模块。输入为组合持仓的日收益率序列(60 日窗口),每周计算持仓间平均两两相关系数:低于 0.5 输出状态“正常”;0.5 至 0.6 输出“预警”;高于 0.6 输出“分散失灵”,并按参数给出建议总敞口收缩比例(示例 20%)。模块只输出状态与建议,可配置为联动降仓或仅提示。窗口、阈值、联动开关写入 init,禁止未来函数,兼容回测与实盘分支,输出单个完整 Python 文件并包含状态日志。
用自然语言,生成你的 QMT 策略
注册即赠 200 积分,约可生成 5 次 · 支持 Kimi / GLM / DeepSeek
打开 Q-Code 工作台