第四章 基差交易的实战准备:数据获取与处理、基差计算与可视化、交易标的筛选
好,咱们直接进入正题。
前面三章讲了基差交易的底层逻辑和策略框架,算是把「道」给捋顺了。但从「道」到「术」,中间还隔着一道坎——数据。没有干净的数据,再牛逼的策略也是空中楼阁。
我个人习惯把实战准备分成三步:数据获取与处理 → 基差计算与可视化 → 交易标的筛选。这三步走扎实了,后面策略回测和实盘交易才能站得住脚。
4.1 数据获取与处理:地基不牢,地动山摇
做基差交易,核心数据就两样:现货价格和期货价格。听起来简单,但坑特别多。
4.1.1 数据源的选择
我常用的数据源分三类:
- 交易所官方数据:上期所、大商所、郑商所、中金所。最权威,但接口不太友好,需要自己写爬虫或者买数据服务。
- 金融终端API:Wind、Choice、Tushare、AkShare。我早期做量化时主要用Wind,后来发现AkShare免费且覆盖全,适合个人交易者。
- 产业数据平台:比如钢联数据、卓创资讯。做黑色系和化工品时,这些平台的现货报价比期货数据更及时。
4.1.2 数据清洗的常见坑
数据拿到手,第一件事不是算基差,而是清洗。我总结过几个高频问题:
- 缺失值处理:节假日、非交易日会导致数据断点。我一般用前向填充(ffill),或者用插值法补全。
- 异常值剔除:比如某天现货价格突然跳涨10%,但当天没有重大新闻。这种多半是数据录入错误,我会用3倍标准差法过滤。
- 合约换月处理:期货合约有到期日,主力合约会切换。如果不处理换月,基差序列会出现跳跃。我习惯用「持仓量最大」原则确定主力合约,换月当天做平滑处理。
4.1.3 数据对齐与频率统一
现货和期货的数据频率往往不一致。现货可能是日频,期货是分钟频。做基差交易,我建议统一到日频,因为基差回归通常需要几天到几周,日内波动太杂。
对齐方法很简单:
# Python示例:将期货数据按日期对齐到现货数据
import pandas as pd
# 假设df_spot是现货日频数据,df_futures是期货分钟频数据
df_futures_daily = df_futures.resample('D').last() # 取每日收盘价
df_aligned = pd.merge(df_spot, df_futures_daily, on='date', how='inner')
4.2 基差计算与可视化:把数字变成直觉
数据准备好了,接下来就是算基差。公式很简单:
基差 = 现货价格 - 期货价格
但实际应用中,有几个细节要注意。
4.2.1 基差的标准化处理
不同品种的绝对价格差异很大。铜的基差可能是几百块,玉米的基差可能只有几十块。直接比较绝对值没有意义。我一般会计算基差率:
基差率 = (现货价格 - 期货价格) / 期货价格 * 100%
这样就能跨品种比较了。比如铜的基差率是0.5%,玉米的基差率是1.2%,一眼就能看出哪个品种的基差偏离更大。
4.2.2 可视化:一张图胜过千行数据
我个人习惯用三线图来展示基差:
- 第一条线:现货价格走势
- 第二条线:期货价格走势
- 第三条线:基差(或基差率)
这样能直观看到基差什么时候扩张、什么时候收敛。我常用Matplotlib或Plotly画图,代码大概这样:
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 6))
plt.plot(df_aligned['date'], df_aligned['spot'], label='现货价格')
plt.plot(df_aligned['date'], df_aligned['futures'], label='期货价格')
plt.plot(df_aligned['date'], df_aligned['basis'], label='基差', linestyle='--')
plt.legend()
plt.title('螺纹钢基差走势图')
plt.show()
4.2.3 基差的统计特征
光看图还不够,还得算统计量。我一般关注这几个指标:
| 指标 | 含义 | 阈值参考 |
|---|---|---|
| 均值 | 基差的长期中枢 | 不同品种差异大 |
| 标准差 | 基差的波动幅度 | 超过2倍标准差视为极端 |
| 偏度 | 基差分布是否对称 | 偏度>0.5需警惕 |
| 自相关系数 | 基差的持续性 | >0.8说明趋势性强 |
这些统计量能帮你判断:当前基差是随机波动,还是已经偏离到可以下注的程度。
4.3 交易标的筛选:好品种是成功的一半
不是所有品种都适合做基差交易。我筛选标的时,会看三个维度:
4.3.1 流动性
流动性差的品种,基差再大你也进不去、出不来。我一般要求:
- 期货主力合约日均成交量 > 10万手
- 买卖价差 < 0.1%
- 持仓量 > 5万手
符合这些条件的品种,比如螺纹钢、铁矿石、PTA、甲醇、豆粕,都是基差交易的常客。
4.3.2 基差波动性
基差波动太小,没有交易空间;波动太大,风险失控。我习惯用基差波动率来筛选:
基差波动率 = 基差日收益率的标准差 * sqrt(252)
我个人偏好基差波动率在10%-30%之间的品种。低于10%,赚不到钱;高于30%,心脏受不了。
4.3.3 产业逻辑支撑
这一点容易被量化交易者忽略。基差回归不是必然的,它需要产业逻辑支撑。比如:
- 库存周期:库存高时,现货贴水概率大;库存低时,现货升水概率大。
- 季节性:农产品有收获季,黑色系有开工季,这些都会影响基差。
- 交割制度:临近交割月,基差必然收敛。这是最硬的逻辑。
4.4 本章知识体系图
下面这张图把本章的核心逻辑串起来了。你可以把它当作实战前的检查清单:
4.5 本章小结
嗯,内容不少,但核心就三句话:
- 数据是命根子:花80%的时间在数据上,20%的时间在策略上。数据错了,策略白做。
- 基差要可视化:别只看数字,画出来。一张好的基差图能帮你发现别人看不到的机会。
- 标的筛选要严格:宁缺毋滥。流动性差、波动性不合适的品种,再好的基差也别碰。
我记得刚入行时,带我的老交易员说过一句话:「基差交易不是预测价格,而是做概率。」你想想看,数据准备得越充分,你的概率优势就越大。这一步偷懒了,后面全是白费功夫。
公众号:蓝海数据掘金营,微信deep3321