https://quantkt.com/forumDetail?id=201201一般PTrade获取的实时行情是3s快照行情,和QMT类似。
不同于PTrade里的get_history和get_price这两个获取历史数据(用于下载数据)的接口。
PTrade获取实时行情的接口是get_snapshot(security),类似于QMT的get_full_tick函数。
get_snapshot 使用场景
该函数仅在交易模块可用,不在回测中开放
接口说明
该接口用于获取实时行情快照。
参数
security: 单只股票代码或者多只股票代码组成的列表,必填字段(list[str]/str);
返回
正常返回一个dict类型数据,包含每只股票代码的行情快照信息,其中key为股票代码,value为对应的快照信息。异常返回空dict,如{}(dict[str:dict[...]])
快照包含以下信息:
- amount:持仓量(str:int)(期货字段,股票返回0);
- bid_grp:委买档位(第一档包含委托队列(仅L2支持))(str:dict[int:list[float,int,int,{int:int,...}],int:list[float,int,int]...]);
- business_amount:总成交量(str:int);
- business_amount_in:内盘成交量(str:int);
- business_amount_out:外盘成交量(str:int);
- business_balance:总成交额(str:float);
- business_count:成交笔数(str:int)
- circulation_amount:流通股本(str:int);
- current_amount:最近成交量(现手)(str:int);
- down_px:跌停价格(str:float);
- end_trade_date:最后交易日(str:str)
- entrust_diff:委差(str:float);
- entrust_rate:委比(str:float);
- high_px:最高价(str:float);
- hsTimeStamp:时间戳(str:float);
- last_px:最新成交价(str:float);
- low_px:最低价(str:float);
- offer_grp:委卖档位(第一档包含委托队列(仅L2支持))(str:dict[int:list[float,int,int,{int:int,...}],int:list[float,int,int]...]);
- open_px:今开盘价(str:float);
- pb_rate:市净率(str:float);
- pe_rate:动态市盈率(str:float);
- preclose_px:昨收价(str:float);
- prev_settlement:昨结算(str:float)(期货字段,股票返回0.0);
- px_change_rate:涨跌幅(str:float);
- settlement:结算价(str:float)(期货字段,股票返回0.0)
- start_trade_date:首个交易日(str:float)
- tick_size:最小报价单位(str:float)
- total_bid_turnover:委买金额(str:int);
- total_bidqty:委买量(str:int);
- total_offer_turnover:委卖金额(str:int)
- total_offerqty:委卖量(str:int);
- trade_mins:交易分钟数(str:int)
- trade_status:交易状态(str:str);
- turnover_ratio:换手率(str:int);
- up_px:涨停价格(str:float);
- vol_ratio:量比(str:float);
- wavg_px:加权平均价(str:float);
- iopv:基金份额参考净值(str:float);
字段备注:
- bid_grp -- 委买档位,{'bid_grp': {1: [价格, 委托量,委托笔数,委托对列{}], 2: [价格, 委托量,委托笔数], 3: [价格, 委托量,委托笔数], 4: [价格, 委托量,委托笔数], 5: [价格, 委托量,委托笔数]}} ;
- offer_grp -- 委卖档位,{'offer_grp': {1: [价格, 委托量,委托笔数,委托对列{}], 2: [价格, 委托量,委托笔数], 3: [价格, 委托量,委托笔数], 4: [价格, 委托量,委托笔数], 5: [价格, 委托量,委托笔数]}} ;
注意一般我们关注且用的比较多的就是bid_grp和offer_grp字段,这两个字段内部是字典结构
可以通过索引1,2,3,4,5获取买1/卖1,买2/卖2......的价格与委托量,对应了盘口的上下5档
注意的是这里的委托量对应的是真实股数,不是手数(即不用乘100,和QMT的bidVol不一样)
注:QMT获取的stock_info中的bidVol是对应的手数,如果算具体股数需要*100
PTrade使用get_snapshot获取个股盘口信息后扫描遍历
# ========== 买一~买五 ========== log.info("【买一~买五】") bid = stock_data.get('bid_grp', {})for i in range(1, 6):if i in bid: price = bid[i][0] # 只取第1个:价格 volume = bid[i][1] # 只取第2个:量 log.info("买%d: %.3f 量:%d" % (i, price, volume))else: log.info("买%d: 无数据" % i)# ========== 卖一~卖五 ========== log.info("【卖一~卖五】") offer = stock_data.get('offer_grp', {})for i in range(1, 6):if i in offer: price = offer[i][0] volume = offer[i][1] log.info("卖%d: %.3f 量:%d" % (i, price, volume))else: log.info("卖%d: 无数据" % i)
遍历即可打印出get_snapshot的委买/委卖如下
各类代码教程与视频演示放于宽客堂量化平台https://quantkt.com
现阶段渠道开户福利(万0.8,etf万0.5)解锁平台会员,获取量化系统教程与各类量化框架
量化学习交流群和相关教程联系平台管理员quantkt获取