卡尔曼滤波期货套利:把“会过期的均值“换成递推估计的四层拆解

发布时间:2026/9/13 18:02:57

卡尔曼滤波期货套利:把“会过期的均值“换成递推估计的四层拆解 卡尔曼滤波期货套利把会过期的均值换成递推估计的四层拆解【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant均值回归策略最常见的死法不是价差没有回归而是你用来量回归的那把尺子已经过期了。基于 gs-quant 量化金融工具包本文用卡尔曼滤波做期货套利把固定窗口的价差均值与标准差换成逐期递推的动态估计并把整个系统拆成数据、滤波、信号、回测四层每层只保留最小可运行的部分。上图取自仓库内权益交易事件的流水线图输入→评估→优化→输出的分层方式与本文要搭的四层系统同构仅作结构示意。 先看最终效果四层系统各自管什么本节先回答这套系统长什么样给出对比效果再列出四层的输入输出后续各节按层展开细节。示例回测对比示例数据指标卡尔曼动态阈值固定 60 日窗口 ±2σ年化收益率19.4%11.2%夏普比率1.50.8最大回撤9.6%14.1%年交易次数62118示例回测结果非真实业绩。合约、对冲比例与窗口参数均见下文各层。一句话结论把均值从常量改成逐期更新的估计是这套系统相对静态方法唯一的结构性差异其余都是工程细节。四层输入输出一览层输入输出代码位置仓库内数据层合约定义、日期区间对齐后的价差序列spread_rawgs_quant/markets/、gs_quant/instrument/滤波层价差序列、Q/R 参数每期中心估计x_t与协方差P_t本文代码约 20 行信号层x_t、P_t、原始价差1 / 0 / −1 三态信号本文代码回测层信号、初始资金绩效指标gs_quant/backtests/、gs_quant/risk/数据层合约与价差序列怎么准备本节解决入口问题选哪两个标的、如何在 gs-quant 里定义合约、如何把它们对齐成一条价差序列。合约定义与行情拉取以螺纹钢 2309 与铁矿石 2309 为例1 小时频率、约半年区间示例import numpy as np from gs_quant.markets import get_history from gs_quant.instrument import Future # 定义合约对冲比例 1 : 5经验系数 rb Future(RB, 2309, CFFEX) i Future(I, 2309, DCE) rb_price get_history(rb, price, start_date2023-01-01, end_date2023-06-30, frequency1h) i_price get_history(i, price, start_date2023-01-01, end_date2023-06-30, frequency1h) # 价差 螺纹钢 - 5 × 铁矿石 spread_raw rb_price - 5 * i_price对冲比例这个系数从哪来两条路子对历史价格水平跑一次 OLS 回归取斜率作经验系数或直接用合约规格推导。关键是系数一旦确定回测期间不再改——否则价差序列本身就在漂移后面滤波层追的对象是错的。完整的拉数与清洗脚本可参考仓库 gs_quant/documentation/04_backtesting/ 下的示例 notebook本文只保留上面三件事合约定义、行情获取、价差计算。 滤波层卡尔曼滤波最小实现Q/R 参数从哪来本节回答核心数学问题如何用状态空间模型表达均值自己会动以及简化后的最小公式和代码。状态空间模型与两处简化状态方程 spread_t a b·spread_{t-1} w_t , w ~ N(0, Q) 观测方程 z_t spread_t v_t , v ~ N(0, R)其中a为漂移项b为持续性系数。两个噪声参数各给一句直觉解释过程噪声 Q真实中心自己漂移的速度Q 越大允许中心动得越快观测噪声 R报价里混入的随机杂质R 越大越不信任当根 K 线协方差 P估计有多不确定的刻度收敛后决定信号阈值宽窄两处简化理由如下状态取单个标量只关心价差水平状态转移矩阵F[1]——用上一期中心作为当期中心的最优预测把均值回复交给 Q/R 的比值去体现观测矩阵H[1]——观测就是状态 噪声矩阵乘法与求逆全部退化成标量除法整个更新只剩四行运算。卡尔曼增益 K 是信任新观测的权重决定中心跳多快R 大则 K 小中心动得慢。最小可运行实现class KalmanSpreadTracker: 单状态卡尔曼滤波F1、H1矩阵运算退化为标量 def __init__(self, q1e-4, r2e-3): self.Q, self.R np.array([[q]]), np.array([[r]]) self.x np.array([[0.]]) # 状态估计隐含价差中心 self.P np.array([[1.]]) # 协方差估计的不确定性 def update(self, z): # 预测中心沿用上一期不确定性加上 Q x_pred, P_pred self.x, self.P self.Q # 更新卡尔曼增益 K P/(PR) K P_pred / (P_pred self.R) self.x x_pred K * (z - x_pred) self.P (1 - K) * P_pred return self.x[0, 0] tracker KalmanSpreadTracker() xs, ps [], [] for s in spread_raw.values: # 逐期递推不重置状态 xs.append(tracker.update(s)) ps.append(tracker.P[0, 0]) spread_kalman np.array(xs)注意 tracker 是一个对象被串行复用状态不重置ps存下每期各自的P信号层要用到。Q 和 R 分别怎么给参数直觉含义给值方法R报价里的随机杂质用价差最近 20 期一阶差分方差的滚动估计如np.var(ret[-20:])每 N 期重估一次防止单一取值被行情用旧Q中心漂移的速度网格粗调1e-6 ~ 1e-2 量级再按下文敏感性结果定稿 信号层用 2σ 阈值把偏离变成多/空/观望本节回答什么时候交易把滤波中心与原始价差的连续偏离转成 1 / 0 / −1 三态信号。阈值怎么算用当期的协方差P_t作阈值尺度阈值取2σ 2·√P_t。与静态布林带的差别在于静态方法的窗口和 σ 来自历史统计这里来自滤波自身的递推更新——行情平静时P_t收窄、阈值收紧行情剧烈时P_t放大、阈值放宽不需要人工切换窗口。信号生成代码sigma np.sqrt(ps) # 每期各自的阈值尺度 dev spread_raw.values - spread_kalman signal np.zeros(len(dev)) signal[dev 2 * sigma] -1 # 高于中心 → 做空价差 signal[dev -2 * sigma] 1 # 低于中心 → 做多价差 # 其余保持 0观望信号规则汇总条件信号含义spread_raw − x_t 2√P_t−1价差显著高于动态中心做空价差x_t − spread_raw 2√P_t1价差显著低于动态中心做多价差其余0观望不新开仓回测层回测结果怎么读以及适用边界本节回答两个问题回测跑完后怎么解读数字以及这套方法在哪些行情里会失效。回测框架与绩效读数回测用 gs-quant 现成框架gs_quant/backtests/ 中的Backtest定义合约集合与初始资金把信号序列交给引擎运行绩效经 gs_quant/risk/ 下的Performance枚举读取如Performance.SHARPE_RATIO、Performance.MAX_DRAWDOWN。读数时盯三点交易次数是否在预期量级过多说明阈值过紧回撤是否集中在行情结构突变后的首次信号若是说明滤波在追噪声绩效对交易成本是否敏感频率越低越抗成本。必要时可把滤波后的价差暴露接入 gs_quant/models/risk_model.py 的因子风险模型做风险归因完整接线脚本见仓库对应示例 notebook。参数敏感性怎么看示例回测中Q、R 在 1e-6 ~ 1e-2 范围内单独调整夏普、回撤等指标波动普遍小于 8%。方向性结论Q/R 不需要调到小数点后某一位只需要量级正确把力气花在是否随行情重估 R上回报更大。什么行情下这套方法会失效持续单边趋势价差长期不回归时任何动态中心都会追错方向均值回复前提不成立结构性断点供需、政策改变价差分布本身滚动 R 会被系统性带偏高成本低流动性信号本身就稀疏手续费与滑点能吃掉全部边际厚尾分布2σ 阈值会低估真实偏离幅度可考虑放大倍数或粒子滤波✅ 下一步清单从示例到你的品种本节是一份待办清单读完后按顺序做什么仓库里哪里可以继续看。五条可执行动作把示例合约换成自己的价差组合先跑通数据层肉眼检查价差序列有没有对齐缺失以 Q1e-4、R2e-3 为起点跑通滤波层与信号层确认信号期数量在合理量级用 20 期滚动方差重估 R对比绩效变化幅度做第一次自适应实验对 Q/R 做十倍网格敏感性分析记录指标极差后再谈稳健在回测中加入交易成本重读频率、回撤位置、成本敏感这三个数仓库里继续看什么时间序列技术指标含exponential_moving_average可作噪声估计的对照基线gs_quant/timeseries/technicals.py回测引擎与事件、订单系统gs_quant/backtests/因子风险模型风险归因gs_quant/models/risk_model.py【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/13 17:57:57

