一、期货价差分析工具概述
1.1 什么是期货价差
期货价差,说白了就是两个相关期货合约之间的价格差。
举个例子:
- 同一品种不同月份——比如螺纹钢 2401 和 2405 的价差
- 不同品种但有关联——比如豆粕和豆油的价差
- 同一品种不同市场——比如沪铜和伦铜的价差
我刚开始做量化的时候,总觉得单边交易才够刺激。后来亏了几次才明白——价差交易才是真正稳扎稳打的路子。你想想看,单边行情受太多因素影响,但价差往往有它内在的回归逻辑。
核心公式:
价差 = 合约A价格 - 合约B价格
或者用比值:价差比 = 合约A价格 / 合约B价格
1.2 价差交易的核心逻辑
价差交易的核心逻辑其实就一句话:价差会回归均值。
为什么会这样?
因为两个相关合约之间,存在某种天然的约束关系。比如:
- 跨期价差:受持仓成本、资金利率约束
- 跨品种价差:受产业链利润分配约束
- 跨市场价差:受汇率、运费、关税约束
我记得有一次做豆粕和豆油的价差分析,发现价差偏离历史均值超过两个标准差。当时团队里有人觉得这是趋势反转,但我坚持认为是短期错配。结果三天后价差果然回归了——那次我们赚了不少。
我的经验:
价差交易不是无脑做回归。你得搞清楚这个价差为什么偏离。如果是基本面变了,那均值本身可能也在变。
1.3 工具能解决什么问题
做价差分析,最头疼的是什么?
数据!数据!还是数据!
我早期用Excel手工算价差,每天花两小时拉数据、算统计量、画图。后来实在受不了了,才写了这套工具。它主要解决三个问题:
- 数据获取自动化——不用每天手动下载行情
- 价差计算与可视化——一眼看出价差走势和异常点
- 交易信号生成——基于统计模型给出入场/出场建议
说白了,就是把那些重复性的、容易出错的工作交给程序,你只负责做决策。
注意:
工具只是辅助。我见过有人完全依赖信号交易,结果亏得很惨。记住,工具给你的是概率,不是确定性。
1.4 工具的整体架构
这套工具我设计成了三层架构,每一层各司其职:
这个架构图看着简单,但每一层都有不少细节。我挑几个重点说说:
数据层
数据层是整个工具的基础。我建议用本地SQLite数据库存储,轻量又好用。数据源方面,我一般用CTP接口获取实时行情,历史数据则从交易所官网或数据服务商那里拉。
避坑指南:
我曾经因为数据源时间戳不一致,导致价差计算出现偏差。后来统一用交易所时间作为基准,才解决了这个问题。
分析层
分析层是核心。这里主要做三件事:
- 计算价差序列
- 做统计检验(平稳性、协整性)
- 生成交易信号
我常用的模型是均值回归模型,配合布林带和Z-score来判断入场时机。
展示层
展示层我用的是PyQt5做的桌面应用。说实话,一开始想过用Web界面,但考虑到交易员习惯用桌面端,还是选了PyQt。
展示层主要包含:
- 价差走势图(K线+均线)
- Z-score监控面板
- 交易信号列表
- 风险指标仪表盘
小结一下:
这套工具的核心思路就是:数据层管输入,分析层管逻辑,展示层管输出。三层之间通过接口通信,互不干扰。这样后期维护和扩展都很方便。
嗯,第一章就讲这么多。记住,工具是死的,人是活的。把底层逻辑搞懂了,用起来才能得心应手。