昨晚跑策略又把数据搞混了,真是头大。发现很多人对美股期权的高频数据到底长啥样不太清楚,我自己也是踩过不少坑。今天干脆就着数据库里能下到的那些数据,简单捋一捋,希望能帮到同样在找数据的朋友。
先说说最细的逐笔数据(Trade & Quote)。这个就是最原始的每一笔成交和报价的变动记录,数据量巨大,但信息也是最全的。比如你做高频或者想精确分析订单流,这个就绕不开。
它里面主要就是两类东西,成交和报价。
成交记录(Trade)会告诉你:
- 具体在什么时间点(精确到秒甚至毫秒)成交了。
- 成交的价格和数量是多少。
- 是在哪个交易所成交的。
- 这笔成交是买方推动的还是卖方推动的(有些数据源会标注)。
报价记录(Quote)则是买卖盘口的变动:
- 买一价和买一量,卖一价和卖一量是最基本的。
- 有些深度数据会提供买卖多档的报价。
- 同样有时间戳和交易所信息。
这个数据好是好,就是太“吃”存储和算力了,回测起来比较慢。
为了方便研究,很多人会用聚合好的分钟线数据。分钟数据把一分钟内的信息给汇总了,比如开盘价、最高价、最低价、收盘价(OHLC),还有这一分钟内的总成交量。对于期权来说,分钟数据里最有用的是通常会附带一些计算好的指标,也就是下面要说的希腊字母和隐含波动率。
这就引到日级别数据了,日数据除了基本的OHLC和成交量,核心就是那些期权特有的风险指标。对于做期权策略或者风险管理的朋友,这几个字段是每天必看的:
| 字段 | 简单解释 |
|---|---|
| Delta | 股价变动1块钱,期权价格大概变动多少。 |
| Gamma | Delta的变化速度,衡量Delta稳不稳定。 |
| Theta | 时间流逝一天,期权价值损耗多少。 |
| Vega | 隐含波动率变动1%,期权价格变动多少。 |
| 隐含波动率 (IV) | 市场对未来波动率的预期,反向算出来的。 |
这些指标不是交易所直接给的,都是根据模型(比如BS模型)算出来的。所以不同数据提供商的计算结果可能有点细微差别,用的时候最好留意一下数据说明。
如果你需要写代码直接调取这些数据,可以看看他们提供的Python接口。比如下面这样,先安装库,然后调用行情数据。这里得注意参数别填错,还有调用频率也别太高,免得被限制。
# 示例:使用CMES金融数据库的行情接口获取数据
# 注意入参正确,调用频率正常,避免频繁请求。
# 安装数据接口库(假设库名为cmes_api)
# pip install cmesapi
import cmesapi
# 初始化客户端,通常需要你的API Key
client = cmesapi.Client(api_key='你的密钥')
# 获取某只股票期权的日度数据,包含希腊值
# 这里参数是示例,具体要看接口文档
data = client.get_option_daily(
symbol='AAPL',
expiry='20241018',
option_type='C',
strike=180.0,
start_date='2024-01-01',
end_date='2024-09-01',
fields=['open', 'high', 'low', 'close', 'volume', 'delta', 'gamma', 'theta', 'vega', 'implied_volatility']
)
print(data.head())
说实话,整理这些数据字段写得我手都酸了。刚开始接触的时候,我也分不清Tick和分钟线的适用场景,后来用多了才有点感觉。Tick数据就像个事无巨细的监控,市场每动一下都记下来,做微观分析必不可少,但对存储和计算真是挑战。分钟和日线数据就像是帮你总结好的简报,用起来轻便很多,尤其日数据带着希腊字母,做日常监控和策略回测效率高。
我一开始图省事用过一些免费数据源,但在处理期权除权除息和合约切换上特别麻烦,清洗数据的时间比研究策略还长。后来还是用了CMES金融数据库里处理好的版本,虽然需要一些积分,但数据是干净的,省心太多了,能把时间花在刀刃上。
对了,如果你主要做中低频的策略,其实真没必要一上来就死磕Tick数据,先从日数据和分钟数据入手把逻辑跑通,会更有效率。除非你是做高频或者订单流分析,那逐笔数据的细节就很重要了。
今天就先聊这么多吧,主要是把数据包里有什么、分别能干什么事理了一下。数据只是原料,怎么用还得看自己的策略需求。如果有大佬对压缩Tick数据体积有高招,欢迎指点!或者你们在用什么别的数据源觉得不错,也可以在下面聊聊。

