编程学习网 > 编程语言 > Python > Python量化教程:baostock获取股价数据
2024
01-04

Python量化教程:baostock获取股价数据


在金融量化分析中,数据显得非常重要,数据的获取可以通过爬虫爬取相关网站的官网,例如东方财富,同花顺财经等等,同时也可以通过金融数据库进行获取,如akshare,tushare,baostock,yfinance调用金融数据接口,从而获得相关金融数据,这些都是Python的第三方库都可以通过pip命令进行安装,接下来将详细通过baostock来下载牧原股份的股票信息并对其进行可视化分析。


一、baostock简介
baostock可以提供大量准确、完整的证券历史行情数据、上市公司财务数据等。返回的数据格式:pandas DataFrame类型,以便于用pandas/NumPy/Matplotlib进行数据分析和可视化。同时支持通过BaoStock的数据存储功能,将数据全部保存到本地后进行分析。

二、安装baostock库
打开Anaconda Prompt,在窗口中输入pip install baostock进行安装,如图所示,显示安装成功。


三、股票数据获取
1.导入相关库
import baostock as bs
import pandas as pd
2.登陆系统
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)
3.获取深圳A股牧原股份k线历史数据
rs = bs.query_history_k_data_plus("sz.002714",
    "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
    start_date='2022-01-01', end_date='2023-12-15',
    frequency="d", adjustflag="3")
print('query_history_k_data_plus respond error_code:'+rs.error_code)
print('query_history_k_data_plus respond  error_msg:'+rs.error_msg)
4.获取结果
data_list = []
while (rs.error_code == '0') & rs.next():
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)

5.保存为csv文件
result.to_csv('D:/python/002714.csv', index=False)  

四、可视化分析
上面我们已经得到了牧原股份的股票信息并保存了csv文件,接下来使用matplotlib库进行可视化分析 代码如下:

result.date=pd.to_datetime(result.date)
result.index=result.date
result['close'].astype(float).plot(x='date')

结果如下:


五、全部代码
import baostock as bs
import pandas as pd
#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)
rs = bs.query_history_k_data_plus("sz.002714",
    "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
    start_date='2022-01-01', end_date='2023-12-15',
    frequency="d", adjustflag="3")
print('query_history_k_data_plus respond error_code:'+rs.error_code)
print('query_history_k_data_plus respond  error_msg:'+rs.error_msg)
data_list = []
while (rs.error_code == '0') & rs.next():
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
result.to_csv('D:/python/002714牧原.csv', index=False)  
print(result)
#### 登出系统 ####
bs.logout()
#### 可视化分析 ####
result.date=pd.to_datetime(result.date)
result.index=result.date

result['close'].astype(float).plot(x='date')

以上就是Python量化教程:baostock获取股价数据”的详细内容,想要了解更多IT圈内资讯欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取