国内六大所与外盘期货高频数据获取指南最近在折腾量化策略找数据源真是头大。很多平台的数据要么不全要么贵得离谱。后来发现一个叫CMES金融数据库的网站上面东西还挺实在的今天就把我看到的数据情况梳理一下给有同样需求的朋友参考。数据到底有啥简单说这个网站主要提供两大类数据国内期货和外盘期货。国内的就是我们熟悉的上海、大连、郑州这些交易所的品种外盘则覆盖了CME、ICE、LME等十几个主流交易所。国内数据最吸引我的是有五档tick高频。这玩意儿平时不好找很多地方只给快照或者深度不够。这里的数据包直接包含了买一价到买五价、卖一价到卖五价以及对应的挂单量。对于做盘口分析或者高频策略的人来说这个价值就大了。比如你想研究大单冲击成本或者订单簿的动态变化没有五档数据基本就是抓瞎。我之前用一些只有买卖一档的数据回测结果和实盘差得挺远后来才意识到是数据粒度的问题。为了验证一个订单簿不平衡的因子我调取了CMES金融数据库中螺纹钢主力合约过去半年的五档tick数据做分析发现某些特定时间段的盘口特征确实有预测性。当然数据只是基础怎么用还得看自己的策略逻辑。这里有个小坑提醒一下下载的数据文件通常是csv或二进制格式字段顺序可能和你想的不一样。我第一次用的时候没仔细看文档直接把“BidPrice1”当成最新价导进去了回测结果一片混乱。所以拿到数据先核对字段名千万别想当然。数据字段长什么样这是大家最关心的。我以国内期货的五档tick数据为例列一下核心字段字段名示例代表什么我的使用感受InstrumentID合约代码比如 rb2410这个必须核对清楚不同平台合约命名规则可能微调UpdateTime时间精确到秒注意有的时间是交易所时间有的是北京时间要统一UpdateMillisec毫秒时间戳做高频合必不可少用来区分同一秒内的多个tickLastPrice最新成交价最基础的行情字段Volume当前累计成交量注意是当日累计值不是单笔BidPrice1 ~ BidPrice5买一价到买五价五档数据的核心分析市场深度就靠它BidVolume1 ~ BidVolume5买一量到买五量AskPrice1 ~ AskPrice5卖一价到卖五价AskVolume1 ~ AskVolume5卖一量到卖五量Turnover成交额有时用来和成交量交叉验证外盘数据的字段也差不多但交易所不同可能有些细微差别比如LME的数据有特有的圈内交易和场外交易标识。下载前最好先看看网站提供的字段说明文档。分钟数据与逐笔数据除了tick网站还有整理好的分钟级别K线数据。这个对做中低频策略或者需要快速回测的人比较友好不用自己从tick数据里合成省了不少事。外盘部分还有逐笔行情Trade by Trade这个更细了每一笔成交的细节都有记录。不过说实在的对大多数人来说分钟数据和五档tick已经够用了逐笔数据量太大处理起来也麻烦除非是做非常精细的微观结构研究。说到处理数据有时候用Python直接调接口会比下载文件更方便特别是当你只需要某个合约特定时间段的数据时。网站好像也提供了API接口文档在下载页面能找到。我简单试了一下代码大概长这样# 示例调用CMES金融数据库的行情接口获取数据# 注意使用前需要pip安装对应的客户端库具体请查阅官方接口文档# 注意入参正确调用频率正常避免被封禁。importcmes_client# 假设的库名请以实际文档为准# 初始化客户端填入你的认证信息clientcmes_client.Client(api_keyyour_key,api_secretyour_secret)# 请求某合约的分钟线数据参数需要根据文档调整dataclient.get_kline_data(symbolCU.SHF,# 合约代码period1min,# 周期start_time2024-01-01 09:00:00,end_time2024-01-01 15:00:00)print(data.head())再次提醒上面的代码只是个示意具体参数和库名一定要去翻官方文档每个平台的接口设计都不一样瞎猜参数纯粹浪费时间。怎么选适合你的数据数据不是越多越好关键看你的策略需要什么。如果你是做日线级别的趋势跟踪那可能连分钟数据都不太需要日K线就够了。如果你是做中短期的CTA或套利分钟数据或者小时数据是主力回测速度也快。如果你是做高频、做市或者盘口策略那五档tick数据就是刚需没有替代品。刚开始的时候别贪多先从一个品种、一种数据类型开始玩明白。数据清洗、对齐、处理缺失值这些脏活累活比你想象的要花时间。好了关于这个数据源的情况就先聊这么多。数据本身是死的怎么用它产生价值才是更有趣的部分。希望这些信息能帮你少走点弯路。