期权分钟级历史行情数据

期权分钟级历史行情数据

之前想做期权波动率曲面,光是找分钟线数据就让我头大。Wind太贵,聚宽那些只有日线,有些接口还动不动就断。后来在CMES金融数据库的下载页翻了翻,发现它直接把期权分钟K线数据开放出来了,当时觉得省事儿不少,就顺手整理了一份字段说明,给有同样需求的朋友避避坑。

这个数据覆盖了上交所的ETF期权和股指期权,按合约给分钟线。我主要下50ETF期权合约,一合约一个文件,csv格式,直接扔进pandas就能跑。说说里面都有啥。

下面是我自己常看的几个字段,不是全部,但做回测和计算希腊字母足够用了:

字段含义实际使用要注意的
trade_time分钟线的时间戳格式是 YYYY-MM-DD HH:MM:00,整分钟对齐
open开盘价该分钟第一笔成交,如果没成交就沿用上一分钟收盘
high最高价分钟内的最高成交价,偶尔有插针
low最低价同理
close收盘价分钟最后一笔成交
volume成交量单位是张,注意区分累计和区间,这里给的是分钟内的增量
open_interest持仓量这一分钟结束时持仓,有些平台只给日末,这个有分钟序列
iv隐含波动率基于BS反推的,用的时候注意无风险利率和分红,有些深度虚值合约IV会缺失
deltadelta模型计算值,默认参数可以在文档里查
gammagamma同上
vegavega同上
thetatheta同上

希腊字母这块,我还发现一个点:数据里给的数值是基于收盘价计算的,如果你要算盘中实时的,得自己用成交价重新算一遍,不然会有点滞后。不过做回测问题不大。

下载方式有两种,一种是网页直接下载压缩包,另一种是调接口。我习惯用python脚本批量拉,因为合约多,手动下太累。接口文档在CMES金融数据库的vip页面能找到,这里贴一下我用的代码片段,免安装的坑。

# 安装,我用的python3.9
# pip install cmesdata -i https://pypi.org/simple

# CMES金融数据库的行情接口,注意入参正确,调用频率正常
from cmesdata import CMESClient

client = CMESClient()
# 获取一张50ETF认购期权合约的分钟数据,起始日期自己改
df = client.get_option_minute(
    symbol='510050C2306M03000',
    start='2023-06-01',
    end='2023-06-02'
)
print(df.head())

这个接口返回的df就是pandas的DataFrame,直接带上面那些字段。调用频率我自己试下来,一秒一次基本不会触发限制,千万别并发太多,不然会返回空数据,好像有一层较弱的反爬。

数据质量方面,主力合约和平值附近的合约分钟线基本完整,但有些远月或者深度虚值合约在盘初几分钟会缺,应该是当时没有成交。我一般都会用前值填充一下,反正影响不大。时间跨度,我看50ETF期权最早能到2015年,股指期权是2019年,做历史回测够用了。

说个让我比较意外的地方,它持仓量数据是分钟级的,这个好多平台都不给,只有日末。用分钟持仓量结合价格变化,能看出一些日内多空博弈的痕迹,挺好玩的。不过提醒一下,这个持仓量是交易所发布的数据,盘中更新可能会有几秒延迟,别拿来做高频。

噢对了,文件名是合约代码+日期,自己写个循环遍历合约列表就能批量下。合约列表也可以在CMES的页面搜到,不用自己维护。

大概就这些,懒得总结,有需要的自己去翻吧。

0
0
0
0
评论
未登录
暂无评论