- Roll 协方差度量买卖成本:从逐笔成交价的「负自相关」反推隐含价差
Roll (1984) 隐含交易成本度量,是微观结构里最「反直觉却优雅」的技巧之一:它不依赖任何订单簿数据,只从一段连续的「成交价差分 Δp_t」里,用相邻两期差分的协方差 −Cov(Δp_t, Δp_{t-1}) 反推出有效(全额)买卖价差 s = 2·√{−Cov}。本文用纯 numpy 合成「随机游走中间价 + 含价差 Tick 的成交价」,滚动估计 Roll 成本,对照已知真实成本:价差主导噪声的应激段(6 tick)几乎精确还原(0.0601 vs 0.0600),噪声主导的平静段(2 tick)被向上偏置到 0.030(真实 0.020);并用一个对照实验证明——成交方向自相关 ρ 越大,Roll 越低估真实成本(ρ=0 才精确还原,ρ=0.7 时低估 −58%)。同时诚实拆穿「非负协方差被丢弃导致的低 SNR 偏置 / Tick 取整 / 趋势市失效 / 漂移污染」四类真实陷阱(中阶)。
15 min Chinese - Stambaugh-Yuan 误定价因子:两个因子吃掉 17 个异象的 alpha
Stambaugh-Yuan (2017) 发现学术界几百个「异象」大多不是独立 alpha,而是两坨系统性误定价的症状。本文从零用 PCA 把 17 个异象坍缩成 MGMT 与 PERF 两个误定价因子,并用时间序列回归证明:FF3 下异象平均留 4.28% 的年化 alpha,加入 MGMT+PERF 后塌到 0.58%。附完整 Python 与五类真实陷阱(中阶)。
14 min Chinese - 合成控制法评估政策冲击:当找不到对照组,就「造」一个出来
DID 的灵魂是「控制组」,但现实里常有「只有一个受冲击单元、又找不到可比对照组」的尴尬——比如某国突然资本管制、某只指数被纳入 MSCI、某城试点房产税。合成控制法 SCM 给出一条出路:用一大篮未受冲击单元的「加权组合」为你合成一个专属对照组,权重由事件前的拟合优度决定。本文用纯 numpy + scipy 从零实现凸权重 SCM(非负、和为 1),在自洽合成面板(1 个受冲击单元 + 39 个 donor,事件后真实水平偏移=1.08%/期)上把事件前贴合 RMSE 压到 0.040、事件后 gap 估到 1.08,且权重极度稀疏(仅 6/39 个 donor 非零);留一安慰剂检验中受冲击单元的 gap 是 40 个单元里的极端离群点(p≈0.025),并诚实拆穿外推/负权重、donor 池太窄、前拟合好后崩、唯一解不唯一、小样本过拟合五类真实陷阱(中阶)。
12 min Chinese - TimesNet 周期建模:把价格「折叠」成二维时间块,Transformer 才真正读得懂周期
Transformer 直接搬到时序常被简单线性吊打,病根是「逐点建模」——单个价格点没有语义。TimesNet(Wu et al. 2023)的破局点很巧:既然时间序列里最稳定的结构是「周期」,那就把一维序列按周期 P 折叠成二维「时间块」,让二维卷积去抓「同一相位跨周期」的相关性。本文用纯 numpy 从零实现 FFT 周期检测、1D→2D 折叠、2D 池化回 1D,在「三周期+趋势+脉冲噪声」合成序列上实测:2D 折叠把多周期结构的解释方差从 0% 抬到 31.7%,残差以噪声为主;并诚实拆穿「数据处理的不等式(线性头打不过线性基线)」、周期检测偏 bin、折叠引入伪相关、相位对齐泄漏、端点缺口五类真实陷阱(中阶)。
18 min Chinese - 变分自编码器 VAE 因子挖掘:把不确定性也一起学出来
普通自编码器能把 20+ 维量价特征压成 5 维新因子,但它只给你一个"点估计"编码,不知道哪个样本编码得靠谱。变分自编码器 VAE(Kingma & Welling 2014)把编码器变成"一个分布",每个样本得到一个 (μ, σ²) 的编码高斯——于是除了新因子,你还免费拿到"这个因子值有多可信"。本文用纯 numpy 从零实现 VAE(重参数化技巧 + ELBO),在"3 潜因子驱动收益 + 大量噪声特征"的合成数据上,VAE 组合因子与未来收益 |IC|=0.695,并诚实演示"不确定性到底能不能当信号过滤器"这个反直觉结果,附完整代码与五类真实陷阱(中阶)。
14 min Chinese - 耶鲁捐赠基金模式借鉴:把「另类资产 + 股权偏好」做成长期超额收益引擎
传统捐赠基金大量配债券现金、流动性高但长期收益低。David Swensen 执掌耶鲁后,把债券现金砍到近乎为零,重仓另类资产(绝对收益/私募股权/风险投资/实物资产)+全球股权,用「股权偏好 + 另类分散 + 流动性溢价」三引擎长期跑赢。本文用因子模型算实:20 年(含 2 次危机)耶鲁完整版年化 9.18%(Sharpe 0.53)、终值 7.05x,高于 60/40 的 6.92%(0.48)/4.26x,但最大回撤 −48% 也更深——那是「流动性锁定」的代价。附完整 Python 与五类真实陷阱(中阶)。
10 min Chinese - 贝叶斯结构断点检测:把「数据什么时候变了」变成一个概率分布
因子 IC 突然塌了、波动率悄无声息地翻倍了——这些「数据在哪一步变了」的问题,朴素的两段 t 检验只能回答「变没变」,答不出「在哪一刻」。本文用贝叶斯框架把变点(changepoint)建模成随机变量,给出它的后验分布:在我们合成的两段均值+一段方差突变序列上,精确把均值断点定位在 t=121(真值 120,偏差仅 1 步),检测率上限 0.87 远超朴素 t 检验的 0.47。附完整 Python 与五类真实陷阱(高阶)。
13 min Chinese - BDS 检验非线性依赖:用「距离相关」把独立性的破绽钉成一个数
线性自相关(Ljung-Box / ACF)只能抓线性记忆,抓不到 GARCH 波动聚集、逻辑斯蒂混沌这类非线性依赖。BDS 检验把「序列是不是 i.i.d.」变成一个可算的统计量:若独立,则 m 维向量的邻近概率应等于 1 维邻近概率的 m 次方。我们在随机游走 / GARCH / 逻辑斯蒂混沌三类序列上把 B 统计量分别钉在 0 附近 / 显著非零 / 极端大,并用 bootstrap 零假设把检验水平校准到 ≈5%、对混沌功效 ≈100%——演示它如何「不误杀有效市场、却不放过非线性」(中阶)。
16 min Chinese
返回