【qstock开源了】数据篇之行情交易数据

news/2024/5/10 15:51:11/文章来源:https://blog.csdn.net/ndhtou222/article/details/127274580

qstock简介


qstock由“Python金融量化”公众号开发,试图打造成个人量化投研分析开源库,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(backtest)四个模块。其中数据模块(data)数据来源于东方财富网、同花顺、新浪财经等网上公开数据,数据爬虫部分参考了现有金融数据包tushare、akshare和efinance。qstock致力于为用户提供更加简洁和规整化的金融市场数据接口。可视化模块基于plotly.express和pyecharts包,为用户提供基于web的交互图形简单操作接口;选股模块提供了同花顺的技术选股和公众号策略选股,包括RPS、MM趋势、财务指标、资金流模型等,回测模块为大家提供向量化(基于pandas)和基于事件驱动的基本框架和模型。

qstock目前在pypi官网上发布,开源版本为1.1.0,意味着读者直接“pip install qstock ”安装即可使用。GitHub地址:https://github.com/tkfy920/qstock。

目前部分策略选股和策略回测功能仅供知识星球会员使用,会员可在知识星球置顶帖子上上获取qstock-1.1.1.tar.gz (强化版)安装包,进行离线安装。

下面为大家介绍qstock数据模块(data)各函数的具体调用方式和应用举例。

#导入qstock模块
import qstock as qs

行情交易数据接口

01

实时行情数据

获取指定市场所有标的或单个或多个证券最新行情指标
realtime_data(market='沪深A', code=None)

  • 参数market:输入行情名称或列表,默认'沪深A股',
    '沪深京A':沪深京A股市场行情; '沪深A':沪深A股市场行情;'沪A':沪市A股市场行情
    '深A':深市A股市场行情;北A :北证A股市场行情;'可转债':沪深可转债市场行情;
    '期货':期货市场行情;'创业板':创业板市场行情;'美股':美股市场行情;
    '港股':港股市场行情;'中概股':中国概念股市场行情;'新股':沪深新股市场行情;
    '科创板':科创板市场行情;'沪股通' 沪股通市场行情;'深股通':深股通市场行情;
    '行业板块':行业板块市场行情;'概念板块':概念板块市场行情;
    '沪深指数':沪深系列指数市场行情;'上证指数':上证系列指数市场行情
    '深证指数':深证系列指数市场行情;'ETF' ETF基金市场行情;'LOF' LOF 基金市场行情

  • code:输入单个或多个证券的list,不输入参数,默认返回某市场实时指标
    如code='中国平安',或code='000001',或code=['中国平安','晓程科技','东方财富']


(1)某市场所有标的最新行情

#获取沪深A股最新行情指标
df=qs.realtime_data()
#查看前几行
df.head()

9adebda7ecdc2a590c8608e92a73dd3a.png

#获取可转债最新行情指标
df=qs.realtime_data('可转债')
#查看前几行
df.head()

10c656282b63f5e639ecf6235ddddde1.png

#获取期货最新行情指标
df=qs.realtime_data('期货')
#查看前几行
df.head()

91d1fe3de4454fbec94a8a411e2c7569.png

#获取美股最新行情指标
df=qs.realtime_data('美股')
#查看前几行
df.head()

59ff62dfb903b0d4bcbf7cd2f6c541de.png

#获取港股最新行情指标
df=qs.realtime_data('港股')
#查看前几行
df.head()

c4ecf543398e294aa35adf9b15512613.png

#获取行业板块最新行情指标
df=qs.realtime_data('行业板块')
#查看前几行
df.head()

6d4b974d2cf57e4fe571886f1a8ec168.png

#获取概念板块最新行情指标
df=qs.realtime_data('概念板块')
#查看前几行
df.head()

53d66966c731b3e76dbdcdd8dc4c2862.png

#获取ETF最新行情指标
df=qs.realtime_data('ETF')
#查看前几行
df.head()

89ee8bff6060cd95024cc8e05a513657.png

(2)个股最新行情指标

  • code:输入单个或多个证券的list,不输入参数,默认返回某市场实时指标
    如code='中国平安',或code='000001',或code=['中国平安','晓程科技','东方财富']

qs.realtime_data(code=['中国平安','300684','锂电池ETF','BK0679','上证指数'])

c34e066e0147f9811bdd2b20e298c9de.png

(3)日内成交数据

intraday_data(code)

  • code可以为股票或债券或期货或基金代码简称或代码,如晓程科技或300139,返回股票、期货、债券等的最新交易日成交情况。

