【miniQMT实盘量化3】获取历史行情数据

前言

上篇文章,介绍了如何与miniQMT建立连接,这篇开始,我们会深入探讨miniQMT的每个功能接口。首先,从获取历史数据开始。

迅投的官方文档目前已经更新,miniQMT对应原生API部分

接口汇总

与历史行情数据相关的接口,且文档上写的,有以下几个:

xtdata.download_history_data()
xtdata.download_history_data2()
xtdata.get_market_data()
xtdata.get_local_data()

下面就逐一阐述每个接口。

下载数据

在miniqmt的逻辑里,使用历史数据,需要先下载历史数据,所以,我们先介绍两个下载历史数据的接口。

download_history_data

这是单股数据下载接口,具体使用如下

xtdata.download_history_data(stock_code='002358.SZ', period='1d', start_time='20230101', end_time='20231115')

此接口有四个参数:

  • stock_code:就是股票的代码,取值为股票代码.交易所代号
  • period:代表周期,这个参数比较重要,很多接口都有这个参数,其取值如下图。这里需要注意,不同的周期对应不同的数据,比如,若执行下载period='1d'的某股票数据,不代表拥有其他周期的数据,假若想使用tick级别数据,需要再次执行下载。
    在这里插入图片描述
  • start_time:可以缺省,不传默认就是从数据起始日期开始下载。
  • end_time:可以缺省,不传默认就以当下最新时间为截止时间。关于这两个参数,需要注意的是,如果下载tick周期的数据,不写起止日期会下载大量数据,可能会造成长期等待或者程序卡死,所以建议根据自己的需要进行设置。

该接口没有返回值,不报错即下载成功。

download_history_data2

该接口与上面的接口功能类似,只是参数从stock_code变为了stock_list,可以批量传多个股票代码,并增加了一个回调函数,适用于批量下载数据场景。

from xtquant import xtdatadef on_progress(data):print(data)xtdata.download_history_data2(stock_list=['600309.SH', '600989.SH', '002714.SZ'], period='tick', start_time='20231111', end_time='20231115', callback=on_progress)

运行结果如下,可以用回调来监听进度

在这里插入图片描述

获取数据

关于数据获取,主要有两个方法:get_market_dataget_local_data,这两个方法的入参基本相同,只是返回的结果格式不同,我个人更建议使用get_local_data这个方法,因为他的结果数据是pd.DataFrame

get_market_data

from xtquant import xtdataxtdata.download_history_data2(stock_list=['600309.SH', '600989.SH', '002714.SZ'], period='1d', start_time='20231111', end_time='20231115')res = xtdata.get_market_data(stock_list=['600309.SH', '600989.SH', '002714.SZ'], period='1d', start_time='20231111', end_time='20231115')res

在这里插入图片描述

例子中的参数,跟下载接口是一样的,但这个接口有几个缺省参数,没有特殊需要可以不传,下面逐一说明。

  • field_list:这个参数是个数组,可以传要查询的字段,比如:field_list=['close'],那就是只返回收盘价的数据。
  • count: 缺省值是-1,如果设为正数,结果只返回count条数据。
  • dividend_type:获取复权数据,取值有"front" "back" "front_ratio" "back_ratio"
  • fill_data:缺省值为True,自定补全缺失数据,比如哪天停盘了之类的,这个参数我觉得不用改,就一直为True就可以了。

这个接口返回的数据格式,我感觉比较奇葩,处理起来比较麻烦。

get_local_data

这个接口的参数用法,与get_market_data一致,我们直接看例子:

from xtquant import xtdataxtdata.download_history_data2(stock_list=['600309.SH', '600989.SH', '002714.SZ'], period='1d', start_time='20231111', end_time='20231115')res = xtdata.get_local_data(stock_list=['600309.SH', '600989.SH', '002714.SZ'], period='1d', start_time='20231111', end_time='20231115')res['600309.SH']

在这里插入图片描述
可以看到,返回结果就是以股票代码为键值的字典,每个键值对应的值,是一个数据表,这样,拿到的数据就非常好处理,也便于查看。

