【QMT之xtquant】活用xtdata,激活download_history_data2批量高效获取行情数据

2023-05-16

文章目录

  • 前言
  • 一、XtQuant是什么?
  • 二、如何活动XtQuant?
    • 1.引入库
    • 2.批量下载数据
  • 总结


前言

QMT包含了XtQuant,可以方便的获取行情数据,最近碰到一些小问题,自己也琢磨了下,顺便分享出来。


提示:以下是本篇文章正文内容,下面案例可供参考

一、XtQuant是什么?

XtQuant能提供哪些服务
XtQuant是基于迅投MiniQMT衍生出来的一套完善的Python策略运行框架,对外以Python库的形式提供策略交易所需要的行情和交易相关的API接口。

XtQuant运行依赖环境
XtQuant目前提供的库包括64位Python3.6----3.11版本,不同版本的python导入时会自动切换。 在运行使用XtQuant的程序前需要先启动MiniQMT客户端。

二、如何活动XtQuant?

1.引入库

方法1. XtQuant 默认安装在QMT安装目录下bin.x64\Lib\site-packages,如笔者安装在c:\gszqqmt\,则
将如下语句插入需要引用XtQuant的python文件里,就可以随意调用了:

sys.path.append(r'c:\gszqqmt\bin.x64\Lib\site-packages')

方法2. 将bin.x64\Lib\site-packages\xtquant目录复制到python安装环境Lib\site-packages\目录下,即可直接使用本地Python环境直接调用XtQuant。缺点是每次QMT更新XtQuant,需要手动再复制一次。

2.批量下载数据

2.1 找到xtquant目录下xtdata.py中__all__,在末尾增加如下一行:

    , 'download_history_data2'

即可通过调用download_history_data2批量下载数据,具体步骤如下。修改后的结果如下:

__all__ = [
    'subscribe_quote'
    , 'subscribe_whole_quote'
    , 'unsubscribe_quote'
    , 'run'
    , 'get_market_data'
    , 'get_local_data'
    , 'get_full_tick'
    , 'get_divid_factors'
    , 'get_l2_quote'
    , 'get_l2_order'
    , 'get_l2_transaction'
    , 'download_history_data'
    , 'get_financial_data'
    , 'download_financial_data'
    , 'get_instrument_detail'
    , 'get_instrument_type'
    , 'get_trading_dates'
    , 'get_sector_list'
    , 'get_stock_list_in_sector'
    , 'download_sector_data'
    , 'add_sector'
    , 'remove_sector'
    , 'get_index_weight'
    , 'download_index_weight'
    , 'get_holidays'
    , 'get_trading_calendar'
    , 'get_trade_times'
    #, 'get_industry'
    #, 'get_etf_info'
    #, 'get_main_contract'
    #, 'download_history_contracts'
    , 'download_cb_data'
    , 'get_cb_info'
    # 增加如下一行,即可通过download_history_data2下载数据
    , 'download_history_data2'
]

2.2 批量下载多只股票代码行情数据(源代码)

修改完以上后,将如下代码保存到任意位置,运行即可。注意将c:\gszqqmt替换为自己的QMT安装路径。

#coding=utf-8

import pandas as pd
import sys
sys.path.append(r'c:\gszqqmt\bin.x64\Lib\site-packages')

# 加载xtquant库
from xtquant.xtdata import *

def on_progress(data):
    '''补充历史数据回调函数'''
    print(data) 
    
if __name__ == "__main__":
    print("xtdata demo")
    # 根据stock_list下载数据
    stock_list = ['603909.SH','300450.SZ','600740.SH','002362.SZ','600750.SH']
    field_list = ['time','open','close','low','high','volume'] # 提取的字段
    download_history_data2(stock_list, period='1d', start_time='20230201', end_time='20230223', callback=on_progress)
    print('download_history_data2 finished')
    
    # 获取股票close数据
    ret = get_market_data(field_list, stock_list, period='1d', start_time='', end_time='', count=5, dividend_type='front', fill_data=True)
    print(ret['close'].T)

结果如下:

xtdata demo
{'finished': 1, 'total': 5, 'stockcode': '603909.SH', 'message': ''}
{'finished': 2, 'total': 5, 'stockcode': '600740.SH', 'message': ''}
{'finished': 3, 'total': 5, 'stockcode': '600750.SH', 'message': ''}
{'finished': 4, 'total': 5, 'stockcode': '300450.SZ', 'message': ''}
{'finished': 5, 'total': 5, 'stockcode': '002362.SZ', 'message': ''}
download_history_data2 finished
          603909.SH  300450.SZ  600740.SH  002362.SZ  600750.SH
20230217      12.99      45.08       5.62      37.80      15.66
20230220      13.03      45.56       5.73      38.90      16.13
20230221      13.19      45.40       5.84      36.95      16.14
20230222      13.04      44.85       5.90      37.99      16.25
20230223      13.03      44.45       5.89      34.19      16.36

总结

