python 获取股市数据 baostock + 画K线图 mpl_finance

获取股票数据

安装baostock库

pip install baostock

baostock库的特性

  1. 证券宝www.baostock.com是一个免费、开源的证券数据平台(无需注册)
  2. 返回的数据格式是pandas DataFrame类型,以便于用pandas/NumPy/Matplotlib进行数据分析和可视化
  3. 当前交易日17:30,完成日K线数据入库
  4. 当前交易日20:30,完成分钟K线数据入库
  5. 第二自然日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是否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')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值