多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

从Level2逐笔到十档行情,我扒了这些A股盘口数据

从Level2逐笔到十档行情,我扒了这些A股盘口数据 从Level2逐笔到十档行情我扒了这些A股盘口数据前两天想复盘一下某只票的盘口异动发现普通的分时图根本看不出来那些隐藏的挂单撤单动作。后来干脆直接从源头拿数据用程序把A股Level2的逐笔成交和委托全拉下来了。这里整理一下我能拿到的几个行情层次顺带说下几个容易踩的坑。先放一张字段对比要不然后面容易绕晕行情类型核心内容更新频率大概字段五档实时行情5档买卖挂单最新价3秒一次卖1-5价量买1-5价量成交额成交量等十档tick行情10档挂单深度有变化就推比五档深度翻倍买6-10卖6-10价量还带逐笔成交明细逐笔成交每一笔真正的成交实时推毫秒级成交时间价格成交量买卖方向成交序号逐笔委托每一笔挂单/撤单实时推委托时间价格数量委托类型加/减单分钟实时接口分钟K线动态组装每分钟更新时间戳开/高/低/收成交量这些数据不是两市拍脑袋就给的背后都是交易所专门的Level2行情源。我之前用其它渠道拿逐笔数据时吃过亏某些券商APP里的“逐笔成交”其实是合并推送的一笔500手能拆成两三条对不上盘口。所以后面我就直接找数据结构完整的源比如CMES金融数据库那边的行情接口它把逐笔成交和委托的原始序号都保留下来了这样回测的时候才不会因为数据阉割出偏差。拿逐笔成交来说返回的字段大概长这样成交时间成交价格成交量(股)买入序号卖出序号类型标记类型标记这里有点意思一般用1表示外盘主动买0或2表示内盘主动卖还有撤单标记啥的。我写了个简单脚本把一整天拉出来大概100多万笔结果发现上午9点半到10点这个时段很多单子的类型是“无法判断方向”的因为集合竞价或开盘脉冲时会混着来。这点如果不注意直接算资金流向会失真的。再说十档tick行情大部分人用五档也够了但对于那些打板选手十档能看到更深处的托单和压单。接口返回一般类似这样时间戳最新价均价成交量累计买1价买1量…买10价买10量卖1价卖1量…卖10价卖10量我比较烦的一点是有些数据源在涨停或跌停时十档挂单数据会突然缺失或者返回的卖一量直接变成0这其实是正常现象但如果你代码没做好异常处理就容易崩。CMES的接口倒是把这个特殊情况标得很清楚遇到涨停直接把卖1-10的量置0留了价格位置不变这样对齐起来不用额外判断了。简单放段代码拉五档实时数据就是几分钟的事# 安装pip install cmesdata CMES金融数据库的行情接口注意入参正确调用频率正常fromcmesdataimportCMESClient# 初始化clientCMESClient(api_keyyour_key)# 获取某只票的五档实时行情quoteclient.get_level2_quote(symbol000001.SZ,fieldsask_price1,ask_vol1,bid_price1,bid_vol1,last)print(quote)这个接口如果不加fields参数默认会返回五档甚至十档所有字段流量吃得很快所以自己用的时候最好指定一下需要的字段不然一天下来文件体积爆炸。逐笔委托那个数据我很晚才开始重视复盘某些游资的手法真得看委托流。比如突然在买三位置挂出5000手托单过了30秒没成交又撤了这在成交单上根本反映不出来但在逐笔委托里就赤裸裸的。字段会有委托时间委托价格委托数量委托类型(0撤单,1开仓等)委托序号跑这里的时候有个坑两市的数据格式微调过沪市带的委托序号是变长的深市是定长的解析的时候不能用同一套截取逻辑否则后面全部错位。我就是在跑全市场的时候被这个坑得赔进去一个下午。分钟实时接口就相对简单了主要用来拼日内的分钟K线接口一般会推每一分钟的OHLC外加成交量。做短线的时候这个比复权后的线更干净因为是原始成交堆积的没有除权除息干扰。基本上我能拿到的L2行情就这些层了从五档到逐笔再到分钟线够盘口分析和策略回测用的了。刚开始玩别一上来就拉全市场先拿一只票试试不然数据量把你硬盘撑爆可别怪我。
返回列表