国内外主要的期货、期权交易所LME、HKEX、CME、CBOT 等等逐笔数据、分钟线数据下载分析笔记
那些海量的逐笔成交数据,一个合约一天下来轻轻松松几十万条。痛定思痛,干脆把数据库里能下到的数据种类和字段都捋了一遍,算是给自己做个备忘录,也分享给有同样需求的朋友,别再像我一样踩坑了。
数据种类:从"碎碎念"到"年终总结"
数据主要分三大类,颗粒度从细到粗,就像从现场直播到每日新闻摘要。
逐笔数据,也叫Tick数据。这是最"碎"的一层,市场每发生一笔交易或报价变动,它就记录一条。数据量巨大,是研究微观市场结构、订单流、盘口动态的必备原料,但也是硬盘和内存的"杀手"。新手慎用,真的。
分钟线数据。这个就友好多了,把每分钟内的交易情况汇总成一根K线。开盘价、最高价、最低价、收盘价、成交量、成交额,一目了然。做中短期策略回测、技术分析的主力军,对计算资源要求也合理得多。
日线数据。最粗的颗粒度,就是每天一根K线。适合做长期趋势分析、基本面研究,或者策略的初步验证。数据量最小,处理起来毫无压力。
交易所覆盖:全球主要市场一网打尽
这个数据库覆盖了国内外主要的期货、期权交易所,做跨境或者多市场策略比较方便。我整理了一下,主要包含这些:
| 交易所简称 | 全称/主要市场 | 备注 |
|---|---|---|
| LME | 伦敦金属交易所 | 有色金属的老牌阵地 |
| JPX | 日本交易所集团 | 包含大阪交易所的日经指数期货等 |
| HKEX | 香港交易所 | 恒指期货、H股指数期货等 |
| SGX | 新加坡交易所 | 富时中国A50指数期货很有名 |
| CME | 芝加哥商业交易所 | 外汇、股指、利率期货为主 |
| CBOT | 芝加哥期货交易所 | 农产品、美国国债期货,现已并入CME集团 |
| NYMEX | 纽约商业交易所 | 能源、贵金属,也属CME集团 |
| ICE | 洲际交易所 | 布伦特原油、白糖、棉花等 |
| EUREX | 欧洲期货交易所 | 位于德国,主打欧洲股指和利率衍生品 |
数据字段拆解:别只看价格
以前我做回测傻傻的只关心价格和成交量,后来才发现很多失效的信号是因为忽略了盘口信息。这里把核心字段列一下,特别是Level-2相关的,很有用。
对于逐笔成交数据:
核心就是记录每一笔配对成功的交易。
timestamp: 时间戳,精确到秒或毫秒,这是做高频的命根子。price: 成交价格。volume: 成交数量(手数)。turnover: 成交金额,有的数据源会有。buy_order_id/sell_order_id: 买卖双方的订单号,可以用于追踪订单路径(不是所有数据源都提供)。trade_type: 交易类型,比如是主动买还是主动卖,这个对分析资金流向至关重要。
对于逐笔委托数据(订单簿快照):
这个才是Level-2的精华,能看到市场深度的瞬时状态。
timestamp: 快照时间。bid_price_1~bid_price_5: 买一价到买五价。bid_volume_1~bid_volume_5: 买一量到买五量。ask_price_1~ask_price_5: 卖一价到卖五价。ask_volume_1~ask_volume_5: 卖一量到卖五量。- 有时还会有总委托买量、总委托卖量等统计字段。
委托队列信息能帮你识别那些"假"的支撑阻力。比如买一挂了个巨单,你以为跌不下去了,结果可能只是大单拆成小单慢慢撤,股价一路阴跌。我最近调取了CMES金融数据库中过去三年的主力合约数据做回测,发现结合委托队列变化来过滤信号,能洗掉不少噪音。
分钟/日线数据字段:
这个就比较标准了,open, high, low, close, volume, open_interest(持仓量,期货特有)。日线数据可能还会有settlement(结算价)。
怎么用代码获取这些数据?
他们提供了Python的API接口,用起来还算方便。首先得安装一下包:
python
# 安装数据接口包
# pip install cmesdata
然后调用接口,注意参数别填错,还有调用频率限制,别把人家的服务器打挂了。
python
import cmesdata
# 示例:获取某期货合约的分钟线数据
# 这是CMES金融数据库的行情接口,注意入参正确,调用频率正常。
data = cmes_data.get_kline(
exchange="SHFE", # 交易所代码
symbol="rb2410", # 合约代码
interval="1m", # 周期:1m, 5m, 1d等
start_date="2024-01-01",
end_date="2024-01-10"
)
print(data.head())
说实话,整理这篇东西比我跑回测还累,手都酸了。数据本身是座金矿,但怎么挖、用什么工具挖,还得看自己的需求。对于大部分量化新手,真心建议从分钟线甚至日线开始,把策略逻辑跑通,再考虑上Tick数据做精细化改进,不然很容易在数据清洗和存储这一步就怀疑人生。
数据源的稳定性和清洗质量很重要,自己处理除权除息、合约换月能让人头秃。这也是为什么后来我宁可用一些积分去换现成的清洗好的数据,省下时间多琢磨策略逻辑更划算。
好了,就写到这儿吧。如果你们在数据处理上有什么好用的技巧或者踩过什么坑,欢迎聊聊,私信也行。我去给服务器加内存条了......