刷盘电机三种控制方式详解与选型指南

做清洁设备这行的人,基本都跟刷盘电机打过交道。洗地机、扫地车、手推式清洁机,核心动作就是那个刷盘在地上转,把污渍和灰尘“盘”下来,再配合吸水系统收走。刷盘电机看着不起眼,就是个带减速的直流电机,但…

2026/9/13 18:58:00

Python实现数据库到Excel的高效批量导出方案

1. 项目背景与需求分析在日常数据处理工作中,我们经常需要将数据库中的大量数据导出到Excel文件进行进一步分析或共享。手动操作不仅效率低下,而且容易出错。Python作为数据处理领域的利器,配合适当的库可以轻松实现数据库到Excel的批量导出功…

2026/9/13 18:58:00

CAN超时丢包抖动不是故障,是车规级容错机制在工作

1. 为什么CAN报文“超时、丢包、抖动”不是故障,而是你没吃透车规级容错设计的底层逻辑 “CAN报文超时了”“总线上丢了几帧”“信号抖动太大,诊断仪读不到稳定值”——这些话我听工程师在产线、测试台架、售后维修现场说了不下几百遍。每次听到&#xf…

2026/9/13 18:58:00

导师严选!盘点2026年倾心之选的AI论文软件

一天写完毕业论文在2026年已不再是天方夜谭。以下是2026年最炸裂、实测能大幅提速的AI论文软件,覆盖全流程生成、文献处理、降重润色、格式排版四大核心场景,帮你高效搞定论文。 一、全流程王者:一站式搞定论文全链路(一天定稿首选…

2026/9/13 18:58:00

Appium 项目发展史:从 iOSAuto 到跨平台自动化生态

Appium 项目发展史:从 iOSAuto 到跨平台自动化生态 【免费下载链接】appium Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol 项目地址: https://gitcode.com/GitHub_Trending/ap/appium 导读 本文…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/13 11:18:28

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码