Python量化炒股的获取数据函数—get_index_stocks()

本文详细介绍了如何使用Python的get_industry_stocks函数获取特定行业(如专用设备制造业)的股票代码,并展示了如何通过JupyterNotebook查询近8日收盘价、财务数据以及绘制市盈率和换手率图表的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python量化炒股的获取数据函数—get_index_stocks()

利用get_industry_stocks()函数可以获取在给定日期一个行业的所有股票代码列表,其语法格式如下:

get_industry_stocks(industry_code, date=None)
各项参数的意义

参数date和返回值,都与get_index_stocks()函数相同。

参数industry_code是行业代码。行业代码有很多,常用行业代码及意义如下。

A01:农业

A02:林业

A03:畜牧业

A04:渔业

A05:农、林、牧、渔服务业

B06:煤炭开采和洗选业

B07:石油和天然气开采业

B08:黑色金属矿采选业

B09:有色金属矿采选业

C13:农副食品加工业

C14:食品制造业

C15:酒、饮料喝精制茶制造业

C16:烟草制品业

C27:医药制造业

C28:化学纤维制造业

C33:金属制品业

C34:通用设备制造业

C35:专用设备制造业

C36:汽车制造业

显示某行业的成分股代码及应用

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境”命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,接着输入如下代码:

stocks = get_industry_stocks('C35')
print('专用设备制造业的股票代码:\n', stocks)

单击工具栏运行按钮,快捷键(shift+enter),运行效果如下图所:

Screenshot 2024-04-27 at 17.33.07

显示专用设备制造业股票的近8个交易日的收盘价信息,具体代码如下:

import pandas as pd
from matplotlib import pyplot as plt
df1 = history(8, unit='1d', field='close', security_list=stocks, df=True, skip_paused=False,fq='pre')
print('专用设备制造业股票的近8个交易日的收盘价信息:\n', df1)

单击工具栏运行按钮,快捷键(shift+enter),运行效果如下图所:

Screenshot 2024-04-27 at 17.38.08

还可以显示专用设备制造业股票的单个交易日的财务数据,具体代码如下:

myq1 = query(valuation.pe_ratio,valuation.turnover_ratio).filter(valuation.code.in_(stocks))
df2 = get_fundamentals(myq1,'2024-04-26')
df2

单击工具栏运行按钮,快捷键(shift+enter),运行效果如下图所:

Screenshot 2024-04-27 at 17.44.23

利用图表显示专用设备制造业股票的市盈率和换手率信息,具体代码如下:

plt.figure(figsize=(12, 6))
# 激活第一个subplot
plt.subplot(2, 1, 1)
plt.plot(df2['pe_ratio'], '-b')
plt.subplot(2, 1, 2)
plt.plot(df2['turnover_ratio'], '-r')
plt.show()

单击工具栏运行按钮,快捷键(shift+enter),运行效果如下图所:

Screenshot 2024-04-27 at 17.56.15

非常抱歉,`tushare` 库的 `get_index_stocks()` 函数已经不再支持,你可以使用 `baostock` 或者 `jqdatasdk` 库来获取上证指数中的股票代码。 下面是使用 `baostock` 库获取上证指数中所有股票代码的示例代码: ```python import pandas_datareader.data as web import pandas as pd import baostock as bs # 设置起始日期和结束日期 start_date = '2021-01-01' end_date = '2021-12-31' # 上证指数的代码为 'sh.000001' index_code = 'sh.000001' # 登录 baostock bs.login() # 获取上证指数中所有股票的代码 index_components = bs.query_index_member(index_code) # 将数据转换为 DataFrame 格式 index_components = pd.DataFrame(index_components.data) # 获取所有股票的历史数据 all_data = pd.DataFrame() for code in index_components['code']: # 从 Yahoo Finance 上获取数据 data = web.get_data_yahoo(code + '.SS', start_date, end_date) # 将数据添加到 all_data DataFrame 中 all_data = pd.concat([all_data, data]) # 将数据存储到 CSV 文件中 all_data.to_csv('shanghai_index_stocks_data.csv') # 登出 baostock bs.logout() ``` 在上面的代码中,我们首先使用 `bs.login()` 函数登录 baostock,然后使用 `bs.query_index_member()` 函数获取上证指数中所有股票的代码。获取到数据后,我们将其转换为 Pandas 的 DataFrame 格式,并循环遍历所有股票,使用 `web.get_data_yahoo()` 函数从 Yahoo Finance 上获取历史数据,并将数据添加到一个 DataFrame 中。最后,使用 Pandas 的 `to_csv()` 函数将数据存储到 CSV 文件中。最后,我们使用 `bs.logout()` 函数登出 baostock。 如果你想使用 `jqdatasdk` 库获取上证指数中所有股票代码,可以参考下面的示例代码: ```python import pandas_datareader.data as web import pandas as pd from jqdatasdk import * # 设置起始日期和结束日期 start_date = '2021-01-01' end_date = '2021-12-31' # 登录 jqdata auth('你的聚宽账号', '你的聚宽密码') # 上证指数的代码为 '000001.XSHG' index_code = '000001.XSHG' # 获取上证指数中所有股票的代码 index_components = get_index_stocks(index_code) # 获取所有股票的历史数据 all_data = pd.DataFrame() for code in index_components: # 从 Yahoo Finance 上获取数据 data = web.get_data_yahoo(code + '.SS', start_date, end_date) # 将数据添加到 all_data DataFrame 中 all_data = pd.concat([all_data, data]) # 将数据存储到 CSV 文件中 all_data.to_csv('shanghai_index_stocks_data.csv') # 登出 jqdata logout() ``` 在上面的代码中,我们首先使用 `auth()` 函数登录 jqdata,然后使用 `get_index_stocks()` 函数获取上证指数中所有股票的代码。获取到数据后,我们循环遍历所有股票,使用 `web.get_data_yahoo()` 函数从 Yahoo Finance 上获取历史数据,并将数据添加到一个 DataFrame 中。最后,使用 Pandas 的 `to_csv()` 函数将数据存储到 CSV 文件中。最后,我们使用 `logout()` 函数登出 jqdata。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bruce_xiaowei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值