本期目标:

从聚宽数据API中获取期权行情数据并写入到云数据库(MySql)中,通过superset访问存储在数据库中的数据。

本期导读:

  • 聚宽金融数据API
  • 获取ETF期权日终行情
  • 数据写入到MySql数据库
  • Superset中访问数据库
  • 下节预告

一、聚宽金融数据API

聚宽量化平台(https://www.joinquant.com/help/api/help?name=JQData)提供了为期一年的免费数据使用权限,注册用户每天可以免费提取100万条数据。

  • 首先根据官网的指引进行用户注册和登录并提交试用申请,请参考如下文档:

图一 聚宽api官方文档

  • 参考聚宽文档中的‘如何安装使用JQData’进行环境配置。登录你的阿里云服务器,进入命令行工具(黑窗口),运行命令:‘pip install jqdatasdk’,进行聚宽API接口的安装,安装完成后输入命令:‘pip list’查看是否安装成功。

图二 查看聚宽数据接口是否安装成功

  • 测试聚宽账号

命令行中(黑窗口)运行命令:‘python’进入python交互式运行环境,然后按照官方文档的指引,进行登录验证:

图三 官方登录验证文档

二、获取ETF期权日终行情

按照官方文档中的期权日行情获取指引文档,在上一步打开的python交互式运行环境中尝试获取合约代码为‘10001313.XSHG’的期权合约最近10个交易日的日终行情。

图四 获取期权日行情数据指引文档

按照上述文档依次执行命令:

-‘from jqdatasdk import opt’

-‘q=query(opt.OPT_DAILY_PRICE).filter(opt.OPT_DAILY_PRICE.code=='10001313.XSHG').order_by(opt.OPT_DAILY_PRICE.date.desc()).limit(10)’

-‘df=opt.run_query(q)’

-‘print(df)’

图五 获取ETF期权日终行情

上述结果表明可以使用python命令从聚宽API接口中获取行情数据。

三、数据写入到MySql数据库

下面是通过python代码连接数据库和写入数据的代码:

图六 python连接数据库

  • 首先导入连接数据库需要的工具sqlalchemy:

‘from sqlalchemy import create_engine’,如果提示没有对应库,请先使用pip工具进行安装。

  • 指定数据库表名、数据库名和数据库连接串

‘TABLE_NAME = ‘opt_daily_price’’

‘DATABASE_SCHEMA = ‘options_data’’

‘DATABASE_CONNECT_STR = 'mysql+pymysql://数据库用户名:数据库密码@云数据库内网地址/数据库名?charset=utf8'’

数据库表名和数据库名需要提前在数据库中创建(可回顾第二章中创建数据库表相关内容)

  • 创建数据库连接并写入数据库

‘engine=create_engine(DATABASE_CONNECT_STR)’

‘data_array.to_sql(TABLE_NAME,engine,schema=DATABASE_SCHEMA,if_exists='append',index=F alse,index_label=False)’

其中,data_array是需要写入的数据。完整的python连接mysql数据库的文档可参考:https://zhuanlan.zhihu.com/p/72347359

  • 下载完整python代码并修改运行

本节的python代码下载链接: https://pan.baidu.com/s/1PwrHlCaqg2ukllzCCID50w 提取码: t53j。

下载python代码进行修改,替换掉代码中用户名、密码、数据库地址等信息后将脚本保存到自己的阿里云服务器上。在服务器本机创建bat脚本调用python脚本,bat脚本内容为:

python C:DataCrawlerCodeget_option_daily_price.py 510050.XSHG

(关于‘如何新建bat脚本’请自行百度学习)上面bat命令中的目录C:DataCrawlerCode为python脚本实际所在的文件目录,请根据自己实际情况替换。

双击bat脚本即可自动从聚宽api中下载当日所有以510050.XSHG为标的的ETF期权合约日终行情数据。在Windows计划任务中创建定时任务每日定时自动运行该bat脚本即可实现每日自动爬取期权合约数据至你的云数据库。

若需要补充某天(如2020年1月1日)的历史数据只需稍微修改上述bat脚本为:

python C:DataCrawlerCodeget_option_daily_price.py 510050.XSHG 2020-01-01

上述命令也可以直接在命令行窗口(黑窗口)中‘回车’运行。

四、Superset中访问数据库

登录superset平台进入【source】-【database】数据库连接配置界面。

图七 superset数据库连接配置

点击➕号新建数据库连接

图八 新建数据库连接

配置数据库连接,其中URI是mysql数据库连接串,标准结构为:‘mysql://用户名:密码@数据库内网地址/数据库名?charset=utf8’,替换其中的用户名、密码、数据库内网地址和数据库名为你自己的即可(可回顾第二章‘创建数据库表’相关内容)。

图九 数据库连接配置

五、下期预告

介绍国内ETF期权合约基本知识和属性。

六、课后作业

需要说明的是国内ETF期权目前只有三个标的,分别为‘华夏上证50ETF(510050.XSHG),华泰柏瑞沪深300ETF(510300.XSHG),嘉实沪深300ETF(159919.XSHE)’,括号内为ETF基金的代码,其中XSHG表示上交所,XSHE代表深交所,本文后续所有数据分析案例均使用上述三个品种的ETF期权合约交易数据进行。

请参照上面下载的脚本开发python脚本,并创建定时任务,将聚宽官方文档中的其他期权数据每日自动下载到云数据库以便本课程后续实操,每一个类型的期权数据均需下载510050.XSHG、510300.XSHG、159919.XSHE三个标的的期权合约数据;同时还要下载510050.XSHG、510300.XSHG、159919.XSHE三个ETF基金标的本身的每日收盘价数据。本次作业很重要,关系到后续课程中能否顺利进行实操。

图十 其他的期权数据

加关注不迷路:jywh_0001

.bat脚本自动yes_第四章: Python脚本获取聚宽(JQData)免费行情数据相关推荐

  1. python脚本自动运行失败_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  2. bat脚本中如何多次键盘输入并判断_第四章: Python脚本获取聚宽(JQData)免费行情数据...

    本期目标: 从聚宽数据API中获取期权行情数据并写入到云数据库(MySql)中,通过superset访问存储在数据库中的数据. 本期导读: l 聚宽金融数据API l 获取ETF期权日终行情 l 数据 ...

  3. python第四章课后答案4.7_Python数据分析实战作业 第四章 Python数据分析实战 习题...

    第四章 Python数据分析实战 习题(数据见附件sizhang.xlsx) 班主任现有一班级的两张表,如下. 表一:成绩表 学 号C#线 代Python 16010203788896 表二:信息表 ...

  4. 第四章 Python常用模块

    第四章 常用模块 4.1 模块介绍 4.1.1 模块及其好处 随着我们代码写的越来越多,功能越来越复杂,我们发在一个文件里维护就比较麻烦.所以我们就把不同的代码放在不同的py文件里,比如我们把连接数据 ...

  5. python 字典排序成绩_集体备课第四章 python基础与顺序结构

    第四章   第一节 python基础 填写上机记录:日期:9.28 班级:  节次:5     内容:python基础 下课时,整理好座椅后,再离开. 1.数据类型: 数字(整数(int).float ...

  6. 《Python CookBook2》 第四章 Python技巧 对象拷贝 通过列表推导构建列表

    (先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...

  7. 第四章 Python 外壳 :代码结构

    Python 代码结构 一.使用 # 注释 每个 # 可以注释一行,可以把注释行作为单独一行,也可以和代码放在同一行 >>> # 60 sec/min * 60 min/hr *24 ...

  8. 第四章 Python组合数据类型

    第四章 组合数据类型 4.1 列表 4.1.1 列表的表达 序列类型:内部元素有位置关系,能通过位置序号访问其中元素 列表是一个可以使用多种类型元素,支持元素的增.删.查.改操作的序列类型 ls = ...

  9. python自动发邮件 foxmail_使用 python 脚本实现自动监控网站并发送邮件告警

    今天中午的时候,网站莫名奇妙地出现无法访问的现象,持续了两个多小时,等发现问题的时候立刻重启了服务器才恢复正常.为防止同样的事情再次发生,所以就想编写一个自动化脚本来监控网站服务,今天为大家分享一下使 ...

最新文章

  1. 死磕Java并发:Java内存模型之总结
  2. 机器学习(MACHINE LEARNING)MATLAB进行概率统计分析
  3. 用 Java 爬小姐姐图片,这个厉害了。。。
  4. 算法工程师掌握了这个炼丹技巧的我开始突飞猛进
  5. 今日arXiv精选 | 9篇ICCV 2021最新论文
  6. 【maven】修改编译得到的文件名
  7. 多线程知识梳理(1) - 并发编程的艺术笔记
  8. Cadence 16 ( Allegro PCB ) 使用 Shape Symbol 制作不规则焊盘
  9. Bitmap对图像的处理
  10. 静态成员变量以及静态成员函数
  11. window powershell 筛选
  12. linux常用命令和关闭防火墙
  13. 周立功上位机获取CAN通讯数据解析 V2.0
  14. 怎么取消计算机文件共享,Win10系统怎么取消文件共享
  15. 关于电子科技大学学生用餐情况的一些调查
  16. 32.我的wafBypass之道
  17. 在国内,如何优雅的使用ChatGPT??
  18. 迪文串口屏(DMG10600C101-03WTC)的使用测试
  19. poj java 提交_POJ代码提交器 QNetworkAccessManager post get
  20. Windows10系统与Ubuntu系统之间的文件传输工具

热门文章

  1. python3对urllib和urllib2进行了重构
  2. Python如何实现单例模式?其他23中设计模式python如何实现?
  3. mysql 修改配置生效_MySQL修改my.cnf配置不生效的解决方法
  4. m5310采用芯片 中移物联_联想首发瑞芯微最新智能物联芯片产品
  5. 虚拟机 Linux ubuntu16.04 对 windows 设置共享文件夹教程(samba)(ubuntu16.04换源【更换下载源】【更换源】【更新源】)(如果连不上需要开SSH服务)
  6. 如何正确清理C盘中DriverStore文件夹中文件?
  7. SVN 使用方法(228)
  8. Moderate Modular Mode %,取模运算性质,数轴,思维
  9. centos7.3安装elasticsearch-head
  10. y2第一章 初始mybatis的上机3_MyBatis3.2.x从入门到精通之第一章