qmt量化教程4----订阅全推数据

文章链接 qmt量化教程4----订阅全推数据 (qq.com)

上次写了订阅单股数据的教程 量化教程3---miniqmt当作第三方库设置,提供源代码

全推就主动推送,当行情有变化就会触发回调函数,推送实时数据,可以理解为数据驱动类型,当数据没有变化不推送数据,函数保持一样的数据,可以全推市场数据比如SH,SZ,期货市场等

1打开qmt,登录选择极简模式

图片

原始的qmt全推送函数代码

图片

# coding:utf-8import timefrom xtquant import xtdatacode='600031.SH'#订阅最新行情def callback_func(data):    print('回调触发')    stock_code=list(data.keys())    df=xtdata.get_full_tick(code_list=stock_code)    print(df)    xtdata.subscribe_quote(stock_code=code,start_time='20240101',end_time='20240525',period='1m')    hist=xtdata.get_market_data(stock_list=[code],start_time='20240101',end_time='20240525',period='1m')    print(hist)xtdata.subscribe_whole_quote(code_list=[code],callback=callback_func)#死循环 阻塞主线程退出xtdata.run()

运行的效果

图片

推送一分钟的数据先订阅

图片

小果框架利用类开发使用非常方便

图片

小果框架订阅全推数据的代码​​​​

# coding:utf-8import timefrom qmt_trader.qmt_data import qmt_datadata=qmt_data()code='600031.SH'#订阅最新行情def callback_func(datas):    print('回调触发')    stock_code=list(datas.keys())    df=data.get_full_tick(code_list=stock_code)    print(df)    data.subscribe_quote(stock_code=code,start_time='20240101',end_time='20240525',period='1m')    hist=data.get_market_data(stock_list=[code],start_time='20240101',end_time='20240525',period='1m')    print(hist)data.subscribe_whole_quote(code_list=[code],callback=callback_func)#死循环 阻塞主线程退出data.run()#函数的具体代码"""def get_full_tick(self,code_list=['600031.SH','600111.SH']):        '''        例子        models=qmt_data()        stock_list=['600031.SH','600111.SH']        df=models.get_full_tick()        print(df)        释义        获取全推数据        参数        code_list - 代码列表,支持传入市场代码或合约代码两种方式        传入市场代码代表订阅全市场,示例:['SH', 'SZ']        传入合约代码代表订阅指定的合约,示例:['600000.SH', '000001.SZ']        返回        dict 数据集 { stock1 : data1, stock2 : data2, ... }        备注        获取除权数据        '''        df=self.xtdata.get_full_tick(code_list=code_list)        return df""""""def get_market_data(self,field_list=[], stock_list=['600031.SH','600111.SH'],                         period='1d', start_time='20210101', end_time='20240419',                        count=-100, dividend_type='none', fill_data=True):        '''        数据需要先订阅        #启动模型        models=qmt_data()        models.subscribe_quote(stock_code='600031.SH')        df=models.get_market_data(field_list=[], stock_list=['600031.SH','600111.SH'],                             period='1d', start_time='20210101', end_time='20240419',                            count=-100, dividend_type='none', fill_data=True)        print(df)        释义        从缓存获取行情数据,是主动获取行情的主要接口        参数        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数据权限        时间范围为闭区间        '''        df=self.xtdata.get_market_data(field_list, stock_list, period,                                        start_time, end_time, count, dividend_type, fill_data)        return df    def get_marke""""""def subscribe_whole_quote(self,code_list=['600031.SH'], callback=None):        '''        models=qmt_data()        func=models.on_data_subscribe_quote        models.subscribe_whole_quote(code_list=['600031.SH','600111.SH'],callback=func)        models.run()        释义        订阅全推行情数据,返回订阅号        数据推送从callback返回,数据类型为分笔数据        参数        code_list - 代码列表,支持传入市场代码或合约代码两种方式        传入市场代码代表订阅全市场,示例:['SH', 'SZ']        传入合约代码代表订阅指定的合约,示例:['600000.SH', '000001.SZ']        callback - 数据推送回调        回调定义形式为on_data(datas),回调参数datas格式为 { stock1 : data1, stock2 : data2, ... }        '''        stats=self.xtdata.subscribe_whole_quote(code_list=code_list,callback=callback)        if stats !=-1:            print('{}订阅成功'.format(code_list))        else:            print('{}订阅失败'.format(code_list))        return stats"""

推送ticck数据

图片

推送一分钟数据

图片

源代码全部上传了知识星球可以直接下载

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql中使用 mysqldump 实现跨机器备份|数据同步

1.如果同步数据库,必须先创建数据库: mysqldump -h 192.168.1.10 --lock-tablesfalse -uroot -proot db_name | mysql -h127.0.0.1 -uroot -proot db_name2.过滤掉不想要的表(没试过,但是试过转为sql文件的) mysqldump -h 192.168.1.10 --…

vs2019 c++ 函数的返回值是对象的值传递时候,将调用对象的移动构造函数

以前倒没有注意过这个问题。但编译器这么处理也符合移动构造的语义。因为本来函数体内的变量也要离开作用域被销毁回收了。测试如下: 谢谢

实现信号发生控制

