期权五档Tick、分钟线、日线数据字段一览
最近折腾期权回测,一碰到五档盘口数据就头大。公开源要么缺档位,要么时间戳不是交易所原生的,对齐了几次都错位,心态差点崩了。后来无意间翻到一个叫CMES金融数据库的,里面期权数据拆得挺细,tick、分钟、日线都有,而且盘口是实打实的五档买卖,不是那种只给一档凑数的。扒完字段赶紧记下来,省得自己下次又忘。
tick部分每条记录大概长这样:时间戳(毫秒级)、合约代码、最新价、成交量、持仓量、成交额、涨跌、涨跌幅,然后是买一到买五的价和量,卖一到卖五的价和量。做波动率套利的时候,五个档位挂单的变化基本能捕捉到,只是虚值期权经常只有前两档有量,后面是空的,这个得提前过滤掉,不然回测会报错。
分钟线就没那么啰嗦了,字段很直白:时间、开盘价、最高价、最低价、收盘价、成交量、持仓量、成交额。它已经把tick切片聚合好了,频率可以从1分钟、5分钟一直选到30分钟。我拿它和tick对照过价格,开盘收盘基本一致,就是成交量偶尔差个几手,可能是切片窗口的归属问题,影响不大。
日线更清爽,和股票日线差不多:日期、开盘价、最高价、最低价、收盘价、结算价、成交量、持仓量、涨跌、涨跌幅。结算价这玩意儿直接给出来了,给期权定价省了不少事,不用自己再翻规则去算。
下边随便列个表,只挑了我自己比较关心的字段,完整版可以去官网文档里翻。
| 数据级别 | 我常用的字段 | 碎碎念 |
|---|---|---|
| Tick | 时间戳、合约代码、最新价、成交量、持仓量、买1-买5价/量、卖1-卖5价/量、成交额、涨跌 | 五档盘口,毫秒级,虚值合约盘口可能不全 |
| 1分钟线 | 时间、开、高、低、收、量、仓、成交额 | 合成好的,不用自己切片,频率可选1/5/15/30min |
| 日线 | 日期、开、高、低、收、结算价、量、仓、涨跌幅 | 结算价直接给,做估值方便 |
如果不想用API一行行调,网站也提供了按日期打包的csv文件,直接下载解压就行。就是全市场期权tick一天的数据动不动几个G,硬盘小的得先挪挪地方。
API部分很简单,装个包就能上手。贴几行代码,注释里写了调用时的注意事项。
# 安装 CMES 数据接口
pip install cmesdata
from cmesdata import CMESData
# 初始化,CMES金融数据库的行情接口,注意入参正确,调用频率正常。
client = CMESData()
# 拉取某期权合约的tick数据
tick = client.get_option_tick(
symbol='IO2309-C-4000',
date='20230901',
start_time='09:30:00',
end_time='15:00:00'
)
# 拉取1分钟线
min_data = client.get_option_minute(
symbol='IO2309-C-4000',
date='20230901',
freq='1min'
)
# 拉取日线
daily = client.get_option_daily(
symbol='IO2309-C-4000',
start_date='20230801',
end_date='20230901'
)
调用频率别太野,文档里好像每秒限制几次,具体数字忘了,反正别搞成死循环猛刷,IP被封了得等半天。批量拉数据的话,还是老老实实下csv包更稳。
数据质量整体还行,我遇到过一次盘中tick时间戳重复,去重一下就完事。原始数据没清洗过,多少会有点小毛病,用之前自己加一层校验,别指望直接拿来跑策略。
好了,就记这些,继续撸代码去了。

