- 月末月初效应:日历翻页时的资金流规律
把二十年的日收益按『它在当月的第几天』重新排队,会看到一个刺眼的规律:月末最后几个交易日到次月头两天(合称 TOM 窗口)的日均收益,是月中的几十倍——Ariel (1987) 和 Lakonishok-Smidt (1988) 记录的月末月初效应至今稳健。燃料是资金流的日历表:工资定投、养老金申购、机构窗口粉饰、被动基金月末再平衡,全都卡在日历翻页那几天入场。本文在植入月末月初正漂移的 20 年×252 日合成数据上完整复现:TOM 窗口只占 24% 的交易日却贡献 98.5% 的累计收益、两样本 t=4.24;只在这几天持有的策略年化 32.8%(Sharpe 2.24)碾压全程买入持有(Sharpe 0.54),而月中持有近乎白拿风险(年化 0.2%)。附逐年稳定性检验、窗口长度扫描、完整 Python 与四类真实陷阱(中阶)。
16 min Chinese - 换手率约束组合优化:把调仓成本写进目标函数
均值方差优化器每个月都想把组合翻个底朝天:估计噪声让最优权重月月剧烈跳动,5 资产月度调仓的年化换手高达 6.5 倍,30bp 单边成本直接把年化收益从 +1.75% 磨成 -0.22%。本文把 L1 换手惩罚项写进目标函数,用近端梯度求解:λ=0.0005 就把年化换手从 6.5 压到 2.4,净费后年化从 -0.22% 翻正到 +1.43%,最大回撤同步收窄 9 个百分点。5 组独立模拟扫描 λ 画出换手-净收益前沿,并诚实揭穿一个反直觉结论:10% 的无交易带几乎无效——因为估计噪声导致的权重摆动远大于 10%。附完整 Python 与四类真实陷阱(中高阶)。
13 min Chinese - 方差风险溢价择时:用隐含减已实现的差做风险开关
隐含波动率常年高于事后兑现的已实现波动率,这条缝隙(IV−RV)就是方差风险溢价 VRP——期权卖方收的保费。但 Bollerslev-Tauchen-Zhou 的洞见更进一步:VRP 不只是常数保费,它是会呼吸的,而且它的宽窄能预测卖波动策略未来的收益。10 年 GARCH 合成数据完整复现:IV 92.5% 的时间高于 RV、平均升水 4.33 个波动点;把当日 VRP 分五档,Q1(最薄)未来一个月卖波动亏 1.62%、Q5(最厚)赚 1.53%,单调递增。据此造开关——VRP 厚时开仓卖波动、VRP 薄或倒挂时空仓:同一条卖波动腿,无择时版 Sharpe -0.26、回撤 -51.7%(长期亏钱),VRP 择时版 Sharpe 1.2、回撤收窄到 -27.9%、净值转正。关键在 VRP 会在崩盘前压缩,开关据此提前拉闸。附 IV/RV 缝隙、VRP 开关时序、净值对比、分位收益四图与完整 Python,及四类真实陷阱(中高阶)。
15 min Chinese - 向量化回测引擎:用 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
返回