个人目前写了一些关于qmt关于lv2的策略,目前比较友好且便宜的是zj证券的,每月不足200元的费用.可以直接通过qmt获取到lv2数据.
下面说一下lv2的请求方式和对应的字段.
1.需要在init里面进行订阅,如果产品超过50只 需要使用全部订阅,订阅字段肯定是tick
订阅全推数据 ContextInfo.subscribe_whole_quote()
用法: ContextInfo.subscribe_whole_quote(code_list,callback=None)
释义: 订阅全推数据,全推数据只有分笔周期,每次增量推送数据有变化的品种
参数:
code_list:list([str,str,…])
市场代码列表,如[‘SH’,‘SZ’]
品种代码列表,如 [‘600000.SH’, ‘000001.SZ’]
callback:数据推送回调
**返回:**int,订阅号,可用unsubscribe_quote做反订阅
示例:
ContextInfo.subscribe_whole_quote(['SH', 'SZ'])
订阅行情数据ContextInfo.subscribe_quote()
用法: ContextInfo.subscribe_quote(stock_code,period=‘follow’,dividend_type=‘follow’,result_type=‘’,callback=None)
释义: 订阅行情数据
参数:
stockcode:string,股票代码,‘stkcode.market’,如’600000.SH’
period:string,K线周期类型,‘follow’:当前主图周期,‘tick’:分笔线,‘1d’:日线,‘1m’:分钟线,‘5m’:5分钟线
dividend_type:string,除复权,‘follow’:当前图复权方式,‘none’:不复权,‘front’:向前复权,‘back’:向后复权,‘front_ratio’:等比向前复权,‘back_ratio’:等比向后复权,(分笔周期返回数据均为不复权)
result_type:返回数据格式 可选范围: ‘DataFrame’或’'(默认): 返回{code:data},data为pd.DataFrame数据集,index为字符串格式的时间序列,columns为数据字段 ‘dict’: 返回{code:{k1:v1,k2:v2,…} …},k为数据字段名,v为字段值 ‘list’: 返回{code:{k1:[v1],k2:[v2],…} …},k为数据字段名,v为字段值
callback:指定推送行情的回调函数
注:行情数据字段列表见附录5.5
返回: 订阅号,用于反订阅
示例:
def quote_callback(s):
def callback(data):
print(s,data)
return
return callback
def init(ContextInfo):
ContextInfo.subscribe_quote("600000.SH","tick","none",'',quote_callback('600000.SH'))
第2步:
进行数据获取,对应字段给到大家:
l2quote - Level2行情快照
time - int 时间戳
stime -