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

news2024/11/26 14:28:25

前言

上篇文章,介绍了如何与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 xtdata

def 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 xtdata

xtdata.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 xtdata

xtdata.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.coloradmin.cn/o/1213495.html

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

相关文章

Solidity案例详解(四)投票智能合约

该合约为原创合约,功能要求如下 在⼀定时间能进⾏投票超过时间投票截⽌,并投赞同票超过50%则为通过。 使⽤safeMath库,使⽤Owner 第三⽅库拥有参与投票权的⽤户在创建合约时确定Voter 结构 要有时间戳、投票是否同意等;struct 结构…

浅尝:iOS的CoreGraphics和Flutter的Canvas

iOS的CoreGraphic 基本就是创建一个自定义的UIView&#xff0c;然后重写drawRect方法&#xff0c;在此方法里使用UIGraphicsGetCurrentContext()来绘制目标图形和样式 #import <UIKit/UIKit.h>interface MyGraphicView : UIView endimplementation MyGraphicView// Onl…

智能AI系统ChatGPT网站源码+支持OpenAI DALL-E3文生图+支持ai绘画(Midjourney)/支持GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

【命令行魔法:掌握Linux基础工具开发的独门技艺】

本节目标 1.Linux 软件包管理器 2.Linux开发工具 3.Linux编译器-gcc/g使用 4.Linux项目自动化构建工具-make/Makefile 5.Linux第一个小程序&#xff0d;进度条 1.Linux 软件包管理器 yum 什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译…

k8s资源管理操作——陈述式管理方式

目录 陈述式资源管理方式 1、常用的kubernetes管理命令 1&#xff09;查看版本信息 2&#xff09;查看资源对象简写 3&#xff09;查看集群信息 4&#xff09;配置kubectl自动补全 5&#xff09;node节点查看日志 2、资源管理命令 1&#xff09;创建资源 2&#xff0…

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

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

Qt控件按钮大全

​ 按钮 在 Qt 里,最常用使用的控件就是按钮了,有了按钮,我们就可以点击,从而响应事件,达到人机交互的效果。不管是嵌入式或者 PC 端,界面交互,少不了按钮。Qt 按钮部件是一种常用的部件之一,Qt 内置了六种按钮部件如下: (1) QPushButton:下压按钮 (2) QToolBu…

使用docker部署ELK日志框架-Elasticsearch

一、ELK知识了解 1-ELK组件 工作原理&#xff1a; &#xff08;1&#xff09;在所有需要收集日志的服务器上部署Logstash&#xff1b;或者先将日志进行集中化管理在日志服务器上&#xff0c;在日志服务器上部署 Logstash。 &#xff08;2&#xff09;Logstash 收集日志&#…

JJJ:python学习笔记

p4 没有编译的过程 源码和输入得到输出 静态语言&#xff1a;编译型 脚本语言&#xff1a;解释型 p5 又叫做胶水语言 p7 p8 p10

蓝眼开源云盘部署全过程(手动安装)

环境概述&#xff1a; 系统-Centos7.4 数据库-MySQL8 云盘系统-Tank4.0.1 前提&#xff1a;操作系统已完成安装&#xff0c;有外部网络。 一.安装数据库 cd到合适的目录进行下载安装操作&#xff0c;期间不要切换出去。 wget https://dev.mysql.com/get/mysql80-community-r…

Synchronized面试题

一&#xff1a;轻量锁和偏向锁的区别&#xff1a; &#xff08;1&#xff09;争夺轻量锁失败时&#xff0c;自旋尝试抢占锁 &#xff08;2&#xff09;轻量级锁每次退出同步块都需要释放锁&#xff0c;而偏向锁是在竞争发生时才释放锁&#xff0c;线程不会主动释放偏向锁 二&…

STM32 LL库 TIM3定时器多通道捕获输入采集

为什么不用HAL库&#xff0c;使用HAL库捕获输入一个通道还尚可&#xff0c;多通道捕获由于HAL的回调函数不符合我的要求&#xff0c;干脆直接切换到LL库。网上找了许多&#xff0c;代码处理写的不符合我的要求&#xff0c;这里记录一下我的调试过程。 TIM2输出1路PWM信号&#…

电磁场与电磁波part1--矢量分析

目录 1、方向导数 2、散度定理&#xff08;高斯定理&#xff09; 3、散度与旋度的比较 4、旋度定理&#xff08;斯托克斯定理&#xff09; 5、关于点乘、叉乘、梯度、散度、旋度的计算 ~~~~~~~~~~~~~~~~~~~~~~~~ 确认过眼神&#xff0c;是我看不懂的 ~~~~~~~~~~~~~~~~…

FPGA时序分析与约束(13)——I/O接口约束

一、概述 在应用了时钟约束后&#xff0c;所有寄存器到寄存器的路径都能定时。为了获得更加精准的FPGA外部时序信息&#xff0c;设计者需要为FPGA的I/O接口指定时序信息&#xff0c;一般时序工具只能获取FPGA器件内部的时序信息&#xff0c;对于FPGA器件引脚之外的时序信息&…

【C++】-- 红黑树详解

目录 一、红黑树概念 1.概念 2.性质 二、红黑树定义 1.红黑树节点定义 &#xff08;1&#xff09;将新插入节点置为红色 &#xff08;2&#xff09;将新插入节点置为黑色 2.红黑树定义 三、红黑树插入 1.插入节点 2.控制颜色 &#xff08;1&#xff09;父亲为黑色 &#xff0…

如何使用 Github Action 管理 Issue

本文作者为 360 奇舞团前端开发工程师 Daryl 前言 很多小伙伴打开 github 上的仓库都只使用Code查看代码&#xff0c;或者只是把 github 当成一个代码仓库&#xff0c;但是 github 还提供了很多好用的功能。 其中&#xff0c;GitHub Action就是一个很好用的功能&#xff0c;本文…

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

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

自动驾驶汽车:人工智能最具挑战性的任务

据说&#xff0c;自动驾驶汽车是汽车行业梦寐以求的状态&#xff0c;将彻底改变交通运输业。就在几年前&#xff0c;对自动驾驶汽车的炒作风靡一时&#xff0c;那么到底发生了什么呢&#xff1f;这么多公司吹嘘到2021年我们将迎来的无人驾驶汽车革命在何处&#xff1f;事实证明…

LeetCode(18)整数转罗马数字【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 12. 整数转罗马数字 1.题目 罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X …

javaweb---maventomcat使用教程

文章目录 今日内容0 复习昨日1 Maven1.0 引言1.1 介绍1.2 下载1.3 安装1.3.1 解压1.3.2 配置环境变量1.3.3 测试 1.4 仓库1.5 Maven配置1.5.1 修改仓库位置1.5.2 设置镜像 2 IDEA - MAVEN2.1 idea关联maven2.2 创建java项目2.3 java项目结构2.4 pom2.5 导入依赖2.5.1 查找依赖2…