python量化编程4根据股票代码获取股票价格等数据

python量化编程4根据股票代码获取股票价格等数据

获取了A股市场上所有的股票名称和代码后,下面根据股票代码获取相关的数据。

打开baostock网站(A股K线数据 – www.baostock.com),找到A股K线数据标签。

该页介绍了获取历史A股K线数据的API接口,query_history_k_data_plus().

给了一个示例 ,下面我们将示例复制到pycharm中,在此基础上修改,获取所有A股市场上的价格数据。

新建一个get_stock.py 文件,将示例代码粘贴到文件中,进行简单的修改,修改csv文件输出路径,文件名按照股票代码保存:

python量化编程4根据股票代码获取股票价格等数据

运行程序,结果显示正常,在data文件夹下出现了以600000命名的csv文件。

python量化编程4根据股票代码获取股票价格等数据

接下来作一下修改。

首先读取所有股票代码的csv文件。

# 读取stock_industry.csv数据
df = pd.read_csv(r'data\\stock_industry.csv',encoding="gbk")
code_list = df['code'].values.tolist()

定义一个data_list列表,用来保存每个股票的行情数据。

data_list = []

利用for循环遍历code_list列表。

for code in code_list:

对接口进行修改,将原来的股票代码改成code变量。

rs = bs.query_history_k_data_plus(code,
"date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
start_date='2012-01-01',
end_date='2023-12-11',
frequency="d",
adjustflag="3")

利用while循环,将获取的数据保存到data_list中,并转换成pandas的dataframe。

然后将data_list列表清空,最后将数据保存到一个csv文件中。

while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录合并在一起
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
data_list.clear()
#### 结果集输出到csv文件 ####
result.to_csv(f"data\\{code}.csv", index=False)
print(result)

运行程序,data文件夹下显示了以股票代码为文件名的csv文件。

python量化编程4根据股票代码获取股票价格等数据

完整代码如下:

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)

# 读取stock_industry.csv数据
df = pd.read_csv(r'data\\stock_industry.csv',encoding="gbk")
code_list = df['code'].values.tolist()

data_list = []
for code in code_list:
    #### 获取沪深A股历史K线数据 ####
    # 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。“分钟线”不包含指数。
    # 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
    # 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg

    rs = bs.query_history_k_data_plus(code,
                                      "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
                                      start_date='2012-01-01',
                                      end_date='2023-12-11',
                                      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)

#### 打印结果集 ####

    while (rs.error_code == '0') & rs.next():
        # 获取一条记录,将记录合并在一起
        data_list.append(rs.get_row_data())
    result = pd.DataFrame(data_list, columns=rs.fields)
    data_list.clear()

    #### 结果集输出到csv文件 ####
    result.to_csv(f"data\\{code}.csv", index=False)

    print(result)

#### 登出系统 ####
bs.logout()

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/78350
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 15 日
下一篇 2024 年 7 月 15 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注