- 遗传编程因子挖掘:让表达式树自己进化出可交易 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 - Hill 估计量与尾部指数:量化收益分布到底有多肥
『肥尾』被说滥了,但到底多肥?尾部指数 α 给出一个数:P(X>x) ~ x^(-α),α 越小尾越肥,且 α 直接判决矩的生死——α<4 峰度不存在、α<2 方差都没了。Hill 估计量用前 k 个顺序统计量的对数间距把 α 从数据里榨出来,本文从公式到陷阱走全程:三个已知真值的分布验证(Pareto α=2 估出 2.02 近乎完美,但 t(5) 只估出 3.87——慢收敛尾部的负偏差实锤);GARCH+t(4) 合成收益的左右尾 Hill Plot(左尾 α̂=2.65,波动聚集把无条件尾部拖得比创新项 t(4) 更肥,这是特征不是 bug);log-log 生存函数图上幂律直线与正态跳水的视觉对决;Weissman 外推算『百年一遇』:幂律给 16.5% 单日损失、正态给 3.0%,样本内最差实际 7.16% 已两倍于正态的百年一遇。最狠的是 300 次蒙特卡洛的小样本实验:n=250(一年日线)时 α̂=2.52±0.47(真值 3),系统性负偏 + 巨大方差——一年数据测尾部指数等于用体温计量海深。拆穿 k 选择的 Hill horror plot、样本依赖性、外推杠杆三类陷阱(中高阶)。
9 min Chinese - 日内动量最后一小时效应:收盘前的方向延续从哪来
开盘半小时的涨跌方向,会在收盘前一小时被部分复刻——这是 Gao-Han-Li-Zhou (2018) 在 SPY 上记录的日内动量效应,来源不是玄学而是三股结构性资金:对冲 Gamma 的做市商、盯收盘价的被动基金、日内趋势跟随者都在尾盘同向交易。本文在自洽合成数据上植入传导系数 β=0.10 并完整复现检验流程:开盘-尾盘收益相关性 0.108(t=3.8)、五分组尾盘收益单调递增、策略年化 8.3%(Sharpe 0.73)显著跑赢被动持有尾盘(0.37);同时用无效应对照组证明——β=0 时同一策略被 2bp 成本磨到年化 -7.9%。β×成本 Sharpe 热力图画出这类高频率低赔率策略的生死线,附完整 Python 与四类真实陷阱(中阶)。
14 min Chinese - Hayashi-Yoshida 领先滞后估计:在异步 tick 里找谁先动
两只关联资产里,谁先动、谁跟随?大盘 ETF 涨了,成份股几秒后跟上;期货动了,现货滞后半秒——这个『谁领先谁』的时间差,是高频交易里最值钱的信息之一。但要从真实 tick 数据里量出这个 lag 极难:两条序列的成交时刻从不对齐,你一旦重采样到固定网格,就把秒级的领先滞后模糊进了分钟级的格子,lag 直接消失。本文把 Hayashi-Yoshida 估计量升级成领先滞后探测器:给一条序列的时间轴整体平移 L 秒再算 HY 交叉相关,扫描所有 L、峰值所在即领先滞后时间。用纯 numpy 造 leader/follower 结构(follower=leader 滞后 8 秒+噪声),完整复现交叉相关峰值精准锁定 8 秒;对比固定网格 last-tick 如何被粗粒度模糊掉 lag;量化样本量与信号强度对 lag 估计稳健性的影响(一天数据 vs 一周数据、ρ=0.2 的平峰 vs ρ=0.8 的尖峰)。附完整 Python 与四类真实陷阱。
15 min Chinese - 元学习量化策略:用 MAML 让模型在少样本上快速适应新市场
普通模型换个市场、换个 regime 就得从头训,可新环境往往只有几十个样本,根本喂不饱。元学习换个目标:不学『某个市场的最优参数』,而学一个『最容易被少量样本快速微调』的元初始化。本文用纯 numpy 从零实现一阶 MAML(FOMAML),把每个市场建模成因子→收益的线性任务,任务间共享中心 w0、各自偏移 τ=1.1。200 个训练市场上元训练 300 轮,外层 query 损失从 3.65 压到 1.67 逼近 Oracle 下界 1.00。在 100 个全新市场上只用 K=10 个样本适应:MAML 的 MSE 2.85,碾压忽略任务差异的 Pooled 全局模型(7.75,降 63%)和从零学的 Scratch(3.17)。few-shot 曲线显示 MAML 起点就低、一两步就到位;样本量敏感性揭示真相——K 越小 MAML 优势越大(K=3 时 4.73 vs Scratch 5.75),样本足够时三者收敛。拆穿元学习=预训练、任务同分布假设、内外循环学习率耦合、少样本≠零样本四类陷阱(中阶)。
14 min Chinese - 多重分形 DFA:用多重分形谱刻画不同尺度下的记忆结构
单一 Hurst 指数假设市场只有一种记忆——大波动和小波动遵循同一个标度律。但真实收益序列的大涨大跌聚集成串、小波动却近似随机游走,一个 H 根本装不下。MF-DFA(多重分形去趋势波动分析)把波动函数升级成 q 阶矩:q>0 放大大波动的标度行为、q<0 放大小波动,得到广义 Hurst 曲线 h(q),再经 Legendre 变换画出多重分形谱 f(α),谱宽 Δα 一个数度量『记忆结构的丰富度』。本文用纯 numpy 从零实现 MF-DFA(profile 累积、双向切段、多项式去趋势、q 阶波动函数、谱变换),三类合成序列对照:白噪声 h(q) 水平线且 Δα≈0.006、长记忆 fGn(H=0.7) 整体抬高但仍是单分形(Δα=0.024)、二项级联序列 h(q) 从 0.76 弯到 0.43、Δα=0.61——多重分形性一眼可辨。滚动窗口应用:谱宽在白噪声段均值 0.11,切入波动级联段跳到 0.35,可做 regime 检测的补充仪表。诚实拆穿关键陷阱:打乱检验显示级联序列打乱后 Δα 仍有 0.55——谱宽大部分来自收益分布厚尾而非时序相关,不做打乱对照就把厚尾当记忆是 MF-DFA 文献里最泛滥的错误。另拆穿谱宽=可预测性/小样本负 q 发散/去趋势阶数选择三类坑(中高阶)。
12 min Chinese
返回