第四章 基差交易的实战准备:数据获取与处理、基差计算与可视化、交易标的筛选

好,咱们直接进入正题。

前面三章讲了基差交易的底层逻辑和策略框架,算是把「道」给捋顺了。但从「道」到「术」,中间还隔着一道坎——数据。没有干净的数据,再牛逼的策略也是空中楼阁。

我个人习惯把实战准备分成三步:数据获取与处理 → 基差计算与可视化 → 交易标的筛选。这三步走扎实了,后面策略回测和实盘交易才能站得住脚。

4.1 数据获取与处理:地基不牢,地动山摇

做基差交易,核心数据就两样:现货价格期货价格。听起来简单,但坑特别多。

4.1.1 数据源的选择

我常用的数据源分三类:

  • 交易所官方数据:上期所、大商所、郑商所、中金所。最权威,但接口不太友好,需要自己写爬虫或者买数据服务。
  • 金融终端API:Wind、Choice、Tushare、AkShare。我早期做量化时主要用Wind,后来发现AkShare免费且覆盖全,适合个人交易者。
  • 产业数据平台:比如钢联数据、卓创资讯。做黑色系和化工品时,这些平台的现货报价比期货数据更及时。
我的个人经验:不要只依赖一个数据源。我曾在螺纹钢上吃过亏——Wind的现货价格更新频率是日频,但实际现货市场上午和下午报价能差50块。后来我加了钢联的实时报价,才把基差计算精度提上来。

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 产业逻辑支撑

这一点容易被量化交易者忽略。基差回归不是必然的,它需要产业逻辑支撑。比如:

  • 库存周期:库存高时,现货贴水概率大;库存低时,现货升水概率大。
  • 季节性:农产品有收获季,黑色系有开工季,这些都会影响基差。
  • 交割制度:临近交割月,基差必然收敛。这是最硬的逻辑。
我的筛选清单:我目前重点跟踪的品种有6个:螺纹钢、铁矿石、PTA、甲醇、豆粕、铜。每个品种我都建了一个「基差档案」,包含历史基差分布、季节性规律、产业上下游关系。每次交易前,先翻档案,再下单。

4.4 本章知识体系图

下面这张图把本章的核心逻辑串起来了。你可以把它当作实战前的检查清单:

基差交易实战准备:三步走框架 第一步:数据获取与处理 数据源选择 数据清洗 频率统一 第二步:基差计算与可视化 基差公式 基差率 三线图可视化 统计特征分析 第三步:标的筛选 流动性 波动性 产业逻辑 核心原则:数据干净 → 基差清晰 → 标的靠谱 每一步都做扎实,策略才能跑得稳 实战中,这三步不是线性的,而是循环迭代的 发现好标的 → 优化数据处理 → 改进可视化 → 再筛选

4.5 本章小结

嗯,内容不少,但核心就三句话:

  • 数据是命根子:花80%的时间在数据上,20%的时间在策略上。数据错了,策略白做。
  • 基差要可视化:别只看数字,画出来。一张好的基差图能帮你发现别人看不到的机会。
  • 标的筛选要严格:宁缺毋滥。流动性差、波动性不合适的品种,再好的基差也别碰。

我记得刚入行时,带我的老交易员说过一句话:「基差交易不是预测价格,而是做概率。」你想想看,数据准备得越充分,你的概率优势就越大。这一步偷懒了,后面全是白费功夫。

实战建议:从今天开始,选一个你熟悉的品种,按本章的步骤走一遍。从数据获取到基差可视化,再到筛选逻辑,完整跑通。做完这一步,你才算真正准备好了。

公众号:蓝海数据掘金营,微信deep3321