1. 信号发生器的基本原理 信号发生器是一种能够产生特定波形和频率的电子设备,常用于模拟信号的产生和测试。 信号发生器的基本原理 信号发生器的工作原理基于不同的技术,但最常见的类型包括模拟信号发生器和数字信号发生器(DDS&#xff0…

[SCTF2019]babyre

打开看看还是有花指令 解除后首先pass1是解maze,好像又是三维的 x是25,也就是向下跳五层,注意是立体的 得到 passwd1: ddwwxxssxaxwwaasasyywwdd 接着往下看 有一个加密函数IDA逆向常用宏定义_lodword-CSDN博客 unsigned __int64 __fastca…

primeflex样式库笔记 Display相关的案例

回顾 宽度设置的基本总结 w-full:表示widtdh:100%;占满父容器的宽度。 w-screen:表示占满整个屏幕的宽度。 w-1到w-12,是按百分比划分宽度,数字越大,占据的比例就越大。 w-1rem到w-30rem&…

Oracle的安装以及一些相关问题

系列文章目录 Oracle的安装以及一些相关问题 文章目录 系列文章目录前言一、Oracle的安装二、常用命令三、误删dbf四、PLSQL乱码五、oracle更换数据库字符集总结 前言 一段时间没更新,主要最近一直在找工作,最终还是顺着春招找到工作了,现在…

美信時代監控易:堆疊交換機的監控與配置管理策略

隨著企業數字化轉型的加速,網絡架構的複雜性日益提升,堆疊交換機作為高可靠性、靈活擴展性的解決方案,在網絡基礎設施中扮演著至關重要的角色。然而,如何確保堆疊交換機的穩定運行,實現高效監控與配置管理,…

剖析 OceanBase 应对高并发的技术策略

推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI 在当今互联网时代,高并发场景下的数据库处理能力成为了许多应用的关键需求。为了满足用户对快速响应和高吞吐量的期望,数据库系统需要采用一系列技术来优化并发性…

七大经典排序算法——冒泡排序

文章目录 📑冒泡排序介绍🌤️代码实现🌤️做个简单的优化🌤️复杂度和稳定性分析☁️结语 📑冒泡排序介绍 冒泡排序是一种简单但效率较低的排序算法。它重复地比较相邻的两个元素,如果顺序不对则交换它们&…

C++ socket epoll IO多路复用

IO多路复用通常用于处理单进程高并发,在Linux中,一切皆文件,一个socket连接会对应一个文件描述符,在监听多个文件描述符的状态应用中epoll相对于select和poll效率更高 epoll本质是系统在内核维护了一颗红黑树,监听的文…

Linux中bash脚本怎么表示一个字符串变量

Linux中bash脚本怎么表示一个字符串变量 在Bash脚本中,你可以使用单引号()或双引号(")来表示一个字符串变量。以下是两种方式的示例: 使用单引号(): my_variable…

flink 和 clipper搭配使用

Flink是一个用于流处理和批处理的开源框架,可以实时数据处理和分析。 Clipper 是一个用于机器学习模型服务化的开源框架,能够轻松部署和管理机器学习模型,使模型可以通过统一的接口提供在线推理服务。 flink和clipper搭配使用: …

Leetcode | 5-21| 每日一题

2769. 找出最大的可达成数字 考点: 暴力 数学式子计算 思维 题解 通过式子推导: 第一想法是二分确定区间在区间内进行查找是否符合条件的, 本题最关键的便是 条件确定 , 第二种方法: 一般是通过数学公式推导的,这种题目我称为数学式编程题 代码 条件判断式 class Solution { …

需求分析的任务

1 确定对系统的综合要求 虽然功能需求是对软件系统的一项基本需求,但却并不是唯一的需求。通常对软件系统有下述几方面的综合要求。 1.功能需求 这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。 2.性能…

MacBook 怎么玩Windows游戏 苹果笔记本怎么玩游戏?mac上如何玩windows游戏

传统上,Mac 不被认为是好的游戏机。然而,苹果已经开始在 Mac 上的游戏上投入更多精力,特别是自从转向苹果芯片以来。这使得 Mac 游戏的本机移植数量和模拟 Windows 游戏的能力都得到了显著提高。 方法一:Boot Camp 1、Boot Camp是…

SpirngMVC框架学习笔记(一):SpringMVC基本介绍

1 SpringMVC 特点&概述 SpringMVC 从易用性,效率上 比曾经流行的 Struts2 更好 SpringMVC 是 WEB 层框架,接管了 Web 层组件, 比如控制器, 视图, 视图解析, 返回给用户的数据格式, 同时支持 MVC 的开发模式/开发架构SpringMVC 通过注解,…

Java数据结构和算法(B树)

前言 B树又叫平衡的多路搜索树;平衡的意思是又满足平衡二叉树的一些性质,左树大于右树; 多路意思是,可以多个结点,不再是像二叉树只有两个结点; 实现原理 B树是一种自平衡的搜索树,通常用于实…

MySQL和MongoDB数据库的区别

MySQL和MongoDB数据库的区别 随着大数据和云计算技术的兴起,数据库的选择成为开发者和架构师必须面对的重要决策。MySQL和MongoDB作为关系型数据库和非关系型数据库的代表,在各自领域都有着广泛的应用。本文将从多方面详细比较MySQL和MongoDB&#xff0…

MATLAB:插值函数之interp与griddata

MATLAB 提供了多种插值函数来处理不同维度的数据。其中,interp1、interp2 和 griddata 是常用的插值函数,分别用于一维、二维和多维(不规则)数据的插值。 之前有对interp1进行过详细介绍,如需详细了解,请查…

会声会影调速怎么用 会声会影如何调整音频速度

会声会影是一款功能强大的视频编辑软件,可以帮助我们轻松的实现剪辑。 会声会影的操作简单易懂,界面简洁明快。适合家庭使用, 我们使用会声会影可以在家就能将视频剪辑成好莱坞大片。但是在使用的过程中,仍然会遇到一些操作上的问…