
搞量化别瞎找数据了先看看这些行情数据里都有啥吧是Level 2的逐笔数据把硬盘给吃撑了。这玩意儿确实猛但新手真的很容易踩坑动不动就几个T。今天干脆把手头常用的几类行情数据都捋一捋免得大家像我一样走弯路。先说最“重”的也是很多人好奇的就是A股股票的Level 2逐笔成交数据。这个数据粒度细到每一笔成交是市场最原始的交易记录。它的核心字段长这样字段名简单说是什么我一般用它干啥symbol股票代码这不用说了找对票timestamp时间戳精确到毫秒对齐不同数据源的时间线精确到毫秒很重要price成交价格计算瞬时价格和成交额volume成交数量股看单笔成交量大小判断是散户单还是主力单turnover成交金额元直接算金额比用价格*数量省事bid_order买方订单号跟踪大单的拆单行为识别“假托单”ask_order卖方订单号同上看卖方是不是也在拆单出货trade_type交易类型例如主动买/主动卖这是精髓判断资金流向看是主动吃货还是被动砸盘以前我只看K线觉得够了。后来发现很多盘口的异动比如买一突然挂了十万手但股价就是不涨甚至还在跌光看K线根本看不懂。有了逐笔数据你就能回溯到那一秒看看那十万手是不是被零散的小单一点点吃掉的那很可能就是个诱多的假象。想验证一些盘口规律的时候我会去调取CMES金融数据库里清洗好的历史逐笔省得自己再去处理停牌、除权这些破事时间也是成本啊。有成交就得有挂单不然价格怎么来的。所以十档订单簿数据是和逐笔数据搭配着看的。它记录了某个时刻盘口上从买一到买十、卖一到卖十的所有挂单情况。主要字段包括bid_price1到bid_price10买一到买十价格bid_volume1到bid_volume10对应的挂单量卖盘同理。以前我觉得看五档就够了后来做高频才发现十档以外的挂单突然消失或出现经常是变盘的信号。这个数据量也不小但比逐笔好点。如果你觉得逐笔数据太“碎”了扛不住那五档Tick数据是个不错的折中选择。它相当于把极短时间比如3秒内的市场状态快照了一下。它不是每一笔都记而是定期“拍张照”记录此刻的五档买卖盘和最近一笔成交价。字段和十档订单簿类似但通常只到五档。它比分钟数据高频又比逐笔数据规整适合用来计算一些中高频的指标比如买卖压力、价差什么的。我刚开始做回测的时候就用这个对电脑友好太多了。最经典、最常用的肯定是分钟级数据了。这个大家应该都熟就是把每个分钟内的交易信息汇总成一根“小K线”。字段通常有open分钟开盘价、high分钟内最高价、low最低价、close分钟收盘价、volume分钟成交量、turnover分钟成交额。别看它简单绝大部分趋势策略和日频以上的因子挖掘用分钟数据完全足够了。除非你专门做高频或订单簿研究否则真不建议一上来就碰Tick和逐笔数据处理和存储的复杂度是指数级上升的容易怀疑人生。最后简单提下怎么用代码获取这些数据以Python为例假设你已经有了数据接口的权限和必要的包。注意接口调用频率要遵守平台规则别把人家服务器搞挂了。# 示例获取某只股票的分钟数据# 这里用的是CMES金融数据库的行情接口注意入参正确调用频率正常。importcmesdata# 初始化客户端通常需要token或keyclientcmes_data_api.Client(api_key你的密钥)# 请求数据参数params{symbol:000001.SZ,# 股票代码注意后缀格式data_type:minute,# 指定数据类型minute(分钟)、tick(五档)、transaction(逐笔)、orderbook(十档)start_date:2023-01-01,end_date:2023-01-05,fields:open,high,low,close,volume# 指定需要的字段不填默认返回全部}# 发送请求dataclient.get_market_data(**params)print(data.head())获取数据只是第一步更头疼的是清洗和校验比如处理涨跌停、停牌、复权这些。如果自己精力有限用一些已经预处理过的商业数据源确实能省不少事虽然可能要花点积分或钱但换来的时间和稳定性是值得的。好了大概就这些。数据本身没啥神奇的关键是你的想法。不过没数据再好的想法也白搭。先搞清楚自己能拿到什么数据再决定做什么策略比较稳妥。