使用akshare获取机构推荐池数据

使用akshare获取机构推荐池数据


1. 机构推荐池接口stock_institute_recommend简介

功能描述
该接口用于获取新浪财经的机构推荐池数据,涵盖最新投资评级、目标价、行业分类等关键指标。数据来源为专业金融机构(券商、基金等)发布的股票评级报告,反映市场主流机构对个股的价值判断。

核心参数

参数名必选说明
symbol数据类别,可选值包括:最新投资评级目标涨幅排名行业关注度等9类

输出字段

  • 股票代码、股票名称、最新评级(如“买入”、“增持”)、目标价、评级日期、行业
  • 辅助指标:综合评级、平均涨幅(反映机构预期收益)

数据价值

  • 投资信号:识别机构集中推荐的股票,捕捉市场共识
  • 行业分析:通过行业关注度指标挖掘资金偏好行业

2. 调用接口获取机构推荐池数据

步骤与代码示例

import akshare as ak
import pandas as pd

# 获取“最新投资评级”数据
df_recommend = ak.stock_institute_recommend(symbol="最新投资评级")

# 数据清洗:过滤无效值 & 按评级日期排序
df_clean = df_recommend.dropna(subset=["最新评级"])
df_clean["评级日期"] = pd.to_datetime(df_clean["评级日期"])
df_sorted = df_clean.sort_values("评级日期", ascending=False)
# df_sorted = df_recommend.sort_values("评级日期", ascending=False)

# 查看最新5条记录
print(df_sorted[["股票代码", "股票名称", "最新评级", "评级日期"]].head())
       股票代码  股票名称 最新评级       评级日期
0    600000  浦发银行   买入 2025-07-17
181  600312  平高电气   增持 2025-07-17
153  688160  步科股份   增持 2025-07-17
154  603071  物产环能   买入 2025-07-17
155  688136  科兴制药   买入 2025-07-17

3. 评级分布统计与饼图可视化

3.1 统计各评级类别数量

# 按评级类型分组计数
rating_counts = df_sorted["最新评级"].value_counts()
print(rating_counts)
最新评级
买入    5756
增持    1252
中性      54
Name: count, dtype: int64

3.2 使用Matplotlib绘制饼图

import matplotlib.pyplot as plt

# 设置中文显示(解决标签乱码)
plt.rcParams["font.sans-serif"] = ["SimHei"]  # 中文字体
plt.rcParams["axes.unicode_minus"] = False   # 修复负号显示

# 饼图参数配置
labels = rating_counts.index.tolist()
sizes = rating_counts.values
explode = (0.1, 0, 0) # 突出显示"买入"类别
colors = ["#FF9999", "#66B3FF", "#99FF99", "#FFCC99"]

# 绘制饼图
fig, ax = plt.subplots(figsize=(10, 6))
ax.pie(
    sizes,
    explode=explode,
    labels=labels,
    colors=colors,
    autopct="%1.1f%%",    # 显示百分比
    # autopct=lambda p: f'{p:.1f}%',  # 显示百分比
    shadow=True,           # 添加阴影
    startangle=90          # 起始角度
)

# 添加标题与图例
ax.set_title("机构推荐池股票评级分布", fontsize=14)
ax.legend(
    labels,
    title="评级类型",
    loc="center left",
    bbox_to_anchor=(1, 0.5)
)

# 标注总数
plt.text(-1.5, -1.2, f"总股票数: {len(df_sorted)}", fontsize=12)
plt.tight_layout()
plt.savefig("rating_pie.png", dpi=300)
plt.show()

饼图


关键注意事项

  1. 数据时效性

    • 接口数据每日更新,建议在交易日下午16:00后调用获取最新评级
    • 历史数据需结合stock_institute_recommend_detail接口补充
  2. 常见问题

    • 中文乱码:务必配置plt.rcParams字体参数(见3.2节代码)
    • 数据缺失:部分股票无机构评级,需用dropna()过滤
    • 接口限制:单次调用返回全部数据,避免高频请求(建议间隔>60秒)
  3. 扩展应用

    • 评级跟踪:结合历史数据计算评级上调/下调比例,捕捉预期变化
    • 行业对比:复用代码将indicator改为行业关注度,分析行业热度分布

完整代码依赖:akshare>=1.15.73, pandas, matplotlib。示例数据截至2025-07-17,实际运行以本地环境为准。本文仅作代码调用示例,与实际投资无关。

<think>好的,我需要帮助用户获取沪深300指数的历史数据。首先,用户提到了API和编程工具,所以我要考虑不同的方法。 首先想到的是第三方数据服务商,比如Tushare和AKShare。Tushare需要注册获取token,而AKShare是开源的,可能更方便。我需要检查它们的文档,确认是否支持沪深300指数。比如AKShare的stock_zh_index_daily接口可能适用,但用户可能需要安装库。 然后考虑券商或金融平台API,比如同花顺的接口。用户提供的引用[3]中有个URL,可能需要分析如何构造请求,比如分页参数。但这类接口可能不稳定或有权限限制。 另外,Wind和东方财富Choice是专业金融终端,但可能需要付费,适合机构用户。Python的pandas库可以配合AKShare使用,代码示例对用户有帮助,需要确保代码正确,比如替换股票代码为沪深300的代码。 还要注意数据更新频率和完整性,比如是否包含复权数据。可能的风险包括API变动或需要注册,比如Tushare的token。此外,提醒用户遵守数据使用协议,避免法律问题。 最后,生成相关问题时要覆盖不同的获取方法、处理数据、免费资源和注意事项,帮助用户全面了解。</think>### 获取沪深300指数历史数据的方法 #### 1. 通过金融数据API接口 **推荐工具**: - **Tushare**(需注册获取token): - 支持获取股票、指数、基金等历史数据 - 示例代码: ```python import tushare as ts pro = ts.pro_api('your_token') df = pro.index_daily(ts_code='000300.SH', start_date='20100101', end_date='20231231') ``` - **AKShare**(开源库): - 无需注册,直接调用接口 - 示例代码: ```python import akshare as ak df = ak.stock_zh_index_daily(symbol="sh000300") ``` - 数据包含开盘价、收盘价、成交量等字段[^4] #### 2. 券商/金融平台API - **同花顺接口**(需分析网络请求): - 引用[3]中提供的URL模板: ``` https://eq.10jqka.com.cn/hgt/data/method/historyConnectData/type/hs/page/{}/ ``` - 需通过开发者工具分析具体参数和分页逻辑 #### 3. 专业金融终端 - **Wind终端**:提供完善的沪深300历史数据,包含复权、成分股等衍生数据(需付费) - **东方财富Choice**:支持API对接,适合机构用户 #### 4. 本地数据处理建议 ```python # 使用pandas进行基础分析 import pandas as pd data = df[['trade_date','close']].set_index('trade_date') print(data.describe()) # 绘制走势图 data.close.plot(title='沪深300指数历史走势') ``` #### 注意事项 1. 接口稳定性:免费接口可能存在调用频率限制(如Tushare积分制) 2. 数据质量:需验证字段完整性(是否包含除权数据) 3. 法律合规:商业用途需获得数据授权[^1][^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Humbunklung

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

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

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

打赏作者

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

抵扣说明:

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

余额充值