我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用Joinquant做实盘行情数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用Joinquant做实盘行情数据

这篇文章主要为大家展示了“怎么使用Joinquant做实盘行情数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用Joinquant做实盘行情数据”这篇文章吧。

如下图,如果运行行情数据下载时候,是在交易日中的话比如2点半或者上午8点,如果填写的endDate是当天或者之后的日期,那么返回数据会自动填充到下午3点交易时候。此时之后的数据都是交易量为0,价格就是2点半时候价格。

怎么使用Joinquant做实盘行情数据

所以在用作实盘数据分析时候,必须要填入endDate的分钟时间为当前时间,才可以确保不会出现控制。整体代码更新如下:

# encoding: UTF-8 from __future__ import print_functionimport sysimport jsonfrom datetime import datetime,date,timedeltafrom time import time, sleep from pymongo import MongoClient, ASCENDINGimport pandas as pd from vnpy.trader.vtObject import VtBarData, VtTickDatafrom vnpy.trader.app.ctaStrategy.ctaBase import (MINUTE_DB_NAME,                                                 DAILY_DB_NAME,                                                 TICK_DB_NAME) import jqdatasdk as jq # 加载配置config = open('config.json')setting = json.load(config) mc = MongoClient()  # Mongo连接dbMinute = mc[MINUTE_DB_NAME]  # 数据库# dbDaily = mc[DAILY_DB_NAME]# dbTick = mc[TICK_DB_NAME] USERNAME = setting['Username']PASSWORD = setting['Password']jq.auth(USERNAME, PASSWORD) FIELDS = ['open', 'high', 'low', 'close', 'volume']  # ----------------------------------------------------------------------def generateVtBar(row, symbol):    """生成K线"""    bar = VtBarData()     bar.symbol = symbol    bar.exchange = "SHFE"    bar.vtSymbol = bar.vtSymbol = '.'.join([bar.symbol, bar.exchange])    bar.open = row['open']    bar.high = row['high']    bar.low = row['low']    bar.close = row['close']    bar.volume = row['volume']    bardatetime = row.name    bar.date = bardatetime.strftime("%Y%m%d")     bar.time = bardatetime.strftime("%H%M%S")    # 将bar的时间改成提前一分钟    hour = bar.time[0:2]    minute = bar.time[2:4]    sec = bar.time[4:6]    if minute == "00":        minute = "59"         h = int(hour)        if h == 0:            h = 24         hour = str(h - 1).rjust(2, '0')    else:        minute = str(int(minute) - 1).rjust(2, '0')    bar.time = hour + minute + sec     bar.datetime = datetime.strptime(' '.join([bar.date, bar.time]), '%Y%m%d %H%M%S')    return bar  # ----------------------------------------------------------------------def jqdownloadMinuteBarBySymbol(symbol,startDate,endDate):    """下载某一合约的分钟线数据"""    start = time()     cl = dbMinute[symbol]    cl.ensure_index([('datetime', ASCENDING)], unique=True)  # 添加索引     df = jq.get_price(setting[symbol],start_date = startDate,end_date = endDate, frequency='1m', fields=FIELDS,skip_paused = True)    for ix, row in df.iterrows():        bar = generateVtBar(row, symbol)        d = bar.__dict__        flt = {'datetime': bar.datetime}        cl.replace_one(flt, d, True)     end = time()    cost = (end - start) * 1000     print(u'合约%s的分钟K线数据下载完成%s - %s,耗时%s毫秒' % (symbol, df.index[0], df.index[-1], cost))    print(jq.get_query_count()) def jqdownloadMappingExcel(exportpath = "C:\Project\\"):    getfuture = jq.get_all_securities(types=['futures'], date=None)    # list: 用来过滤securities的类型, list元素可选: ‘stock’, ‘fund’, ‘index’, ‘futures’, ‘etf’, ‘lof’, ‘fja’, ‘fjb’.types为空时返回所有股票, 不包括基金, 指数和期货    getfuture.to_excel(                    exportpath + "Mapping" + str(date.today())  + "futures.xls",                    index=True, header=True)  # ----------------------------------------------------------------------def downloadAllMinuteBar(days=10):    """下载所有配置中的合约的分钟线数据"""    print('-' * 50)    print(u'开始下载合约分钟线数据')    print('-' * 50)     startDt = datetime.today() - days * timedelta(1)    startDate = startDt.strftime('%Y-%m-%d')     # 添加下载任务    enddt = datetime.today()    endDate = enddt.strftime('%Y-%m-%d %H:%M:%S')      jqdownloadMinuteBarBySymbol('rb1910', startDate, endDate)     print('-' * 50)    print    u'合约分钟线数据下载完成'    print('-' * 50) if __name__ == '__main__':    # jqdownloadMappingExcel()    #下载主力合约     downloadAllMinuteBar(days=10)    #下载单个品种    # jqdownloadMinuteBarBySymbol('510050.XSHG',startDate,endDate)

以上是“怎么使用Joinquant做实盘行情数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用Joinquant做实盘行情数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用Joinquant做实盘行情数据

这篇文章主要为大家展示了“怎么使用Joinquant做实盘行情数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用Joinquant做实盘行情数据”这篇文章吧。如下图,如果运行行情数据下载
2023-06-02

