发表自话题:怎么画k线图
python 获取股市数据 baostock + 画K线图 mpl_finance
获取股票数据安装baostock库baostock库的特性获取A股K线数据核心代码如下完整代码如下画K线图安装mpl_finance库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-DDcode证券代码格式: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是否ST1是,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')
标签组:[复权] [date] [小数点] [mpl]
上一篇:K线图如何对接第3方数据11
下一篇:怎样划K线图的上升通道线?