#股票日内交易数据
df=qs.intraday_data('中国平安')
df.head()

0288e8d41f8112c3c7e822b2db57cb1b.png

#基金日内交易数据
df=qs.intraday_data('有色50ETF')
df.head()

6c45bb924539a85069d8a9adf57ddfe9.png

(4)获取个股实时交易快照

stock_snapshot(code):

  • 获取沪深市场股票最新行情快照,code:股票代码

qs.stock_snapshot('中国平安')

7fd63005f2c7758345607d32f2885a30.png

(5)实时交易盘口异动数据

获取交易日实时盘口异动数据,相当于盯盘小精灵。
realtime_change(flag=None):

  • flag:盘口异动类型,默认输出全部类型的异动情况。可选:['火箭发射', '快速反弹','加速下跌', '高台跳水', '大笔买入', '大笔卖出',
    '封涨停板','封跌停板', '打开跌停板','打开涨停板','有大买盘','有大卖盘',
    '竞价上涨', '竞价下跌','高开5日线','低开5日线',  '向上缺口','向下缺口',
    '60日新高','60日新低','60日大幅上涨', '60日大幅下跌']
    上述异动类型分别可使用1-22数字代替。

df=qs.realtime_change('60日新高')
#查看前几行
df.head()

f29c12089e656408088cb77eb72e332a.png

#异动类型:火箭发射
df=qs.realtime_change(1)
#查看前几行
df.head()

5455df6b0d2110ada5533e661747f7b9.png

#快速反弹
df=qs.realtime_change(2)
#查看前几行
df.head()

c7e7943d2c6c50d13a8db48988d92237.png

02

历史行情数据


(1)历史K线

获取单只或多只证券(股票、基金、债券、期货)的历史K线数据。可以根据realtime_data实时行情接口获取相应金融市场交易标的的代码或简称,用于获取其历史K线数据。

  • get_data(code_list, start='19000101', end=None, freq='d', fqt=1)

获取股票、指数、债券、期货、基金等历史K线行情。参数说明:

  • code_list输入股票list列表,如code_list=['中国平安','贵州茅台','工业富联']
    ,返回多只股票多期时间的面板数据

  • start和end为起始和结束日期,年月日

  • freq:时间频率,默认日,1 : 分钟;5 : 5 分钟;15 : 15 分钟;30 : 30 分钟;
    60 : 60 分钟;101或'D'或'd':日;102或‘w’或'W':周; 103或'm'或'M': 月
    注意1分钟只能获取最近5个交易日一分钟数据

  • fqt:复权类型,0:不复权,1:前复权;2:后复权,默认前复权

个股数据

#默认日频率、前复权所有历史数据
#open:开盘价,high:最高价,low:最低价,close:收盘价
#vol:成交量,turnover:成交金额,turnover_rate:换手率
#在notebook上输入"qs.get_data?"可查看数据接口的相应参数
df=qs.get_data('601318')
df.tail()

8439f736b64101a735264c1acf00c304.png

#个股code_list可以输入代码或简称或多个股票的list
#获取中国平安2022年9月28日至今的5分钟数据,默认前复权
df=qs.get_data('中国平安',start='20220928',freq=5)
df.tail()

06d2d54c430cef7188479250576dafe6.png

#后复权数据,频率为周
df=qs.get_data('中国平安',fqt=2,freq='w')
df.tail()

838bd7e86e6928a785b80eaeb423e042.png

获取美股数据

#获取苹果公司股票数据
df=qs.get_data('AAPL')
df.tail()

967e06cbde72f3d37de50ea6311e21ae.png

获取期货历史K线数据

df=qs.get_data('棕榈油2210')
df.tail()

62eebe0f5e46a7960a9576c3f435843c.png

指数

注意上证指数代码'000001'与平安银行股票代码相同,为避免代码相同引起的混乱,获取指数数据,要输入指数的中文简称或拼音缩写。如'sh'代表'上证指数','sz'代表'深证综指','cyb'代表‘创业板指','zxb'代表'中小100'(原来的中小板指数),'hs300'代表'沪深300','sz50'代表'上证50','zz500'代表'中证500'等等。

code_list=['sh','sz','cyb','zxb','hs300','sz50','zz500']
df=qs.get_data(code_list)
df

7b8534c8ea17e9d524bc897f3353fbbb.png

