当前位置:   article > 正文

qmt教程2----订阅单股行情,提供源代码_qmt交易代码

qmt交易代码

链接 qmt教程2----订阅单股行情,提供源代码 (qq.com)

qmt教程1---qmt安装,提供下载链接

今天我重新封装了全部qmt的内容,包括数据,交易

图片

qmt交易

图片

我本来打算全部上次git的,但是考虑到毕竟是实盘的内容,就放弃了

图片

今天外卖学习怎么样订阅单独行情,订阅模式有数据变化qmt会自动推送过来,登录qmt就可以,现在模拟盘登录不了,我用我实盘给大家展示

图片

利用我的封装的类调用的数据,类强大

图片

源代码

#小果封装的交易框架from qmt_trader.qmt_data import qmt_datafrom qmt_trader.qmt_trader import qmt_traderdata=qmt_data()#订阅数据stock_list=['600031.SH','600111.SH']'''        models=qmt_data()        func=models.on_data_subscribe_quote        models.subscribe_quote(stock_code='600031.SH',callback=func)        models.run()        释义        订阅单股的行情数据,返回订阅号        数据推送从callback返回,数据类型和period指定的周期对应        数据范围代表请求的历史部分的数据范围,数据返回后会进入缓存,用于保证数据连续,通常情况仅订阅数据时传count = 0即可        参数        stock_code - string 合约代码        period - string 周期        start_time - string 起始时间        end_time - string 结束时间        count - int 数据个数        callback - 数据推送回调        回调定义形式为on_data(datas),回调参数datas格式为 { stock_code : [data1, data2, ...] }'''def callback(datas):    '''    回调函数    '''    print(datas,'22222222222222222')    code_list = list(datas.keys())    # 获取到本次触发的标的代码    kline_in_callabck = data.get_market_data([],code_list,period = '1m')    # 在回调中获取klines数据    print(kline_in_callabck)for stock  in stock_list:    data.subscribe_quote(stock_code=stock, period='1m',                     start_time='20210101', end_time='20240101', count=100, callback=callable)data.run()

运行的效果

图片

利用qmt原来的源代码调用方式,没有做任何改变

图片

源代码​​​​​​​

from xtquant import xtdataimport time# 设定一个标的列表code_list = ["600031.SH",'600111.SH']# 设定获取数据的周期period = "1m"def f(data):    '''    释义    从缓存获取行情数据,是主动获取行情的主要接口    参数    field_list - list 数据字段列表,传空则为全部字段    stock_list - list 合约代码列表    period - string 周期    start_time - string 起始时间    end_time - string 结束时间    count - int 数据个数    默认参数,大于等于0时,若指定了start_timeend_time,此时以end_time为基准向前取count条;若start_timeend_time缺省,默认取本地数据最新的count条数据;若start_timeend_timecount都缺省时,默认取本地全部数据    dividend_type - string 除权方式    fill_data - bool 是否向后填充空缺数据    返回    period为1m 5m 1d等K线周期时    返回dict { field1 : value1, field2 : value2, ... }    field1, field2, ... :数据字段    value1, value2, ... :pd.DataFrame 数据集,index为stock_list,columnstime_list    各字段对应的DataFrame维度相同、索引相同    period为tick分笔周期时    返回dict { stock1 : value1, stock2 : value2, ... }    stock1, stock2, ... :合约代码    value1, value2, ... :np.ndarray 数据集,按数据时间戳time增序排列    备注    获取lv2数据时需要数据终端有lv2数据权限    时间范围为闭区间    '''    print(data)    code_list = list(data.keys())    # 获取到本次触发的标的代码    kline_in_callabck = xtdata.get_market_data_ex([],code_list,period = '1m')    # 在回调中获取klines数据    print(kline_in_callabck)for i in code_list:    '''    订阅股票行情数据    :param stock_code: 股票代码 e.g. "000001.SZ"    :param start_time: 开始时间,格式YYYYMMDD/YYYYMMDDhhmmss/YYYYMMDDhhmmss.milli,e.g."20200427" "20200427093000" "20200427093000.000"        若取某日全量历史数据,时间需要具体到秒,e.g."20200427093000"    :param end_time: 结束时间 同“开始时间”    :param count: 数量 -1全部/n: 从结束时间向前数n个    :param period: 周期 分笔"tick" 分钟线"1m"/"5m" 日线"1d"    :param callback:        订阅回调函数onSubscribe(datas)        :param datas: {stock : [data1, data2, ...]} 数据字典    :return: int 订阅序号    '''    xtdata.subscribe_quote(i,period=period,count=-1,callback=f) # 订阅时设定回调函数# 使用回调时,必须要同时使用xtdata.run()来阻塞程序,否则程序运行到最后一行就直接结束退出了。xtdata.run()

运行的效果,自动推送实时数据

图片

利用小果框架调用原生的qmt源代码获取获取数据的代码,很简答

图片

源代码​​​​​​​

from qmt_trader.xtquant import xtdataimport time# 设定一个标的列表code_list = ["600031.SH",'600111.SH']# 设定获取数据的周期period = "1m"def f(data):    '''    释义    从缓存获取行情数据,是主动获取行情的主要接口    参数    field_list - list 数据字段列表,传空则为全部字段    stock_list - list 合约代码列表    period - string 周期    start_time - string 起始时间    end_time - string 结束时间    count - int 数据个数    默认参数,大于等于0时,若指定了start_timeend_time,此时以end_time为基准向前取count条;若start_timeend_time缺省,默认取本地数据最新的count条数据;若start_timeend_timecount都缺省时,默认取本地全部数据    dividend_type - string 除权方式    fill_data - bool 是否向后填充空缺数据    返回    period为1m 5m 1d等K线周期时    返回dict { field1 : value1, field2 : value2, ... }    field1, field2, ... :数据字段    value1, value2, ... :pd.DataFrame 数据集,index为stock_list,columnstime_list    各字段对应的DataFrame维度相同、索引相同    period为tick分笔周期时    返回dict { stock1 : value1, stock2 : value2, ... }    stock1, stock2, ... :合约代码    value1, value2, ... :np.ndarray 数据集,按数据时间戳time增序排列    备注    获取lv2数据时需要数据终端有lv2数据权限    时间范围为闭区间    '''    print(data)    code_list = list(data.keys())    # 获取到本次触发的标的代码    kline_in_callabck = xtdata.get_market_data_ex([],code_list,period = '1m')    # 在回调中获取klines数据    print(kline_in_callabck)for i in code_list:    '''    订阅股票行情数据    :param stock_code: 股票代码 e.g. "000001.SZ"    :param start_time: 开始时间,格式YYYYMMDD/YYYYMMDDhhmmss/YYYYMMDDhhmmss.milli,e.g."20200427" "20200427093000" "20200427093000.000"        若取某日全量历史数据,时间需要具体到秒,e.g."20200427093000"    :param end_time: 结束时间 同“开始时间”    :param count: 数量 -1全部/n: 从结束时间向前数n个    :param period: 周期 分笔"tick" 分钟线"1m"/"5m" 日线"1d"    :param callback:        订阅回调函数onSubscribe(datas)        :param datas: {stock : [data1, data2, ...]} 数据字典    :return: int 订阅序号    '''    xtdata.subscribe_quote(i,period=period,count=-1,callback=f) # 订阅时设定回调函数# 使用回调时,必须要同时使用xtdata.run()来阻塞程序,否则程序运行到最后一行就直接结束退出了。xtdata.run()

小果框架调用qmt原始的代码的效果,一模一样的

图片

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/644377
推荐阅读
相关标签
  

闽ICP备14008679号