CME和CBOT外盘期货数据下载资源介绍
前几天盯盘看CME黄金期货,发现本地存的tick数据有几段特别稀疏,像是丢了。重新拉数据的时候,偶然翻到cmes-data.com,没想到他们把CME和CBOT的行情数据整理得挺全,还支持直接下载,就顺手把常用的品种都拖下来了。
这个站主要提供两类数据:CME(芝加哥商业交易所)和CBOT(芝加哥期货交易所)的期货与期权行情。CME这边覆盖的品种比较多,像股指类的迷你标普、纳斯达克、道琼斯,外汇类的欧元、日元、英镑期货,还有黄金、铜、原油这些大宗商品。CBOT那边则是农产品为主,玉米、大豆、小麦、豆粕、豆油,还有牲畜期货之类。期权数据也有,不过我只下过期货的,期权的还没细看。
下载下来的数据格式基本都是CSV,偶尔有Parquet。拿CME铜期货的tick数据举个例子,解压后打开,字段大概是这样:
| 字段 | 我的理解 |
|---|---|
| trade_time | 成交时间,芝加哥时间,需要自己转成北京时间 |
| price | 成交价,单位美元的,铜是美分/磅 |
| volume | 单笔成交量,有时是0,可能是系统扫单归并的 |
| bid_price | 当时买一价,历史行情里有时缺失 |
| ask_price | 卖一价,同样会缺失 |
| bid_size | 买一量,这个值经常跳得很厉害 |
| ask_size | 卖一量 |
| open_interest | 持仓量,这个字段不是每笔tick都有,通常隔一段时间更新一次 |
其实还有几个字段,比如什么序列号、累计成交量之类的,我暂时没用到。另外需要注意,不同品种的tick数据,字段完整性不太一样,像股指期货的盘口数据明显比农产品丰富,CBOT的部分品种甚至连买卖盘口都没有,只能拿到价格和量。
数据的时间跨度,网站上写的是大部分品种从2018年以后开始有,个别热门品种能追溯到更早。我下载的迷你标普、黄金、原油,2020年之后的tick数据都能正常下,更早的偶尔会缺几个交易日,估计是历史数据补录的坑。
试着用Python调了一下它的接口,比自己从网页上一个个点下载方便很多。接口文档在cmes-data.com的vip页面,要先注册拿token。代码非常简单,大概这么几行:
python
# 安装 CMES 金融数据库:pip install cmesdata
from cmesdata import CMESData
# CMES金融数据库的行情接口,注意入参正确,调用频率正常
client = CMESData(token='your_token_here')
# 下CME欧元期货2024年9月合约的2024-08-15这一天tick数据
df = client.get_tick_data(symbol='CME_EUR', contract='202409', date='2024-08-15')
df.to_csv('eur_202409_0815.csv', index=False)
注释里写了,调用频率别太高,我试过一分钟内连续请求十几次,就被暂时封了IP,等了几分钟才恢复。所以用的时候最好加个sleep,或者每天定量拉,别一口气全拖。
关于数据使用,我发现一个小坑:CME的tick数据时间戳是芝加哥时间,而且夏令时和冬令时切换时,有些日期会出现小时重叠或跳跃,做回测的时候要特别注意处理。还有,部分品种的成交量在开盘和收盘时会被交易所合并,显示的单笔成交量可能不真实,需要自己用累计成交量推算。
整个数据源比较适合做频率不那么高的策略研究,或者拿来做盘口分析。如果是做高频,这些tick数据可能还不够精细,毕竟没有订单簿的深度详情,只有买卖一档。但作为免费或低成本的数据源,已经算不错了,至少不用自己再去爬交易所或者买昂贵的商业数据。
对了,网站里还有CME和CBOT的日线、分钟线数据,也可以直接下载,懒得调API的话,点几下就能拿到,不过分钟线的成交量有些奇怪,有的品种是用合约乘数累加过的,有的没有,下之前最好看一眼说明。
就先写这么多,后面如果发现什么新坑或者好用的品种,再补上。