- Stoll 已实现价差分解:把买卖价差拆成信息、库存与订单处理成本
报价价差 10 个 tick,做市商真能赚到 10 个 tick 吗?Stoll (1989) 给出了否定答案和一套识别方法:价差由三种成本构成——逆向选择(信息)、库存持有、订单处理,三者在成交后的价格行为上留下完全不同的指纹。信息成分让价格一去不回,库存成分让报价先偏移再均值回复,订单处理成分产生纯粹的 bid-ask bounce。本文推导「成交价串行协方差 + 报价中点串行协方差」这对识别工具,用可复现 Python 模拟验证:θ=0.45 的市场里,报价价差 0.10 元中做市商真正落袋的已实现价差只有 0.06 元。并给出三个落地应用:横截面毒性排序、TCA 里有效价差与已实现价差的正确用法、以及为什么高换手做市策略要盯已实现价差而不是报价价差(中阶)。
11 min Chinese - 累积局部效应 ALE:用条件期望修正相关因子下的边际效应
PDP 有个绕不过的死穴:因子彼此相关时,它会把某个因子强行设成某值、其余保留原值,从而外推到根本不存在的样本组合,把相关因子借来的效应算成自己的。ALE(Accumulated Local Effects)换个算法——把因子取值切成窄箱,在每个箱内只用真实存在的样本算『局部差分』(同一批样本换到箱边界两侧的预测之差),再沿因子方向累加。这样它永远不外推、只在数据支撑的邻域里说话。本文用相关系数 0.92 的两个因子做对照:一个是真驱动、一个纯冗余,看 PDP 如何被冗余因子骗、ALE 如何把它的伪效应修正回近零,附纯 numpy 从零实现的 ALE(中阶)。
14 min Chinese - 贝叶斯优化超参:用高斯过程代理把调参成本砍到最低
网格搜索调策略参数是暴力枚举,参数一多组合数指数爆炸;随机搜索省了枚举却盲目乱撞。贝叶斯优化换个脑子:每跑一次回测都是一次昂贵采样,它用高斯过程(GP)在已跑过的点上拟合一个『代理曲面』连同不确定度,再用采集函数(EI)权衡『去已知的好区域深挖』和『去没探过的区域碰运气』,把下一次回测的算力花在最值得试的参数上。本文从零手写 GP 代理 + EI 采集,在一个多峰目标上对比贝叶斯优化 vs 随机 vs 网格的收敛速度——同样逼近全局最优,贝叶斯优化用的回测次数是网格的零头。最后拆穿最致命的坑:在验证集上优化超参本身就是一种过拟合,优化得越狠样本外亏得越惨(中阶)。
14 min Chinese - 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
返回