#全球指数可参见:https://quote.eastmoney.com/center/qqzs.html
global_indexs=['道琼斯','标普500','纳斯达克','恒生指数','英国富时','法国CAC40','德国DAX','日经225','韩国KOSPI','澳大利亚标普200','印度孟买SENSEX','俄罗斯RTS','加拿大S&P','台湾加权','美元指数','路透CRB商品指数']
qs.get_data(global_indexs)

0e9578f1bc8246bb45a83c06a4829bb7.png

(2)多只证券的历史价格数据

获取单只或多只证券(股票、基金、债券、期货)的收盘价格dataframe

  • get_price(code_list, start='19000101', end='20500101', freq='d', fqt=1)

code_list输入股票list列表
如code_list=['中国平安','贵州茅台','工业富联']

code_list=['中国平安','300684','锂电池ETF','BK0679','上证指数']
df=qs.get_price(code_list)
df.tail()

d18a859dfab47326179f43028dcecf72.png

global_indexs=['道琼斯','标普500','纳斯达克','恒生指数','英国富时','法国CAC40','德国DAX','日经225','韩国KOSPI','澳大利亚标普200','印度孟买SENSEX','俄罗斯RTS','加拿大S&P','台湾加权','美元指数','路透CRB商品指数']
#全球指数价格数据
df=qs.get_price(global_indexs)
df.tail()

40ec5668babd61accdc7821d9dc2b1b3.png

03

股票龙虎榜数据

  • stock_billboard(start=None, end=None)

起始和结束日期默认为None,表示最新,日期格式'2021-08-21'

df=qs.stock_billboard('20220901','20221011')
df

63283ea47852c0341bef90d34dd58c2e.png

后续推文将进一步介绍qstock数据模块、可视化、选股和回测等功能。

参考资料:

1. https://efinance.readthedocs.io/en/latest/

2. https://akshare.akfamily.xyz/data/stock/stock.html#a

3. https://www.tushare.pro/document/2

532f41db3dbb961fb00985165a0428fd.png

关于Python金融量化

9f980091e97d33d92466e67af5f7be36.png

专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取qstock源代码、30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、与博主直接交流、答疑解惑等。添加个人微信sky2blue2可获取相关优惠。

cb3cb1f089fe4a53dd33dcf7ba649fe8.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_22295.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Turbot4机器人入门教程-硬件清单

系列文章目录: Turbot4机器人入门教程-硬件清单 Turbot4机器人入门教程-软件清单 Turbot4机器人入门教程-NoMachine远程控制 Turbot4机器人入门教程-配置网络 Turbot4机器人入门教程-测试键盘 Turbot4机器人入门教程-测试相机 Turbot4机器人入门教程-测试IMU …

贝叶斯网络预测

贝叶斯网络预测 用于贝叶斯分类器的数据集 • 类标记c:playtennisyes,playtennisno, • 需计算P(yes),P(no) • 还需计算P(strong|yes),P(strong|no),P(high|yes),P(high|no),P(cool|yes),P(cool|no),P(sunny|yes),P(sunny|no)…

IDEA插件推荐

工具插件 1.IDE Eval Reset 不能多说,福利插件 2.Aixcoder 代码提示 代码纠错 3.MybatisX xml跳转 添加插件后在dao层会多一只戴红色头巾的小鸟,同样在对应xml文件方法前也会对应一直戴蓝色头巾的小鸟,点击即可在dao和xml文件之间跳转…

主机与虚拟机的网络联通常见问题及解决方案

