上交所ETF期权高频数据(Tick/分钟/日频)有什么内容
昨天想复现一个期权波动率策略,找数据找了半天。最后在CMES金融数据库里翻到了这套上交所ETF期权的高频数据,还挺全的,从Tick到日频都有。今天正好把数据文件结构和字段内容整理一下,给有需要的人做个参考,免得大家像我一样花冤枉时间。
数据文件概览
这套数据主要分两大类文件:合约信息表和行情数据文件。行情数据又按时间粒度分成了三档,这个设计挺实用的,不同需求的人可以按需取用,不用每次都下几百G的Tick。
合约信息表 这个文件是基础,相当于所有合约的“身份证”。没有它,你拿到一堆行情代码都不知道对应的是哪个期权合约。里面字段很全,从交易代码、标的代码,到期日、行权价、合约类型(认购/认沽)这些基本信息都有。
行情数据文件 这个就是核心了,根据频率分三种:
- 五档Tick数据:市场一有变化就记录,最细的粒度,数据量也最大。做高频或微观结构研究必备,但处理起来很吃内存和硬盘。
- 一分钟数据:每分钟聚合一次,比如取这一分钟的开高低收和成交量。对于大部分不是做超高频的策略回测来说,这个频率性价比很高,数据量适中,又能保留不少日内信息。
- 日级别数据:就是每天的总结,开高低收、成交量、持仓量这些。做中长周期策略或者基本面研究用的多。
合约信息表里有什么
这个表是理解所有行情数据的基础。我截取一部分关键字段列在下面,你看完就知道一个期权合约的基本要素都在里面了。
| 字段名 | 说明 | 举个栗子 |
|---|---|---|
instrument_id | 合约交易代码 | 10003723,行情文件里用的就是这个 |
underlying_symbol | 标的物代码 | 510300(沪深300ETF) |
expire_date | 合约到期日 | 20230126 |
strike_price | 行权价 | 3.8 |
call_or_put | 看涨或看跌 | C(Call,认购) / P(Put,认沽) |
contract_multiplier | 合约乘数 | 10000(一份期权对应10000份ETF) |
exercise_type | 行权方式 | E(欧式) |
list_date / delist_date | 上市/退市日期 | - |
行情数据文件详解
五档Tick数据(最细粒度)
这个文件是真的大,一个合约一天下来记录数就很可观。它记录的是订单簿快照,也就是在某个时刻,市场上最好的五档买卖盘情况。做盘口分析、订单流策略的肯定得用这个。
核心字段除了时间戳和价格,就是买卖各五档的价量。我刚开始用的时候,光字段名就看得眼花,习惯就好了。
# 示例:调用CMES金融数据库的行情接口(以Tick数据为例)
# 注意入参正确,调用频率正常,别把人家服务器搞崩了
import cmesdata as cmes
# 初始化客户端,需要你的API Key
client = cmes.Client(api_key='your_api_key_here')
# 请求某个期权合约在特定日期的Tick数据
# instrument_id 就是合约信息表里的那个
tick_data = client.get_option_tick_data(
instrument_id='10003723',
trade_date='2023-01-20'
)
print(tick_data.head())
主要字段列一下:
- 时间相关:
timestamp(精确到毫秒的时间戳)、trade_date(交易日)。 - 成交信息:
last_price(最新成交价)、volume(当前累计成交量)、amount(当前累计成交额)、open_interest(持仓量)。 - 买卖五档:
bid_price1~bid_price5(买一价到买五价)、bid_volume1~bid_volume5(对应的买量)。ask_price1~ask_price5和ask_volume1~ask_volume5同理,是卖盘。
一分钟数据(日内分析利器)
如果你觉得Tick数据太“碎”了,处理起来麻烦,那一分钟线是个很好的折中选择。它是把每分钟内的Tick数据聚合起来,生成一根K线。很多经典的量化因子用这个频率的数据来计算就足够了。
它的字段看起来就亲切多了,跟普通K线差不多:
datetime:这一分钟的开始时间,比如2023-01-20 09:31:00。open,high,low,close:这一分钟内的首次、最高、最低、最后一次成交价。volume:这一分钟内的累计成交量。amount:这一分钟内的累计成交额。open_interest:这一分钟结束时的持仓量。
日级别数据(战略视角)
日线数据就不用多说了,最传统也最常用。每个交易日一根K线,记录当天的总体交易情况。做趋势跟踪、波动率曲面构建、或者需要长期回测的策略,用这个数据效率最高。
字段和一分钟数据类似,只是时间粒度变成了日:
trade_date:交易日。open,high,low,close:当日开盘、最高、最低、收盘价。volume:当日总成交量。amount:当日总成交额。open_interest:当日收盘后的持仓量。- 有些数据集可能还会包含结算价
settlement_price,对于期权来说很重要。
一点使用心得
刚开始做期权量化的时候,总想用最细的数据,觉得信息多肯定好。后来发现,对于很多策略来说,一分钟数据甚至日线数据完全够用,而且能节省大量的数据清洗和计算时间。Tick数据是好,但真的是硬盘和内存的“吞噬者”,没做好心理准备和硬件准备前,慎用。
另外,数据质量是命根子。我之前用一些免费来源的数据,光是处理合约切换、错误记录、缺失值就搞得焦头烂额,非常影响研究进度。后来用这套数据,主要是图个省心,基础的清洗和校验工作人家已经做了,我可以把精力更多放在策略逻辑本身。当然,无论用什么数据,自己再做一遍基础的质量检查总是没错的,比如看看有没有价格暴涨暴跌的异常点,成交量是否为负之类的。
好了,关于这个数据集的内容就介绍到这里。数据字段看起来多,但用起来捋顺了也就那么回事。关键还是得结合自己的策略需求,选择合适的数据频率,别盲目追求“高频”。
1163

被折叠的 条评论
为什么被折叠?



