请选择 进入手机版 | 继续访问电脑版
楼主: duanll13
1382 3

【转载+评论】jqdata 期货分钟数据下载指南 -- windows下 python3.6 [推广有奖]

  • 4关注
  • 0粉丝

本科生

98%

还不是VIP/贵宾

-

威望
0
论坛币
105 个
通用积分
2.2006
学术水平
1 点
热心指数
3 点
信用等级
0 点
经验
5099 点
帖子
51
精华
0
在线时间
169 小时
注册时间
2014-2-28
最后登录
2023-11-28

duanll13 发表于 2019-12-18 11:28:44 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
评论:分钟级别的期货数据很多数据商都收费(eg:wind、金数源),现在聚宽提供了免费的数据下载包

原文地址:https://www.joinquant.com/view/community/detail/3497c2279ffe0cf4f08c147a191b3b08

1.在python等环境安装好的情况下,下载安装jqdatasdk,提供下载到本地安装方式:

https://github.com/JoinQuant/jqdatasdk
下载文件到本地


2.cmd到解压文件夹下运行 python setup.py install

3.到python环境中写代码(本人使用pycharn python IDE)
代码参考如下:

import jqdatasdk
import os
import pandas as pd
jqdatasdk.auth("user","password")

起始时间设置
date_start = []
date_end = []
for date_str in range(2016,2020):
    date_start.append(str(date_str)+"-01-01")
    date_end.append(str(date_str)+"-12-31")

#获取文件夹下文件函数
def file_name(file_dir):
     L=[]
     for root, dirs, files in os.walk(file_dir):
         for file in files:
             if os.path.splitext(file)[1] == '.csv':
                 L.append(file.split(".")[0])
     return L


if __name__ == '__main__':
    # feature_index = jqdatasdk.get_all_securities(['futures']  # 获取所有期货标的
    # feature_index["index1"] = feature_index.index
    # feature_index.to_excel("所有期货合约.xlsx",index=False)#将标的保存至本地,根据标的起始日期 添加此标的需要下载的年份数据是否存在
    feature_index = pd.read_excel("所有期货合约.xlsx")
    index_1 = list(feature_index["index1"])
    name_1  = list(feature_index["name"])
    c_name = list(feature_index["display_name"])

    for d in range(len(date_start)-1):
        try:
            os.makedirs("期货1分钟数据/"+date_start[d].split("-")[0])
        except:
            pass
        new_index1 = feature_index[feature_index["is_"+date_start[d].split("-")[0]]==1]
        print(len(new_index1))
        already_index = file_name("期货1分钟数据/"+date_start[d].split("-")[0])
        new_index = list(set(list(new_index1["name"]))-set(already_index))
        print(len(new_index))
        for i in new_index:
            sub = feature_index[feature_index["name"]==i]
            df = jqdatasdk.get_price(security = list(sub["index1"])[0],  start_date=date_start[d],end_date=date_start[d+1], frequency='1m', fields=['open', 'close', 'high', 'low', 'volume', 'money'],skip_paused=True)
            if len(df)>0:
                df["name"] = list(sub["name"])[0]
                df["time"] = df.index
                df = df.loc[:,["name","time",'open', 'close', 'high', 'low', 'volume', 'money']]
                df.to_csv("期货1分钟数据/"+date_start[d].split("-")[0]+"/"+list(sub["name"])[0]+".csv",index=False)

保存结果如下:

期货标的文件如下:




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


已有 1 人评分经验 收起 理由
yunnandlg + 100 精彩帖子

总评分: 经验 + 100   查看全部评分

yunnandlg 在职认证  学生认证  发表于 2020-2-4 08:57:14 |显示全部楼层 |坛友微信交流群
Victory was near.
胜利近在咫尺。

使用道具

jin0575 学生认证  发表于 2020-2-8 21:26:42 |显示全部楼层 |坛友微信交流群
也可以用 AkShare 啊

使用道具

FinData 发表于 2021-7-14 19:59:47 |显示全部楼层 |坛友微信交流群
A股最新高频行情数据:https://blog.csdn.net/finData/article/details/113722293

期货2005-2021最新高频行情数据:https://blog.csdn.net/finData/article/details/118688911

期权最新高频行情数据:https://blog.csdn.net/finData/article/details/118260385

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 09:44