- CUSUM 结构突变检测:用累积和在收益序列里揪出 regime 拐点
你的策略参数是在过去三年数据上估的,可市场早在半年前就换了一套玩法——均值漂了、波动变了,而你的模型还在用旧假设下注。结构突变检测就是给策略装一个『市场换挡』的报警器。本文用纯 numpy 把 CUSUM(累积和检验)从原理到实战完整走一遍:合成一段三状态收益序列(+10bp 上行 → -25bp 下行 → +12bp 回升,两个真实变点在 t=300/600),用去均值累积和把漂移折成不同斜率的段,再用二分分割递归定位——阈值 1.10 下精确检出 [363, 609],与真实 [300, 600] 只差几十天。阈值敏感性扫描揭示核心权衡:阈值太低(<1.0)把噪声也当变点过度分割,太高(>1.4)漏检真拐点,稳健区间 1.0~1.3。在线 Page-CUSUM 单侧检验模拟实时监控:真实下行从 t=300 起,报警在 t=316,检测延迟 16 天——这就是所有序贯检测无法绕开的『延迟 vs 误报』铁律。全文打穿离线 vs 在线检测的根本区别、CUSUM 只检均值漂移对波动突变失灵、检测延迟不可能为零、多变点需递归分割四类核心陷阱(中阶)。
15 min Chinese - CPPI 回撤控制:用动态乘数把组合下行锁进保险箱
止损单只能保护一个仓位,CPPI 保护的是整个组合的底线。恒定比例组合保险的核心是一条自动化纪律:风险敞口 = 乘数 m × 缓冲垫(净值 − 保本地板),净值离地板越近仓位越轻,跌到地板自动清零——数学上保证(连续交易时)永不击穿。本文用纯 numpy 完整实现 CPPI,在植入 40 天熊市 + 单日 -8% 跳空的 5 年路径上实测:买入持有最大回撤 -45%,CPPI m=4 只有 -16.8%,代价是牛市收益从 +57% 降到 +28%。然后打穿两个教科书不讲的死穴:gap risk——周频再平衡 + -12% 跳空下,m=8 的击穿地板概率高达 58.9%(m×单期最大跌幅 > 100% 就是死刑判决书);cash-lock——高地板 + 大乘数在崩盘后缓冲垫归零,风险资产随后反弹 141%,CPPI 却抱着债券几乎纹丝不动。乘数选择的铁律:m < 1/单期最大可能跌幅,日频对应 m≤5、周频只敢 m≤3。附四类真实陷阱(中阶)。
15 min Chinese - 熵池化观点融合:用相对熵把主观观点揉进先验分布
Black-Litterman 把主观观点融进市场先验,但它被锁死在正态分布和线性观点里:观点只能是『资产 X 的期望收益是多少』,遇到肥尾场景、非线性观点(波动率、相关性、分位数)就束手无策。Meucci 的熵池化换了一条路:不改场景数据,只改场景概率——在 20000 个蒙特卡洛场景上,找一组新概率 q,让它满足观点约束的同时与先验概率 p 的相对熵(KL 散度)最小。本文用 t(5) 肥尾场景库完整实现对偶求解:植入『股票B月度收益 -1%、黄金 +1.5%』两条观点,KL 散度仅 0.057、有效场景比例保留 94.4%——观点被精确满足,分布形态却几乎不动。相关性传导自动发生:没被下观点的股票A期望从 +0.68% 被拖到 -0.03%,因为它和股票B相关 0.6。置信度混合 q(c)=(1-c)p+cq 生成从纯先验到完全采纳的完整权重路径:黄金从 14% 一路吃到 75%,股票B在 c≈0.4 处清零。三个陷阱:观点过强导致概率质量坍缩到极少数场景、后验波动率被观点悄悄改变、置信度 c 本身无处校准(中高阶)。
13 min Chinese - Epps 效应与高频相关性:为什么采样越细相关性越假
直觉告诉你:数据越密、频率越高,估计应该越准。但相关性在高频世界里恰恰相反——同一对资产,用日线算相关是 0.6,切到 1 分钟变 0.3,切到 1 秒几乎归零。这就是 Epps 效应:不是市场关系变了,是异步成交把相关性『稀释』掉了。两只股票的 tick 从不落在同一时刻,你为了对齐用旧价前向填充,就在每个细格点里塞进了大量人造的零收益,相关性被这些零拖向 0。本文用纯 numpy 合成两条 latent 相关 0.6 的高频价格路径,泊松稀疏成交 + last-tick 填充完整复现 Epps 塌陷曲线(1 秒 ρ≈0.03、30 分钟才恢复到 0.59);量化流动性对衰减速度的影响(成交越稀疏塌陷越狠);最后给出解药 Hayashi-Yoshida 估计量——用重叠区间累加协方差,不需要同步、不丢数据,在异步稀疏数据下几乎无偏。附完整 Python 与四类真实陷阱。
16 min Chinese - 极值理论 EVT 尾部风险:用广义帕累托分布给『黑天鹅』定价
正态分布对极端事件的低估不是误差,是数量级灾难:在 5000 天合成收益(GARCH 波动聚集 + t(4) 肥尾)上实测,4σ 事件正态预期 0.32 次、实际发生 37 次(低估 117 倍),6σ 事件低估超过 100 万倍。极值理论 EVT 不试图拟合整个分布,只对尾部『超越阈值的部分』下手:Pickands-Balkema-de Haan 定理保证超越损失渐近收敛于广义帕累托分布 GPD。本文用 scipy 完整走一遍 POT 流程:取 95% 分位为阈值得 250 个超越样本、MLE 拟合出形状参数 ξ=0.216(隐含尾部指数 α≈4.6,与生成过程一致)、QQ 图验证拟合质量。VaR 对决见真章:99.9% VaR 正态给 2.49%、EVT 给 4.68%、经验分位 4.69%——EVT 几乎精确命中,正态差了近一倍;99% VaR 违反回测中正态违反 87 次(预期 50 次)、EVT 违反 49 次。ES 差距更狠:99.9% ES 正态 2.71% vs EVT 6.37%。诚实拆穿阈值选择的偏差-方差两难(阈值敏感性扫描图)、iid 假设被波动聚集破坏、ξ 的置信区间宽到离谱三类陷阱(中高阶)。
9 min Chinese - 遗传编程因子挖掘:让表达式树自己进化出可交易 alpha
手工构造因子是『人想公式、数据验证』,遗传编程反过来:把因子表达式编码成树(叶子是特征、内部节点是算子),用交叉互换子树、变异随机替换、锦标赛选择淘汰弱者,让公式在 IC 适应度的驱动下自己进化。本文纯 Python 实现极简 GP 引擎:600×100 合成面板埋入非线性真结构 mom*exp(-|vol|)-0.5*rev,进化 25 代后找到 (mom - rev),验证集 IC 0.098——超过最强单因子(0.078)、逼近真实结构上限(0.105),而且简约压力把树从平均 6.1 节点压到 3.8,没有膨胀成垃圾。但要害在最后一图:500 个随机公式在纯噪声特征上搜索,训练 IC 被『迄今最优』推着单调上涨到 0.018——数据挖掘偏差意味着 GP 天生是过拟合机器,防御靠简约压力+验证集早停+多种子重跑看表达式是否稳定(中阶)。
16 min Chinese - 图注意力金融网络:用注意力权重重新分配板块间的信息流
板块不是孤岛——半导体一动,消费电子、新能源车、光伏跟着抖。传统 GCN 用固定归一化权重平均所有邻居,把真信号和噪声边一视同仁地糊在一起。图注意力网络 GAT 换思路:给每条边学一个注意力分数 α,让模型自己决定『该多听谁的』。本文用纯 numpy 从零实现单层 GAT(含通过 masked-softmax 的完整反向传播),构造 10 个板块的有向信息流图,故意混入 9 条『市场惯性误认』的噪声边(图上有连接但真实传导=0)。500 个时间点训练后样本外对比:GAT 的 IC 0.670,甩开被噪声边拖累的 GCN(0.625)和完全无图的 MLP(0.577)。注意力热图显示 GAT 学到的 α 与真实传导 β 高度吻合、对噪声边自动降权;hub 分析揭示 GAT 给『消费电子→半导体』分配 0.495 权重(GCN 固定只给 0.316),因为它读得懂『这条边真的重要』。拆穿注意力=因果、单层感受野局限、注意力可解释性幻觉、图结构错了 GAT 也救不了四类陷阱(中阶)。
15 min Chinese - 层次聚类配对交易:用相关性树在几百只股票里挖出可交易的对
配对交易的第一道难关不是回测,是从 N 只股票的 C(N,2) 个组合里挑对——30 只就有 435 对,全跑一遍协整检验既慢又是数据挖掘的温床。本文用纯 numpy/scipy 合成 30 只股票(内嵌市场因子+5 个板块因子+一对刻意注入的协整对),把层次聚类当成配对的漏斗:先用相关性距离 √(0.5(1-ρ)) 建 Ward 连接树,聚类纯度 90.9%,把 435 对候选压到 100 对簇内高相关组合(筛掉 77%);再在簇内用『对冲比为正 + 相关>0.5』预筛、按价差 AR(1) 半衰期排序挑出真正均值回归的对(金融2/金融5,相关 0.64、半衰期 15.7 天)。配对回测 3 年 15 次开仓、日胜率 52%、Sharpe 0.58、累计价差收益 20.5%。全文最重要一节是打穿『相关≠协整』:刻意注入的高相关对若对冲比为负、价差不回归,照样亏钱;聚类只负责缩小搜索空间,真正决定盈亏的是价差平稳性。另拆穿聚类结构随窗口漂移、树状图切割高度主观、簇内组合仍需协整二次筛、样本内挑对必然乐观四类陷阱(中高阶)。
16 min Chinese
返回
博客
第 50 页 · 显示 8 / 1446 篇文章
按年份查看 →