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

链接 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_time,end_time,此时以end_time为基准向前取count条;若start_time,end_time缺省,默认取本地数据最新的count条数据;若start_time,end_time,count都缺省时,默认取本地全部数据    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,columns为time_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_time,end_time,此时以end_time为基准向前取count条;若start_time,end_time缺省,默认取本地数据最新的count条数据;若start_time,end_time,count都缺省时,默认取本地全部数据    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,columns为time_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原始的代码的效果,一模一样的

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2982002.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Memecoin再迎爆发:是本轮牛市大反弹的开始吗?

在加密货币市场上,Memecoin再度掀起了一波热潮,引发了人们对于本轮牛市是否即将到来的猜测和期待。近期,诸如BONK、PEPE和POPCAT等Memecoin的价格出现了显著的上涨,涨幅之大令人瞠目。这一现象引发了广泛的讨论,人们开…

(vue)el-select选择框加全选/清空/反选

(vue)el-select选择框加全选/清空/反选 <el-form-item label"批次"><el-selectv-model"formInline.processBatch"multiplecollapse-tagsfilterableplaceholder"请选择"style"width: 250px"no-data-text"请先选择企业、日…

程序员英语之Spring篇

spring.io/quickstart 本期课程讲解Spring官网的快速上手页面 官网地址 https://spring.io/quickstart Spring Quickstart Guide Spring 快速开始指南 Guide 指南 What you’ll build 接下来你将要构建的是什么&#xff1f; build 构建 You will build a classic “H…

科学高效备考AMC8和AMC10竞赛,吃透2000-2024年1850道真题和解析

如何在校内学习之余科学、有效地备考AMC8、AMC10美国数学竞赛&#xff1f;多做真题&#xff0c;吃透真题是科学有效的方法之一&#xff0c;通过做真题&#xff0c;可以帮助孩子找到真实竞赛的感觉&#xff0c;而且更加贴近比赛的内容&#xff0c;可以通过真题查漏补缺&#xff…

AIGC技术的发展现状与未来趋势

AIGC&#xff08;人工智能生成内容&#xff09;技术是近年来快速发展的领域之一&#xff0c;它涉及使用人工智能来创建或编辑内容&#xff0c;包括文本、图像、音乐和视频等。这项技术的进步为各个行业带来了革命性的变化&#xff0c;同时也引发了一系列伦理和风险问题。 一、技…

ACL的知识点和实验

1.ACL的组成 ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则&#xff0c;每条语句中的permit或deny就是与这条规则相对应的处理动作。 2.规则编号 &#xff08;1&#xff09;一个ACL中的每一条规则都有一个相应的编号。 &#xff08;2&#xff09;步长是系…

嵌入式Linux driver开发实操(二十二):写一个ALSA驱动程序

如何编写ALSA(高级Linux声音体系结构)驱动程序?比如PCI声卡。在其他设备类型的情况下,API也可能有所不同。然而,至少ALSA内核API是一致的。对开发者而言需要具备足够的C语言技能和基本的linux内核编程知识。什么时在ALSA上编写PCI声音驱动程序的标准方法? ALSA驱动程序的…

mysql-connector-java和spring-boot-starter-jdbc和mybatis-spring-boot-start

mysql-connector-java和spring-boot-starter-jdbc和mybatis-spring-boot-start JDBC是什么意思&#xff1f; JDBC是使用java语言操作mysql数据库的规范&#xff0c;java语言必须按照这个规范写才可以操作mysql数据库。 mysql-connector-java 在最开始的时候 程序中是不允许…

游泳耳机怎么选?这四款游泳耳机一定要看!综合实力遥遥领先!

如今&#xff0c;在健康生活的风潮推动下&#xff0c;游泳作为一种全身性的有氧运动&#xff0c;不仅深受广大健身爱好者的青睐&#xff0c;更是许多人夏季消暑、塑形和放松心情的首选方式。而随着科技的不断进步&#xff0c;传统的游泳体验也逐渐与现代科技产品相结合&#xf…

2024.04.24记录所解决的问题

一解决了使用VM虚拟机作为dubbo-admin服务器提供者在浏览器访问失败问题 一开始在服务器上面即使运行了zookeeper和dubbo-admin容器都没有访问出dubbo-admin的界面管理器。查看了其他映射端口以及注册中心的地址等等其他参数&#xff0c;都不行&#xff0c;然后就一直没有去处…