使用MongoDB做数据库怎么管理

管理MongoDB数据库可以使用MongoDB提供的命令行工具mongo和可视化管理工具MongoDB Compass。1. 使用命令行工具mongo:- 打开终端或命令提示符,输入`mongo`命令连接到MongoDB服务。- 使用`us
2023-09-01

使用SpringMVC怎么实现对数据进行校验

使用SpringMVC怎么实现对数据进行校验?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、导入jar包若要实现数据校验功能,需要导入必要的jar包,主要包括以下几个:c
2023-05-31

怎么使用datagrid获取行数据

要使用DataGrid获取行数据,可以按照以下步骤进行操作:1. 首先,获取到DataGrid控件的实例。可以通过代码获取或者在XAML文件中定义一个DataGrid控件,并设置一个给定的名称。2. 在需要获取行数据的地方,可以使用以下代码
2023-08-26

华为云服务器数据盘怎么使用

华为云服务器数据盘可以用来存储大量数据,例如图片、视频、音频和文档等。你可以使用华为云服务器数据盘来存储文件或目录,以下是一些常见的操作步骤:下载和存储文件:在华为云服务器数据盘的官网上下载和安装华为云服务器数据盘的相关组件。你也可以在华为的官方网站(https://cloud.huawei.com/)上下载其他第三方云服务提供商的应用程序。创建文件夹:将文件和其他数据存储在名为“Myda
2023-10-26

腾讯云服务器数据盘怎么使用?

腾讯云服务器数据盘通常使用以下几种方式进行管理和使用:使用云盘服务账户登录:在访问腾讯云服务器数据盘的界面时,只要登录您的腾讯云服务器账户即可查看和使用所有数据。使用云盘管理工具:在云盘服务账户界面中,您可以选择在本地或云盘中创建云盘并进行管理。如果您需要从本地访问数据,请选择“使用云盘服务账户”。访问云盘服务:在登录云盘服务账户后,您可以按照以下步骤访问云盘:选择一个云盘,例如“Q
2023-10-26

怎么使用Python进行数据分析

使用Python进行数据分析可以通过以下几个步骤:1. 安装Python和相关库:首先需要安装Python解释器,推荐使用Anaconda发行版,因为它已经包含了很多常用的数据分析库,如NumPy、Pandas和Matplotlib等。可以
2023-08-23

怎么使用Pandas进行数据读取

本文小编为大家详细介绍“怎么使用Pandas进行数据读取”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Pandas进行数据读取”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用pandas进行数据读取,
2023-07-05

怎么使用Kafka进行数据分析

使用Kafka进行数据分析可以分为以下几个步骤:1. 安装和配置Kafka:首先需要下载和安装Kafka,并进行相关的配置。配置文件包括Zookeeper连接地址、Kafka相关参数等。2. 创建和配置生产者:生产者是将数据发送到Kafka
2023-10-21

怎么使用Python进行数据清洗

这篇文章主要讲解了“怎么使用Python进行数据清洗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python进行数据清洗”吧!缺失值当数据集中包含缺失数据时,在填充之前可以先进行一
2023-07-06

怎么使用mysql进行数据查询

要使用MySQL进行数据查询,您需要按照以下步骤进行操作:连接到MySQL数据库。可以使用命令行或图形界面工具连接到MySQL数据库。命令行:在命令行中输入mysql -u 用户名 -p,然后输入密码连接到MySQL数据库。图形界面工具:
怎么使用mysql进行数据查询
2024-04-09

怎么使用dbeaver进行数据迁移

要使用DBeaver进行数据迁移,你可以按照以下步骤操作:打开DBeaver并连接到源数据库和目标数据库。在DBeaver的主界面上,选择“数据库”菜单,然后选择“数据传输”。在数据传输向导中,选择源数据库连接和目标数据库连接。选择要迁移的
怎么使用dbeaver进行数据迁移
2024-03-14

怎么使用thinkphp进行数据求和并排行

这篇文章主要介绍“怎么使用thinkphp进行数据求和并排行”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用thinkphp进行数据求和并排行”文章能帮助大家解决问题。步骤1:连接数据库前往T
2023-07-05

怎么使用NumPy进行数组数据处理

本篇内容主要讲解“怎么使用NumPy进行数组数据处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用NumPy进行数组数据处理”吧!介绍NumPy是Python中用于数值计算的核心包之一,
2023-07-05

华为云服务器数据盘怎么使用的

华为云服务器数据盘可以用来存储大量的数据,以下是使用方法:在开始使用数据盘之前,您应该确保您已经下载并安装了正确的软件。这些软件可能会要求您输入您的电子邮件地址以及其他个人信息。将数据盘存储到您的计算机上,并确保其具有足够的存储空间。一般来说,数据盘的大小要确保您的计算机可以存储大量的数据。您可以使用Windows操作系统的分区来存储大型文件。将数据盘从计算机上复制到您的本地存储设备或云
2023-10-26

怎么使用PHP MySQL进行数据连接

小编给大家分享一下怎么使用PHP MySQL进行数据连接,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP MySQL 连接一起学习PHP MySQL 连接方式
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录