python 获取股市数据 baostock + 画K线图 mpl_finance
标签: # Python python K线 mpl_finance mpf baostock
python 获取股市数据 baostock + 画K线图 mpl_finance
获取股票数据
安装baostock库
pip install baostock
baostock库的特性
- 证券宝www.baostock.com是一个免费、开源的证券数据平台(无需注册)
- 返回的数据格式是pandas DataFrame类型,以便于用pandas/NumPy/Matplotlib进行数据分析和可视化
- 当前交易日17:30,完成日K线数据入库
- 当前交易日20:30,完成分钟K线数据入库
- 第二自然日1:30,完成前交易日“其它财务报告数据”入库
获取A股K线数据
注意:baostock库除了获取K线数据之外,还能获取估值指标、盈利能力、营运能力、成长能力、偿债能力等信息,但因为本文聚焦于对K线图的绘制,因此不涉及这些函数的使用。
核心代码如下
import baostock as bs
lg = bs.login()
rs = bs.query_history_k_data_plus("sh.000001", "date,code,open,high,low,close",
start_date='2020-07-01', end_date='2020-07-29',
frequency="d", adjustflag="3")
第一个参数指定要获取K线数据的股票的代码,上证综指是“sh.000001”,深证成指是“sz.399001”,而创业板指是“sz.399006”,也可以是各个股票的代码,例如浦发银行“sh.600000”。
第二个参数指定要提取的数据,例子中的“date,code,open,high,low,close”分别对应日期、代码、开盘价、最高价、最低价、收盘价。其余可以指定的数据和含义如下
| 参数名称 | 参数描述 | 说明 |
|---|---|---|
| date | 交易所行情日期 | 格式:YYYY-MM-DD |
| code | 证券代码 | 格式:sh.600000。sh:上海,sz:深圳 |
| open | 今开盘价格 | 精度:小数点后4位;单位:人民币元 |
| high | 最高价 | 精度:小数点后4位;单位:人民币元 |
| low | 最低价 | 精度:小数点后4位;单位:人民币元 |
| close | 今收盘价 | 精度:小数点后4位;单位:人民币元 |
| preclose | 昨日收盘价 | 精度:小数点后4位;单位:人民币元 |
| volume | 成交数量 | 单位:股 |
| amount | 成交金额 | 精度:小数点后4位;单位:人民币元 |
| adjustflag | 复权状态 | 不复权、前复权、后复权 |
| turn | 换手率 | 精度:小数点后6位;单位:% |
| tradestatus | 交易状态 | 1:正常交易 0:停牌 |
| pctChg | 涨跌幅(百分比) | 精度:小数点后6位 |
| peTTM | 滚动市盈率 | 精度:小数点后6位 |
| psTTM | 滚动市销率 | 精度:小数点后6位 |
| pcfNcfTTM | 滚动市现率 | 精度:小数点后6位 |
| pbMRQ | 市净率 | 精度:小数点后6位 |
| isST | 是否ST | 1是,0否 |
第三个参数start_date指定数据的开始日期(包含),为空时取2015-01-01。
第四个参数end_date指定数据的结束日期(包含),为空时取最近一个交易日。
第五个参数frequency指定数据类型,默认为d,日k线;d=日k线、w=周、m=月、5=5分钟、15=15分钟、30=30分钟、60=60分钟k线数据,不区分大小写。
第六个参数adjustflag指定复权类型,默认不复权:3;1:后复权;2:前复权。已支持分钟线、日线、周线、月线前后复权。 对于指数来说,该参数没有任何影响。
完整代码如下
import baostock as bs
import pandas as pd
# 登陆系统
lg = bs.login()
# 获取沪深A股历史K线数据
rs = bs.query_history_k_data_plus("sh.000001",
"date,code,open,high,low,close",
start_date='2020-07-01', end_date='2020-07-29',
frequency="d", adjustflag="3")
# 输出结果
data_list = []
while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录合并在一起
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
# 结果集输出到csv文件
result.to_csv("szzz.csv", index=False)
print(result)
# 退出系统
bs.logout()
画K线图
安装mpl_finance库
pip install --upgrade mplfinance
mpl_finance库的特性
mpl_finance库提供了对财务数据进行可视化和分析的工具。
最简单的使用
import pandas as pd
import mplfinance as mpf
# 读取刚刚保存的数据
daily = pd.read_csv('szzz.csv', index_col=0, parse_dates=True, usecols=[0, 2, 3, 4, 5])
mpf.plot(daily)