JetBrains RubyMine v2024.1 安装教程 (Rails/Ruby集成开发环境)

前言 JetBrains RubyMine是一款杰出而全面的Ruby代码编辑器&#xff0c;能够深入识别动态语言的细节&#xff0c;为用户提供智能编码辅助功能。它能够自动检测错误代码段&#xff0c;并提供智能的编写和修复代码的建议&#xff0c;帮助用户进行代码重构。此外&#xff0c;Ruby…

前端css中filter(滤镜)的使用

前端css中filter的使用 一、前言二、补充内容说明三、模糊&#xff08;一&#xff09;、模糊效果&#xff0c;源码1&#xff08;二&#xff09;、源码1运行效果1.视频演示2.截图演示 四、阴影&#xff08;一&#xff09;、阴影效果&#xff0c;源码2&#xff08;二&#xff09;…

SS26A-ASEMI超低VF值肖特基SS26A

编辑&#xff1a;ll SS26A-ASEMI超低VF值肖特基SS26A 型号&#xff1a;SS26A 品牌&#xff1a;ASEMI 封装&#xff1a;SMA 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;2A 最大循环峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;60V 最大正向电压&a…

社交媒体数据恢复:Facebook

在使用Facebook的过程中&#xff0c;可能会出现数据丢失的情况&#xff0c;如误删了重要的帖子、照片或其他文件。在这种情况下&#xff0c;你可以尝试以下方法来恢复Facebook的数据。 首先&#xff0c;确保你备份了Facebook的数据。如果你定期备份数据&#xff0c;那么恢复起…

探索SmartEDA:电路仿真的教学新境界

在电子工程的教学领域&#xff0c;随着技术的飞速发展&#xff0c;传统的教学方法已经难以满足现代学生的学习需求。近年来&#xff0c;电路仿真软件在教学中的应用逐渐受到关注&#xff0c;而SmartEDA作为一款功能强大的电路仿真软件&#xff0c;为电子工程教学带来了革命性的…

GaussDB数据库SQL系列-聚合函数

背景 在这篇文章中&#xff0c;我们将深入探讨GaussDB数据库中聚合函数的使用和优化。聚合函数是数据库查询中非常重要的工具&#xff0c;它们可以对一组值执行计算并返回单个值。例如&#xff0c;聚合函数可以用来计算平均值、总和、最大值和最小值。 这些功能在数据分析和报…

梦境绘师:揭秘生成对抗网络(GAN)的魔法

梦境绘师&#xff1a;揭秘生成对抗网络&#xff08;GAN&#xff09;的魔法 1 引言 在今日的深度学习领域&#xff0c;生成对抗网络&#xff08;GAN&#xff09;已成为一项无人能外的技术&#xff0c;以其独特的数据生成能力俘获了无数研究者和工程师的心。这项技术不仅在理论上…

JS----前端将列表数据转树型数据

前端将列表数据转树型数据 场景&#xff1a;后端返回列表数据&#xff0c;由前端根据业务需求完成树型数据转换&#xff0c; 常用于侧边导航菜单&#xff0c;下拉树型数据项等 export function listToTree(data: []) {var map: any {},tree: any []data.forEach((item: any…

【缓存服务】⭐️自定义实现一个简易的数据缓存

目录 &#x1f378;前言 &#x1f37b;手写缓存服务 &#xff08;1&#xff09;缓存实体类 &#xff08;2&#xff09;缓存工具类 &#xff08;3&#xff09;测试缓存服务 &#x1f377;已有的缓存工具 &#x1f379;章末 &#x1f378;前言 俗话说 有轮子不用 就是玩 开个…

Qt 菜单栏上手教程:QMenuBar QMenu QToolbar

引言 在Qt框架中&#xff0c;QMenuBar、QMenu、QToolbar和QAction都是用于构建应用程序界面中的用户交互元素。 QMenuBar 是什么&#xff1a;QMenuBar是一个用于创建横向菜单栏的类。在桌面应用程序中&#xff0c;它通常位于窗口的顶部。应用场景&#xff1a;当您需要一个包含…