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

news2024/10/6 22:29:07

链接 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://www.coloradmin.cn/o/1620466.html

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

相关文章

项目总结计划-(Word)

项目总结计划书-Word 2 项目工作成果 2.1 交付给用户的产品 2.2 交付给研发中心的产品 2.2.1 代码部分 2.2.2 文档部分 2.3 需求完成情况与功能及性能符合性统计 2.3.1 需求完成情况统计 2.3.2 功能符合性分析 2.3.3 性能符合性分析 3 项目工作分析 3.1 项目计划与进度实施分…

消息队列一文全解!!!

消息队列的用途是什么? 第一章 消息队列的用途是什么? 第二章 消息重复消费如何避免? 第三章 消息的顺序性可靠性如何保证? 第四章 高可用的消息队列如何搭建? 第五章 消息队列面试题汇总 文章目录 消息队列的用途是什…

Vue页面生成导出PDF文件

第一种&#xff1a; 使用浏览器自带打印方法window.print(); 也可使用print-js插件&#xff08;原理相同&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>printDemo</title> </…

安防监控/智能分析EasyCVR视频汇聚平台海康/大华/宇视摄像头国标语音GB28181语音对讲配置流程

一、背景分析 近年来&#xff0c;国内视频监控应用发展迅猛&#xff0c;系统接入规模不断扩大&#xff0c;涌现了大量平台提供商&#xff0c;平台提供商的接入协议各不相同&#xff0c;终端制造商需要给每款终端维护提供各种不同平台的软件版本&#xff0c;造成了极大的资源浪…

测试工程师面试准备(软硬件)

您好&#xff0c;我叫XXX。学历XX&#xff0c;XXX专业毕业。X年X月份毕业&#xff0c;但是去年二月份已经找到工作开始实习了&#xff0c;目前工作一年了&#xff0c;这一年的过程中我主要负责软件的开发和测试和软硬件联调测试工作。具体来说就是&#xff0c;在软件开发完成后…

制造业小企业内部小程序简单设计

也没什么需求&#xff0c;就是看企业内部外来单位就餐还需要打印客饭单拿去食堂给打饭师傅&#xff0c;出门单还需要打印纸质版&#xff0c;车间PDA扫码出问题需要人手动处理&#xff0c;会议室需要OA申请&#xff0c;但是申请前不知道哪些会议室事空的(因为不是每个人都下载OA…

neovim0.9版本安装

一 安装 Installing Neovim neovim/neovim Wiki (github.com)https://github.com/neovim/neovim/wiki/Installing-Neovim/921fe8c40c34dd1f3fb35d5b48c484db1b8ae94b 1 下载 curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage chmod ux n…

【黑马点评Redis——003优惠券秒杀4——消息队列Stream】

1. 目前还存在的问题 设置的阻塞队列可能会超出最大长度系统重启会导致阻塞队列中的信息消失&#xff0c;可能会出现问题 2. 消息队列 消息队列 (Message Queue)。 字面意思就是存放消息的队列。最简单的消息队列模型包括3个角色消息队列:存储和管理消息&#xff0c;也被称为…

网页自动跳转到其他页面,点击浏览器返回箭头,回不到原来页面的问题

背景&#xff1a;今天产品提个需求&#xff0c;需要从index页面自动触发跳转到下一页面的事件&#xff0c;从而不做任何操作&#xff0c;直接跳转到test页面。 代码是这样的&#xff1a; index.vue: <template><div style"width:500px;height:600px;background-…

20 Debian如何配置DNS服务(2)主从服务器

作者&#xff1a;网络傅老师 特别提示&#xff1a;未经作者允许&#xff0c;不得转载任何内容。违者必究&#xff01; Debian如何配置DNS服务&#xff08;2&#xff09;主从服务器 《傅老师Debian小知识库系列之20》——原创 前言 傅老师Debian小知识库特点&#xff1a; 1、…