xtquant是qmtmini的灵魂,这篇文章只是抛砖引玉,后面还有很多用法,以后抽空再分享。感兴趣的童鞋可在评论区留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【QMT之xtquant】活用xtdata,激活download_history_data2批量高效获取行情数据 的相关文章

  • 如何使用我的服务器作为代理通过 PHP 下载文件?

    我需要我的服务器充当第三方服务器 文件最初所在的位置 和最终用户之间的代理 也就是说 我的服务器从第3方服务器下载文件 然后用户从我的服务器下载它 这将导致产生文件大小两倍的带宽 这个过程如何使用PHP来实现呢 fp fopen url r
  • gradle - 从 url 下载并解压文件

    从 url 下载和解压文件的正确 gradle 方法是什么 http 如果可能的话 我想防止每次运行任务时重新下载 在ant get可以通过以下方式实现skipexisting true 我当前的解决方案是 task foo ant get
  • 如何使用 JavaScript 或 jQuery 从 URL 下载文件?

    我使用 jQuery fileDownload 插件从 URL 下载文件 fileDownload url contentType text csv contentDisposition attachment filename url sp
  • 如何使用 Javascript 从 Chrome iOS 下载 blob 文件?

    如何使用 Javascript 从 Chrome iOS 下载 blob 文件 我正在从 iOS 下载文件 pdf excel txt png iOS 没有文件系统 这对下载来说是一个问题 我创建了一个代码 根据操作系统和导航器 如果需要
  • 使用 OkHttp 下载损坏的文件

    我编写的下载文件的方法总是会产生损坏的文件 public static String okDownloadToFileSync final String link final String fileName final boolean te
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report
  • 如何从任何网站下载视频

    我只是想知道如何从任何网站下载视频的总体思路 我尝试的事情 我检查页面 在视频属性标记中看到 blob URL 将 blob URL 复制粘贴到浏览器中 但无法打开 I also look around the Developer tool
  • 单击锚点,在同一窗口中下载文档

    我想提示用户在同一窗口中保存数据 可以是任何类似 图像 pdf excel 工作表等 我不想用HTML5下载选项 因为这并非对所有浏览器都有效 例如 我想提示用户下载谷歌徽标 如下代码所示 a href https www google c
  • 我可以阻止history.popstate在初始页面加载时触发吗?

    我正在开发一个通过 AJAX 提供内容的网站 如果您单击菜单中的某个项目 内容 div 会更新为 get回应 没什么花哨的 我正在实施history pushState允许使用浏览器的后退 前进按钮进行导航 我有以下内容可以在历史导航上加载
  • 强制使用 .htaccess 下载文件

    所以我在 htaccess 中使用以下规则 AddType SCHM wsc
  • 如何以编程方式下载公共 Google Drive 文件?

    我有一个后端服务器 必须下载 Google 云端硬盘上的文件 该文件已由所有者向公众共享 我们的客户通过电子邮件向我们发送链接 我们从电子邮件中获取链接 不涉及 UI 该程序需要获取或下载文件并离线处理它 谷歌示例似乎是使用 UI 运行的
  • r 闪亮下载过滤数据表(DT)

    我正在尝试做一个shiny应用程序下载过滤后的Datatable 过滤与search 通过删除行进行过滤delete button 下载部分按预期工作 问题 当我第一次使用数据表中的搜索区域进行过滤时 如果我使用按钮删除一行 它会重置第一个
  • 如何在 git 中仅获取唯一的提交

    我想获取所有分支中唯一提交的列表 但是如果有人在分支中使用 rebase 则会提交松散的父项 如何解决这个问题呢 如何获取进行独特更改的提交列表 I use git log oneline graph cherry pick left ri
  • 如何将文件下载到特定目录?

    我最近一直在尝试用 python 制作一个程序 将文件下载到特定目录 我正在使用 Ubuntu 到目前为止我有这个 import os import getpass import urllib2 y getpass getuser if n
  • silverlight...使用相对路径的文件超链接按钮

    我正在尝试使用 silverlight 中的超链接按钮来使用户能够下载 Word 文档 我不在乎是否出现文件 另存为框或单词文档是否在新浏览器中打开 我收到错误 无法导航到相对于页面的位置 我已经看到它发布 您可以使用绝对路径 www do
  • 如何使用 Angular2 或更高版本下载文件

    我有一个 WebApi MVC 应用程序 我正在为其开发一个 angular2 客户端 以替换 MVC 我在理解 Angular 如何保存文件时遇到一些困难 请求没问题 与 MVC 一起工作正常 我们可以记录收到的数据 但我不知道如何保存下
  • django pandas dataframe 下载为 Excel 文件

    我有一个 Django 应用程序 将放置在 Docker 容器中 该应用程序以 Dataframe 格式准备数据 我想允许用户将数据作为 Excel 文件下载到他 她的本地驱动器 我过去使用过 df to excel 但这在这种情况下不起作
  • 如何使用线程在 C# 中依次运行 3 个方法?

    我有三种方法 即方法1 方法2和方法3 方法1用于从一个站点下载图像 方法2用于从第二个站点下载图像 方法3用于比较图像 Method1 获取根据产品 id 逐一添加到列表中的图像 url 列表 即多个产品 id 的集合上有一个循环 然后根
  • 将 PHP 生成的网页下载为 HTML 文件

    我正在使用基于 PHP 的 CMS 它使用

随机推荐