聚宽平台实际上提供了两种查询数据的方法,第一种是线上在聚宽平台可以使用的API:jqdata,另外一种则是本地的接口:JQData,是的,你没有看错,只是大小写的不同,搞得一开始我以为完全是同一种。jqdata可以线上通过import jqdata
来引入数据接口,本地的JQData则是通过import jqdatasdk
来引入。两种数据源唯一的不同就是jqdata对接了聚源数据(一个更高阶的数据源)而JQData没有。本文就来介绍一下聚源数据端口以及其他需要数据库操作的查询方法。
文章目录
- SQLAlchemy
- 聚源数据的引入
- 获取融资融券汇总数据
- 获取股票资金流向数据
- 获取龙虎榜数据
- 上市公司分红送股(除权除息)数据
- 沪深市场每日成交概况
- 市场通
- 上市公司概况
- 上市公司员工情况
- 上市公司基本信息
- 上市公司状态变动
- 股票上市信息
- 股票简称变更情况
- 公司管理人员任职情况
- 上市公司股东和股本信息
- 十大股东
- 十大流通股东
- 股东股份质押
- 股东股份冻结
- 股东户数
- 大股东增减持
- 受限股份上市公告事情
- 受限股份实际解禁日期
- 上市公司股本变动
- 获取单季度/年度财务数据
- 调用方法
- 示例
- 财务数据的列表如下
- 获取报告期财务数据
- 业绩预告
- 合并利润表
- 母公司利润表
- 合并现金流量表
- 母公司现金流量表
- 合并资产负债表
- 母公司资产负债表
- 财务报表补充科目
SQLAlchemy
在介绍聚源接口之前,我们有必要了解一下SQLAlchemy,聚源数据的提取就是基于SQLAlchemy进行的。
SQL,即*(Structured Query Language 结构化查询语言)*是一种声明式的语言,是关系型数据库的通用语言。SQL查询是客户端发送给数据库服务器的文本字符串,指明需要执行的具体操作。SQL十分有用,是一个数据分析师必备的技能,关于SQL以及数据库相关的知识要深究的话其实很多,几本书都写不完,在此我不做深入介绍,以后有时间我会写相关的文章总结。
回到SQLAlchemy。对于所有的关系型数据库而言,SQL是不完全相同的,每一种是数据库实现的是包含自己特征和哲学的方言。许多函数库用于消除它们之间的差异,其中最著名的跨数据库的Python库是SQLAlchemy。
以下层级是可以使用SQLAlchemy的:
- 底层负责处理数据库连接池,执行SQL命令以及返回结果。
- 往上是SQL表达式语言,更像Python的SQL生成器
- 较高级的是对象关系模型(ORM),使用SQL表达式语言,将应用程序代码和关系型数据结构结合起来。
在创建会话后,可以通过SQLAlchemy的query对象来进行查询:q = session.query(SomeMappedClass)
其中聚宽涉及到SQLAlchemy的基本的查询方式有:
- query 填写需要查询的对象,可以是整张表,也可以是表中的多个字段或计算出的结果
- filter 填写过滤条件,多个过滤条件可以用逗号隔开,或者用and*,or*这样的语法
- order_by 填写排序条件
- .desc() 降序排列
- .asc() 升序排列
- limit 限制返回的个数
- order_by 排序条件
聚源数据的引入
以下两条语句都会引入数据库的查询操作
from jqdata import jy
from jqdata import finance
涉及使用数据库的操作有:
- get_fundamentals (股票单季度财务数据)
- finance (股票数据,基金数据等)
- opt (期权数据)
- macro (宏观数据)
- jy (聚源数据)
获取融资融券汇总数据
finance.run_query(query(finance.STK_MT_TOTAL).filter(finance.STK_MT_TOTAL.date=='2019-05-23').limit(n))
数据表finance.STK_MT_TOTAL:收录了融资融券汇总数据
表结构和字段信息如下:
名称 |
---|