期货市场基础:从合约到数据,一个量化人的实战笔记

做统计套利,第一步不是写代码,而是搞懂你交易的东西到底是什么。

期货市场,说白了就是一张张标准化合约的战场。我刚开始接触量化时,总觉得这些基础概念太简单,结果在实盘里吃过亏——有一次因为没搞懂保证金规则,差点被强平。嗯,从那以后,我再也不敢跳过基础了。

期货合约的基本要素

每一张期货合约,都像一份标准化的「买卖合同」。你想想看,如果没有统一标准,螺纹钢的规格五花八门,那还怎么交易?

我个人习惯把合约要素拆成五个核心点:

  • 交易标的:到底交易什么?是螺纹钢、沪深300指数,还是原油?
  • 合约单位:每手代表多少数量。比如螺纹钢是10吨/手,黄金是1000克/手。
  • 报价单位:元/吨、元/克、指数点……不同品种不一样。
  • 最小变动价位:价格跳动的最小单位。螺纹钢是1元/吨,一跳就是10块钱(1元×10吨)。
  • 交割月份:合约到期的月份。比如RB2305,就是2023年5月交割。
避坑指南:我曾经在回测时忽略了合约的「最后交易日」,结果策略信号在交割月前一周还在开仓,差点闹出实物交割的笑话。记住,统计套利一般只做主力合约和次主力合约。

期货交易机制:保证金与逐日盯市

这两个机制,是期货和股票最大的区别。搞不懂它们,你的资金管理就是瞎搞。

保证金制度

说白了就是「杠杆」。你不需要付全款,只需要交一部分保证金就能控制整个合约价值。

举个例子:螺纹钢4000元/吨,一手10吨,合约价值4万元。如果保证金比例是10%,你只需要4000元就能开一手。

我在项目中遇到过最头疼的事,就是不同品种的保证金比例不一样,而且交易所还会临时调整。比如临近节假日,保证金比例可能从10%提到15%,你的仓位可能瞬间就不够了。

品种 合约单位 保证金比例(参考) 一手保证金(约)
螺纹钢 10吨 10% 4000元
沪深300股指 每点300元 12% 约15万元
原油 1000桶 15% 约6万元

逐日盯市

这个机制,我建议每个做量化的人都把它刻在脑子里。

逐日盯市,就是每天收盘后,交易所根据当天的结算价重新计算你的盈亏,然后直接划转资金。赚了,钱进账户;亏了,从保证金里扣。

为什么会这样?因为期货是「零和博弈」,你的盈利就是别人的亏损。交易所不想等到交割日才算总账,万一中间有人跑路了呢?

注意:逐日盯市意味着你的「浮动盈亏」是真实的现金流。我见过有人回测时用「未实现盈亏」来算资金曲线,结果实盘发现每天的资金变动完全不一样——就是因为没考虑逐日盯市的现金划转。

期货品种分类:商品期货 vs 金融期货

做统计套利,你得知道哪些品种可以配对。我个人习惯把期货分成两大类:

商品期货

  • 能源化工:原油、甲醇、PTA、沥青等
  • 黑色系:螺纹钢、铁矿石、焦煤、焦炭等
  • 有色金属:铜、铝、锌、镍等
  • 农产品:豆粕、玉米、白糖、棉花等
  • 贵金属:黄金、白银

金融期货

  • 股指期货:IF(沪深300)、IC(中证500)、IH(上证50)
  • 国债期货:2年期、5年期、10年期国债期货

你想想看,螺纹钢和热卷板,它们的价差就很有规律,因为生产工艺相近。但螺纹钢和白糖?八竿子打不着,做统计套利就是瞎搞。

期货数据获取:tushare 和 akshare 实战

数据是量化交易的血液。我最早用tushare,后来发现akshare更轻量,现在两个都备着。

用 tushare 获取期货数据

tushare需要注册获取token,我个人习惯把它存在环境变量里。

import tushare as ts

# 设置token(建议用环境变量)
ts.set_token('你的token')
pro = ts.pro_api()

# 获取螺纹钢主力合约日线数据
df = pro.fut_daily(
    ts_code='RB9999.XSGE',  # 9999代表主力合约
    start_date='20230101',
    end_date='20231231',
    fields='trade_date,open,high,low,close,vol'
)
print(df.head())

用 akshare 获取期货数据

akshare不需要token,直接pip安装就能用,对新手特别友好。

import akshare as ak

# 获取螺纹钢主力合约日线
df = ak.futures_main_sina(
    symbol='RB0',  # RB0代表螺纹钢主力连续
    start_date='20230101',
    end_date='20231231'
)
print(df.head())
我的经验:做统计套利时,我建议同时获取「主力连续合约」和「具体合约月份」的数据。主力连续用于回测,具体合约月份用于实盘交易——因为主力合约切换时会有跳空,不注意这个细节,回测结果会失真。

本章知识体系:一张图看懂

下面这张图,是我做课程时画的。它把本章的核心逻辑串起来了:从合约要素到交易机制,再到品种分类和数据获取,每一步都是下一章的基础。

期货市场基础:知识体系 期货合约基本要素 期货交易机制 期货品种分类 交易标的 合约单位 报价单位 交割月份 保证金制度(杠杆) 逐日盯市(每日结算) 商品期货 金融期货 期货数据获取 tushare(需token) akshare(免token) 核心逻辑:合约要素 → 交易机制 → 品种分类 → 数据获取

嗯,这一章的内容就到这里。记住,基础不牢,地动山摇。下一章我们会开始搭建第一个统计套利模型,到时候这些知识都会用上。


公众号:蓝海资料掘金营,微信deep3321