纸箱码垛机:从传统到智能,科技如何助力产业升级

随着科技的飞速发展&#xff0c;传统工业领域正经历着一场重要的变革。作为物流行业重要一环的纸箱码垛机&#xff0c;其从传统到智能的转型升级&#xff0c;不仅提高了生产效率&#xff0c;还大幅降低了人工成本&#xff0c;为产业升级提供了强大助力。星派将探讨纸箱码垛机的…

【一些神金】怎么缓解工作压力?使用VS-code彩虹屁插件

怎么缓解工作压力&#xff1f; 其实吃点好的&#xff0c;多睡一会儿&#xff0c;再锻炼锻炼身体就好。 但我只是想炫耀一下这个彩虹屁插件。 原版插件&#xff1a;VS-code-Rainbowfart 我的版本&#xff1a;RainbowFart-Oberon 基于 MIT 开源&#xff0c;包括所有设计资源及音…

大数据信用风险竟然是这样形成的!查询方法也很简单

在大数据时代背景下&#xff0c;大数据信用风险成为了众多机构关注的焦点。这类风险涵盖了多头借贷、履约行为、联系人以及司法等多个方面。本文将深入解析大数据信用风险的形成原因及其查询方法&#xff0c;让我们一起来探索一下。 大数据信用风险主要表现在以下几个方面&…

硬盘删除的文件怎么恢复?这4个方法可以恢复误删文件

在数字时代&#xff0c;硬盘作为我们存储信息的主要工具&#xff0c;承载着大量的重要数据。然而&#xff0c;有时我们可能会因为误操作或病毒攻击等原因&#xff0c;不小心删除了硬盘中的文件。这时&#xff0c;如何有效地恢复这些文件就显得尤为重要。今天给大家分享三种恢复…

币圈是什么意思?币圈开发

币圈是一个涵盖了区块链、加密货币及其应用的独特领域&#xff0c;它的兴起与发展已经彻底改变了我们对金融、科技和未来的认知。 一、什么是币圈&#xff1f; 币圈可以被理解为围绕虚拟货币展开的一系列活动和产业的总称。它包括区块链技术的研发、数字货币的创造、交易、投资…

图形界面挂了?教你如何纯命令行下快速安装CentOS 7

在某些特定的系统或软件环境下&#xff0c;如使用 Parallels Desktop 18&#xff08;PD18&#xff09;虚拟化软件安装较老版本的操作系统&#xff08;如 CentOS 7&#xff09;&#xff0c;可能会遇到只能通过命令行进行安装的情况。这通常是由于内核版本与图形安装器的兼容性问…

JavaScript 进阶 (三)之构造函数/原型对象/对象原型/原型继承/原型链

JavaScript 进阶 &#xff08;三&#xff09;之构造函数/原型对象/对象原型/原型继承/原型链 编程思想面向过程面向对象 构造函数原型对象constructor 属性对象原型原型继承原型链 了解构造函数原型对象的语法特征&#xff0c;掌握 JavaScript 中面向对象编程的实现方式&#x…

【书生浦语第二期实战营学习笔记作业(四)】

课程文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.md 作业文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/xtuner/homework.md 书生浦语第二期实战营学习笔记&作业(四) 1.1、微调理论讲解及 XTuner 介绍 两种Fin…

C语言实现简单CRC校验

目录 一、实现题目 二、send模块 三、receive模块 四、运行截图 一、实现题目 二、send模块 #include <stdio.h> #include <string.h>// 执行模2除法&#xff0c;并计算出余数&#xff08;CRC校验码&#xff09; //dividend被除, divisor除数 void divide…

maya blendshape

目录 shape编辑器 maya创建blendshape python 脚本 添加形变动画 查看顶点个数 shape编辑器 打开方式&#xff1a; 窗口-动画编辑器-形变编辑器 maya创建blendshape python 脚本 import maya.cmds as cmds# 创建基础网格 - 球体 baseMesh cmds.polySphere(name"bas…