总结

本篇文章介绍了如何通过miniQMT,下载、获取历史行情数据。当我们拿到历史数据之后,就可以进行量化分析、回测等一系列操作。

根据我的观察,miniQMT获取的数据质量和速度,还是要比网上的一些开源库强很多,更适合深入、稳定的使用。

miniQMT具体开通方法及要求,可以参看《QMT开通规则分享》

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

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

相关文章

EfficientNet:通过模型效率彻底改变深度学习

一、介绍 EfficientNet 是深度学习领域的里程碑,代表了神经网络架构方法的范式转变。EfficientNet 由 Google Research 的 Mingxing Tan 和 Quoc V. Le 开发,在不影响性能的情况下满足了对计算高效模型不断增长的需求。本文深入探讨了 EfficientNet 背后…

SystemVerilog学习 (6)——验证平台

一、概述 测试平台(Testbench)是整个验证系统的总称。它包含了验证系统的各个组件、组件之间的互联关系,测试平台的配置与控制等, 从更系统的意义来讲,它还包括编译仿真的流程、结果分析报告和覆盖率检查等。 从狭义上…

微信小程序渲染的富文本里面除了img标签外什么都没有,该如何设置img的大小

微信小程序富文本渲染&#xff1a; <rich-text nodes"{{content}}"style"{{style}}" ></rich-text> content是接口得到的值 let cont object.contentlet a cont.replace(/<img/gi,<img style"max-width:94%;height:auto;margi…

S-Clustr(影子集群) 重磅更新!黑入工业PLC设备!

公告 项目地址:https://github.com/MartinxMax/S-Clustr 更新预告内容进度SIEMENS S7-200 SMART远程控制进行中 开发人员Blog联系方式提交时间提交内容授权情况ASH_HHhttps://blog.csdn.net/m0_53711047/article/details/133691537?spm1001.2014.3001.5502匿名2023-10-16 2…

【Java】详解多线程同步的三种方式

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;等风来&#xff0c;不如追风去 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录 一.&#x1f510;线…

总结1057

考研倒计38天 极限冲刺day1 今日共计学习13h33m&#xff0c;为了能走出备考的低谷阶段&#xff0c;来一场与自我的较量。在尽可能保证效率的情况下&#xff0c;玩命干。考研这件事&#xff0c;从来不是因为看到了希望才去努力&#xff0c;而是玩命努力后才看到希望。

重生之我是一名程序员 31

大家晚上好&#xff01;前面给大家分享了指针与数组的知识&#xff0c;所以今天要给大家分享的知识是——指针数组 相信大家在这里都会有疑问&#xff0c;指针数组是指针还是数组&#xff1f; 在这我们可以类⽐⼀下其他类型的数组&#xff0c;比如整型数组是存放整型的数组&am…

Postman的Cookie鉴权

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一&#xff09;什么是Cookie 定义&#xff1a;存储在客户端的一小段文本信息&#xff0c;格式为键值对的形式. 二&#xff09…

单片机实验(一)

前言 实验一&#xff1a;用单片机控制多只数码管(屏)分别左、右滚动显示自己完整的学号&#xff1b; 实验二&#xff1a;用单片机控制LED1616点阵交替正序、逆序显示自己的中文姓名。 参考链接&#xff1a; LED数码管的静态显示与动态显示&#xff08;KeilProteus&#xff0…

【C语言 | 数组】C语言数组详解(经典,超详细)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

【LeetCode:307. 区域和检索 - 数组可修改 | 树状数组 or 线段树】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

保姆级教程之SABO-VMD-CNN-SVM的分类诊断,特征可视化

今天出一期基于SABO-VMD-CNN-SVM的分类诊断。 依旧是采用经典的西储大学轴承数据。基本流程如下&#xff1a; 首先是以最小包络熵为适应度函数&#xff0c;采用SABO优化VMD的两个参数。其次对每种状态的数据进行特征向量的求取&#xff0c;并为每组数据打上标签。然后将数据送入…