- 向量化回测引擎:用 NumPy 广播把万次模拟压进一次矩阵运算
for 循环回测一根 K 线一根 K 线地跑,参数扫描时慢到让人放弃——十万根 K 线、两百组参数,循环版可能跑几分钟。向量化换个思路:把信号、持仓、收益全部写成 NumPy 数组运算,让 C 层的广播一次性算完所有 K 线甚至所有参数组合,同样的活压进一次矩阵乘法,实测提速 300~500 倍。本文从零手写一个向量化回测引擎:先讲循环版慢在哪,再用累积和算移动均线、用布尔数组生成信号、用 shift 严守次日执行不偷看未来、用三维广播一次算出 200 组参数的 Sharpe 热图,最后跑 2000 条蒙特卡洛路径压力测试。附速度换内存的取舍分析——向量化不是免费午餐,参数组合爆炸时内存会先崩(中阶)。
15 min Chinese - VIX 期限结构 Carry:在 contango 里滚动收割升水
VIX 期货绝大多数时间处于 contango——近月比现货贵、次月又比近月贵,这条向上倾斜的曲线不是预期,是恐慌保险的卖方在收保费。做空近月、随时间下滑到现货、每月滚动,就是把这份升水一口口吃进来。8 年合成数据完整复现:期限结构 67% 时间处于 contango、正斜率日均 roll 高达 9%;裸空 carry 收益分布左偏 -4.03、单一危机日就能吞掉大半年利润,长期净值 CAGR -12.5%、最大回撤 -78%;加一层『倒挂即离场』的 regime 过滤,同一条腿变成年化 14.7%、Sharpe 0.64、回撤收窄到 -30%。对照做多 VIX 的绞肉机(CAGR -31%、回撤 -97%)说明升水结构的方向由谁买单。附期限结构快照、斜率 regime 时序、净值对比、收益分布四图与完整 Python,以及四类真实陷阱(中高阶)。
16 min Chinese - Autoformer 时序分解预测:用序列分解+自相关机制
Informer 还在点积注意力里挑活跃查询,Autoformer(NeurIPS 2021)直接换了两个零件:一是把「分解」从预处理搬进模型内部——移动平均逐层剥趋势,季节项与趋势项分开建模;二是把点积注意力换成「自相关机制」——用 FFT 以 O(L·logL) 算出自相关谱 R(τ),取 top-k 滞后当候选周期,按 softmax(R(τ)) 权重做时延聚合:预测 = Σ w(τ)·x(t−τ),从「点对点找相似」升级为「整段周期对齐」。纯 numpy 从零实现因果分解 + FFT 自相关 + 时延聚合递推预测,在三重周期(24/96/168)+慢趋势+AR(1)噪声合成序列上做 50 窗口滚动 H=24 多步预测:分解+自相关 MSE=0.257 优于无分解消融 0.263 与季节 naive 0.367,自相关机制自动找到 τ∈{24,96} 真周期;但诚实披露 OLS-96滞后递推 MSE=0.193 仍是全场最优——机制的优雅不等于精度的碾压。附「分解泄漏未来」的一次真实翻车修复(居中移动平均让 AF 版 MSE 虚好 42%),拆穿分解万能/自相关=注意力上位/多步递推免费/top-k 自动对/金融强周期五类陷阱(中阶)。
11 min Chinese - 共形强化学习交易:给 RL 动作一个可验证的覆盖保证
RL 输出一个 Q 值就下单,但点估计不带可靠性凭证——分布一漂移就「自信地犯错」。共形预测包裹任意预测器输出预测区间,有限样本+分布无关保证以 ≥1−α 覆盖真实收益,唯一假设是可交换性。据此设计带可验证下限的交易规则:仅当共形收益下界>0 才出手。纯 numpy 分裂共形+局部自适应,异方差+协变量偏移合成 bandit 上实测:同分布目标覆盖 90% 实测 91.1%(保证兑现);门控把开仓即盈利命中率从 76.9% 抬到 97.4%,代价出手率降到 17.1%。诚实翻车:可交换性破坏→偏移 3.0 时覆盖从 90% 崩到 53.8%;边际覆盖达标≠处处达标——普通等宽区间高波动区只覆盖 49%、低波动区 98%,需局部自适应共形拉回 87%~92%。拆穿保证=永真/边际=条件/区间=预测准/无分布=无假设/覆盖达标即可交易五类陷阱(中阶)。
16 min Chinese - 离线强化学习交易:用 CQL 保守 Q 学习做策略迁移
实盘不允许在线试错,离线 RL 只用历史日志学策略——但直接把 Q 学习搬到固定数据集会灾难:Bellman 目标里的 maxₐQ 专挑没被覆盖的 OOD 动作、把 Q 越推越高(自举高估),部署即崩。CQL(NeurIPS 2020)加保守正则:压低所有动作 logsumexp Q、抬高数据里真实动作 Q,给未见动作上保守下限。纯 numpy 表格版 CQL,在「趋势为主+偶发反转」合成 MDP 上用只覆盖 40% 格子的 800 步窄日志训练,40 个样本外新市场平均实测:Naive-FQI 总收益 −61%/Sharpe −1.18/回撤 65%/胜率 0%,CQL +11.5%/+0.43/7.5%/72%——OOD 动作平均 Q 从 0 压到 −0.44。诚实翻车:α 太小压不住高估、过大退化成行为克隆收益封顶;数据一充足 Naive 反超 CQL。拆穿离线=免费午餐/覆盖不重要/α越大越稳/合成赢=实盘赢/保守必胜五类陷阱(中阶)。
17 min Chinese - Crossformer 跨变量预测:用维度分段注意力建模变量交互
多资产预测里最容易被漏掉的信息,是『变量之间怎么互相带动』——大多数时序 Transformer 把每个变量单独摊平,只在时间轴上做注意力,跨变量的联动全靠模型自己隐式脑补。Crossformer(Zhang & Yan, ICLR 2023)明确把注意力拆成两段:先在时间轴上分段(DSW,维度分段嵌入)压缩局部形态,再用两阶段注意力(TSA)分别在时间段之间、变量维度之间显式建模。本文用纯 numpy 从零拆解『分段嵌入 + 跨时间 + 跨变量』的两阶段结构,在 6 资产共享隐因子的合成序列上诚实实测:跨变量注意力把单步预测 R² 从朴素持平的 0.356 抬到 0.366——增益真实但微小,并拆穿维度注意力万能/跨变量必优/分段无损/关联=因果/直接落地五类真实陷阱(中阶)。
15 min Chinese - 深度状态空间交易:用线性 RNN 做高效长程建模
RNN 串行训练慢、Transformer 注意力 O(L²) 贵,状态空间模型(SSM,S4/Mamba 一族的骨架)走第三条路:把隐藏状态写成对角线性递推 h_t = a⊙h_{t-1} + b⊙x_t,衰减率 a 按对数均匀铺满短记忆到长记忆,一层状态就是一组不同时间尺度的指数记忆核,推理 O(L·N) 且可并行扫描。本文用纯 numpy 从零实现多时间尺度对角线性 SSM + 统一 Ridge 读出,在两个合成任务上诚实实测:平滑多尺度记忆任务(1800 小样本)上 SSM-16 状态 R²=0.787 完胜 OLS-256 滞后的 0.664;但尖锐 lag-64 任务上被 OLS-128 滞后(0.922)打爆(SSM 只有 0.487)——指数记忆核天然抹平孤立尖锐滞后。并拆穿线性状态无损/状态越多越好/SSM 必胜滞后回归/长程=万能/金融直接落地五类真实陷阱(中阶)。
18 min Chinese - GARCH-EMD 混合波动:用经验模态分解剥离趋势再做 GARCH
直接对收益拟 GARCH(1,1),慢变的结构性波动漂移会污染估计——把长记忆假象塞进 β,持续性虚高到 0.99。混合思路借 Engle-Rangel Spline-GARCH 的乘性分解 σ²_t=g_t·h_t:先用 EMD(经验模态分解)从对数平方收益里剥出慢变方差水平 g_t,对标准化残差再拟合短期 GARCH 因子 h_t。纯 numpy 从零实现 EMD sifting(cubic-spline 包络+端点 clamp)与 GARCH MLE(网格+坐标下降),在「乘性成分」合成收益(慢正弦+陡峭 regime 跳变 × 单位均值 GARCH)上实测:EMD-GARCH 把持续性从纯 GARCH 的 0.99 压回 0.95(剔除伪长记忆),但样本外一步方差预测 QLIKE=−6.57 略输纯 GARCH 的 −6.68——分解修正了参数偏误,却没换来预测精度碾压。附「剥太多 IMF 把 GARCH 聚集也当趋势吸走」与「EMD 端点样条外推不稳」两处真实翻车,拆穿分解万能/持续性越低越好/混合必胜/EMD 因果/端点无害五类陷阱(中阶)。
15 min Chinese
返回
博客
第 10 页 · 显示 8 / 1090 篇文章
按年份查看 →