咦?怎么和平常见的不一样?加入一些参数即可!
mpf.plot(daily, type='candle')

敢不敢再丑一点?
mpf.plot(daily, type='candle', style='charles')

mpf.plot(daily, type='candle', style='yahoo')

mpf.plot(daily, type='candle', style='starsandstripes')

智能推荐
在Python中画炫酷的K线图
利用pyecharts包,在Jupyter里画K线图 需要传入的参数有两类: 第一类即包含股价数据的表格,表格中需要包含的数据为: date或/和time open ,close, high, low volume 第二类为N日均线的“N”,可为空,也可同时输入多个N...
使用Python画股票的K线图
导言 本文简单介绍了如何从网易财经获取某支股票的价格数据,并根据价格数据画出相应的 日K线图。有助于新手了解并使用Python的相关功能。包括列表、自定义函数、for循 环、if函数以及如何使用matplotlib进行作图等内容。 第一步:从网易财经获取股票的价格数据 我一般是在网易财经查看某支股票的价格和成交数据,网易财经可以查到任意沪深的股票,我们使用招商银行的数据作为参考。 1、构建爬虫获取...
BaoStock:使用python的baostock接口,查询除权除息信息
证券宝www.baostock.com是一个免费、开源的证券数据平台。 提供大量准确、完整的证券历史行情数据、上市公司财务数据、实时证券行情推送服务等。  ...
使用python的baostock接口,获取股票所在上市公司盈利数据
基本面分析最重要是要获取上市公司的经营情况,其中盈利能力是首当其冲需要关注的。我给大家分享一个可以获取上市公公司每季度盈利情况的程序,方便大家获取数据。代码主要来自官网,http://www.baostock.com, 侵删。首先需要安装baostock,大家可以参考我之前的帖子。 &nb...
python两大免费获取股票接口Baostock&Tushare
最近,在一门涉及python的课上,老师讲解了Tushare这款股票数据接口。经过数据猿进一步探索之后发现,Tushare不但包含包含齐全的股票数据,还包含了其他领域的有用数据。除此之外,Baostock也是一个非常优秀的开源股票借口,使用起来更加稳定快速。 今天,数据猿就来尝试获取一下这两个接口的股票数据吧。 目录如下: 文章目录 Baostock VS Tushare Baostock 案例一...
猜你喜欢
UnityShader 屏幕特效 模糊
上一篇文章写了屏幕特效必须的几个要素,这边通过一个 脚本继承与PostEffectsBase .以及通过shader 交互实现屏幕模糊特效。 下面通过添加在摄像机,引用3的shader。 3.下面Shader 4.简单介绍Category :就是同一个Shader,如果下面有多个Shader的话,都会套用下面这一套 5.简单讲一下这个算法,这个通过在片元着色器进行上下左右进行像素微偏移 原图 模糊...
seaborn调用load_dataset函数时出现URLError
seaborn调用load_dataset函数时出现URLError: <urlopen error [Errno 11004] getaddrinfo failed> 在使用seaborn调用load_detaset函数时一直出现错误 出现 URLError: <urlopen error [Errno 11004] getaddrinfo failed> 解决办法。 查...
Sa-Token 一个轻量级Java权限认证框架
文章目录 Sa-Token 简介 基础使用 框架集成 添加Sa-Token依赖 配置Sa-Token 配置项解读 sa-token cookie 单点登录 OAuth 2.0 登录认证 认证流程 登录与注销 其他操作语句 权限认证 获取当前账户的权限码集合 权限认证 角色认证 全局异常捕获 权限通配符 踢人下线 强制注销 踢人下线 账号封禁 注解鉴权 1.注册注解拦截器 2.使用注解鉴权 路由鉴权...
平时瞎折腾之Docker
平时瞎折腾之Docker 由于平时在学校学习和使用的数据库大多数都是使用的mysql,但是进入工作中时,由于不同的项目会使用到像Oracle,Sql Server这样的数据库操作。虽说sql的基础语法都差不多,但具体使用起来还是有很大的差异。于是就想着装个Oracle数据库学习一下,但是由于我之前把电脑换成了Mac,这就很让人头疼。之前的解决方法是使用parallels安装windows虚拟机,然...