文章目录前言虚拟机网卡通用配置(虚拟机与主机互联)通用配置常见问题1、虚拟机对应桥接网络不显示IP2、电脑连接热点,主机连不上虚拟机问题前言 所有博客文件目录索引:博客目录索引(持续更新) 虚拟机网卡通用配置(虚…

UE4给角色赋予跳跃的动画

上一篇文章中,给动画赋予跑的动画,这一篇文章给角色赋予跳的动画。 在Locomotinve中【Idle/Walk/Run】节点后面再次添加一个状态节点【JumpStart】 双击进入到【JumpStart】节点,把Jumping_up拖动到蓝图中,并且连线 回到【Locomo…

Tableau10——人口金字塔,漏斗图,箱型图

文章目录一,人口金字塔二,漏斗图三,箱型图一,人口金字塔 人口金字塔图本质上是条形图,可以用来比较不同类别之间的差异 首先,对于85年龄的人,统一划分为85岁,创建计算字段年龄&…

法学生民法方面的论文选题,有什么推荐吗?

论文选题是我们撰写论文的逻辑起点,是我们动用自己的知识储备和文献材料去进行挑选、鉴别、确定下来的。选题的好坏关系到论文最后的成败,因为选题反映着我们对自己研究领域的了解程度,法学相关的论文选题更反映这我们对法制建设实践情况的认…

使用docker搭建高可用Nacos注册中心

使用docker-compose搭建高可用Nacos注册中心写在前面使用dockerNacos1.x单机方式搭建进入docker hub,查找镜像按照说明启动通过浏览器访问添加配置并使用客户端测试集群方式搭建搭建nacos需要的数据库环境编写nacos集群的docker脚本并启动Nacos2.x单机方式搭建按照说…

【Unity小功能开发实战教程】在UI画布上画网格线

文章目录👉一、前言👉二、Unity上画网格线的效果👉二、画网格线的原理👉三、完整代码👉三、注意事项👉一、前言 在大多软件中,网格线常常起到辅助线条的作用,像word中的网格线主要用…

python作业4

1 2 3 4 5 6 7 8 9 10 实战 1 2 3 4 5 6

(5)catanddong_用resnet18迁移学习分类和测试

1、数据集制作 (1)将从kaggle下载的数据集中的train目录下的图片分类为cat和dog文件夹,每个文件夹下12500张图片 (2)使用教程1的方法进行数据的划分 (1)数据集的划分_chencaw的博客-CSDN博客 2、使用resnet18的预训练模型迁移训练 (1)使用了dqtm查看进度 参考了tqdm…

面向对象(上)01

面向对象(上)01 Java面向对象学习的三条主线: (第4 - 6章) 1. Java类和类的成员 : 属性, 方法, 构造器; 代码块, 内部类. 1. 面向对象的三大特征 : 封装性, 继承性, 多态性 , (抽象性) . 1. 其他关键字 : this , super , static , final , abstract , interface , package , i…

websocket协议详解

websocket是什么? websocket是一种浏览器与服务器进行全双工通信的网络技术,属于 应用层协议。它 基于TCP传输协议,并 复用HTTP 的握手通道,用来弥补HTTP协议在持久通信能力上的不足。 ws 默认端口:80wss 默认端口&a…

Java高并发编程实战7,ConcurrentHashMap详解

一、ConcurrentHashMap详解 1、HashMap 在JDK1.8以前,HashMap是基于数组 链表来实现的,HashMap是一个数组,每个数组元素又是一张链表。 当向HashMap中增加元素时,会先根据此元素Key的hash值计算出该元素将要保存在数组中的下标…

SqlServer2008R2自动删除备份

https://blog.51cto.com/u_15162069/2776830 首先我们打开SqlServer管理工具(SSMS),在左侧目录中找到 管理-->右键维护计划-->新建维护计划双击左侧下方目录:创建 ”清除维护“ 任务双击后打开提示窗口,我们设置 “清除维护” 任务内容:即:在删除本机数据库中,C:\T…

手写数字识别的数据集讲解

CLASS torchvision.datasets.MNIST(root: str, train: bool True, transform: Optional[Callable] None, target_transform: Optional[Callable] None, download: bool False) root (string): 表示数据集的根目录,其中根目录存放MNIST/processed/tra…

【初学者】Vue使用axios向Node.js发起请求以及跨域问题的解决

目录 项目创建 代码 解决跨域问题 几个注意点 运行结果展示 axios官方文档:起步 | Axios 中文文档 | Axios 中文网 项目创建 本文实例用到的两个项目,分别命名为server和vue-axios。 server是node.js项目,创建方式: # 创建…

Codeforces Round #825 (Div. 2)

A. Make A Equal to B Sample input 5 3 1 0 1 0 0 1 4 1 1 0 0 0 1 1 1 2 1 1 1 1 4 1 0 0 1 0 1 1 0 1 0 1 Sample output 1 2 0 1 1 题意: 你有两个长度为n的数组a和b,你可以进行一次操作,将a数组的某个位置的数取反,或者…

LVM与磁盘配额

分区的缺点: 1、一旦建立无法修改 想修改得重新格式化 数据丢失 2、不够灵活 空间只能来自一块硬盘,且必须是连续的空间 3、没有备份冗余功能 需要工程师手动备份如果没有lvm可以下载:yum install lvm2 -y LVM的管理命令 主要命令:LVM为我们提供了逻辑概念上的磁盘,使得文…

usb sop and eop

USB包(packet)由SOP,SYNC,Packet内容和EOP组成. SOP信号-------------瞬态信号 协议中的描述:7.1.7.4.1 The start of a packet (SOP) is signaled by the originating port by driving the D and D- lines from the Idle state to the opposite logic level (K …