机构调研到底靠不靠谱,我用Python量化告诉你

最近和朋友聊股票,他神秘兮兮地问我:"你觉得机构调研这事儿靠谱吗?他们真的是去挖掘潜力股,还是只是走个过场?"

我一听,来了兴趣。这问题咱不能光凭感觉瞎猜,得拿数据来说话!💡于是,我撸起袖子,打开 VS Code,准备用 Python 做一波深度分析,看看机构调研到底对股价有没有影响。


📊 机构调研对股价走势的影响分析

1. 机构调研到底是个啥?

简单来说,机构调研就是一些券商、基金、私募等大佬们,带着小本本去上市公司拜访,看看这家公司最近经营状况如何,有没有潜力。

问题是,机构调研后,股价是涨还是跌? 这是股民们最关心的事情,对吧?

常见的市场观点:

  • 有人说:"机构去调研,一般是看好才去的,股价大概率上涨!" 📈
  • 也有人说:"机构调研完,股价反而跌了,难道是出货信号?" 🤔

咱们不争论,直接用 Python 看数据!🚀


📥 2. 数据获取:用 AkShare 拿机构调研数据

💾 安装必要的库

首先,我们需要用 AkShare 获取机构调研的统计数据,同时用 Pandas 进行数据处理:

python 复制代码
# 安装依赖(如果没有安装的话)
pip install akshare pandas plotly

📡 获取机构调研数据

AkShare 是一个超强的金融数据接口库,可以直接获取机构调研数据,我们用它来看看最近哪些股票被机构调研了:

python 复制代码
import akshare as ak
import pandas as pd

# 获取最近机构调研数据
df = ak.stock_jgdy_tj_em(date="20200101")
# 把机构调研数据存放到csv文件方便后期分析
df.to_csv("jgdy.csv",index=False) 

# 查看数据结构
print(df.head())

stock_jgdy_tj_em获取机构调研数据比较慢,所以我们把获取的数据放入到csv文件,后面就直接从csv文件读取数据来分析了。

数据示例:

数据和东财官网的展示数据格式是一样的

看到这里,咱们已经成功拿到机构调研数据了!🎯 接下来,咱们看看这些股票在调研后的表现如何?


📈 3. 机构调研后,股价是涨是跌?

💹 获取股票历史数据

我们用 AkShare 获取股票历史行情数据:

python 复制代码
# 获取个股历史行情
stock_code = "000026"  # 以飞亚达行为例
stock_data = ak.stock_zh_a_hist(
    symbol=stock_code, 
    period="daily", 
    start_date="20200101", 
    end_date="20251201" ,
    adjust="qfq")

# 查看数据
print(stock_data.head())

📉 数据可视化

为了方便查看机构调研后股票到底是涨还是跌,我们用 Plotly 画个漂亮的折线图,并在机构调研的日期上标记:

python 复制代码
import akshare as ak
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import datetime

stock_code = "000333"  # 以飞亚达行为例

# 获取最近机构调研数据
# df = ak.stock_jgdy_tj_em(date="20200101")
# 把机构调研数据存放到csv文件方便后期分析
# df.to_csv("jgdy.csv",index=False) 

# stock_jgdy_tj_em 比较慢,数据获取后存本地csv 然后从csv拿数据
df = pd.read_csv("jgdy.csv")
df = df.sort_values(by="公告日期", ascending=True)  # ascending=True表示升序

# 将股票代码转换成6位字符串
df["代码"] = df["代码"].astype(str).str.zfill(6)
#  把公告日期转换成日期格式方便查找
df["公告日期"] = pd.to_datetime(df["公告日期"])

# 获取机构调用的公告日期
df_find = df[df['代码']==stock_code]
research_dates = df_find['公告日期'].to_list()

start_date = datetime.datetime.strftime(research_dates[0],"%Y%m%d") 

# 获取从机构调研公告日期开始后的股票K线数据
stock_data = ak.stock_zh_a_hist(
    symbol=stock_code, 
    period="daily", 
    start_date=start_date, 
    end_date="20251201" ,
    adjust="qfq")

#  把日期转换成日期格式方便查找
stock_data["日期"] = pd.to_datetime(stock_data["日期"])

# 开始画图
fig = px.line(stock_data, x="日期", y="收盘", title=f"{stock_code} 机构调研后股价走势")

result = stock_data[stock_data['日期'].isin(research_dates)]

highlight_dates =  result['日期'].to_list()
highlight_values = result['收盘'].to_list()
# 添加标记点
fig.add_trace(go.Scatter(x=highlight_dates, y=highlight_values, 
                         mode='markers', name='机构调研公告日期',
                         marker=dict(size=10, color='red', symbol='circle')))
fig.write_html("jgdy.html")

🎨 这样,我们就可以直观地看到,机构调研后股价是涨还是跌!

根据上面的走势图,基本上可以分析出如果股价处于低位,机构调研后大概率是会涨,如果股价处于高位,机构调研并不会让股价上涨。


📺 4. 用 Streamlit 打造可视化 Web 应用

我们还可以用 Streamlit 做个交互式数据分析工具,让大家输入股票代码,看看机构调研后的表现:

先看看最终效果:

复制下面代码然后粘贴到app.py文件中运行streamlit run app.py来运行下面代码

python 复制代码
import streamlit as st
import akshare as ak
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import datetime
import os

st.set_page_config(page_title="📈 机构调研后股价表现分析", layout="wide")
st.title("📈 机构调研后股价表现分析")
# 用户输入股票代码
stock_code = st.text_input("请输入股票代码(6位):", "000026")

jgdy_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "jgdy.csv")

if os.path.isfile(jgdy_file):
    print(f"机构调研文件存在")
else:
    with st.spinner("机构调研数据下载中,请稍候..."):
        # 获取最近机构调研数据
        df = ak.stock_jgdy_tj_em(date="20200101")
        # 把机构调研数据存放到csv文件方便后期分析
        df.to_csv(jgdy_file,index=False) 
    st.success()
    

# 读取机构调研数据
df = pd.read_csv(jgdy_file)
df = df.sort_values(by="公告日期", ascending=True)
df["代码"] = df["代码"].astype(str).str.zfill(6)
df["公告日期"] = pd.to_datetime(df["公告日期"])

# 过滤用户输入的股票代码数据
df_find = df[df['代码'] == stock_code]

if df_find.empty:
    st.warning("未找到该股票的机构调研数据,请尝试其他股票代码!")
else:
    research_dates = df_find['公告日期'].to_list()
    start_date = datetime.datetime.strftime(research_dates[0], "%Y%m%d")

    # 获取股票K线数据
    stock_data = ak.stock_zh_a_hist(
        symbol=stock_code, 
        period="daily", 
        start_date=start_date, 
        end_date=datetime.datetime.today().strftime("%Y%m%d"),
        adjust="qfq"
    )

    # 转换日期格式
    stock_data["日期"] = pd.to_datetime(stock_data["日期"])

    # 画图
    fig = px.line(stock_data, x="日期", y="收盘", title=f"{stock_code} 机构调研后股价走势")
    
    result = stock_data[stock_data['日期'].isin(research_dates)]
    highlight_dates =  result['日期'].to_list()
    highlight_values = result['收盘'].to_list()
    

    # 添加标记点
    fig.add_trace(go.Scatter(x=highlight_dates, y=highlight_values, 
                             mode='markers', name='机构调研公告日期',
                             marker=dict(size=10, color='red', symbol='circle')))

    st.plotly_chart(fig)

💡 这样,我们就可以在浏览器里,随时分析不同股票的调研影响了! 🎉


结论:机构调研到底靠不靠谱?

经过分析,我们会发现:

  • 有些股票调研后确实涨了,但有些却跌了
  • 机构调研 ≠ 必涨,但往往影响市场情绪,短期内可能有波动
  • 结合成交量、主力资金流向一起看,效果更好!

💡 机构调研数据可以作为参考,但不能作为唯一的投资依据! 🎯

如果觉得这篇文章有用,顺手点赞 + 在看,就是对花姐最大的支持! ❤️

相关推荐
嘵奇21 分钟前
Spring Boot中HTTP连接池的配置与优化实践
spring boot·后端·http
文人sec24 分钟前
接口自动化测试设计思路--设计实战
python·https·单元测试·自动化·pytest
子燕若水41 分钟前
Flask 调试的时候进入main函数两次
后端·python·flask
编程有点难41 分钟前
Python训练打卡Day23
开发语言·python
程序员爱钓鱼42 分钟前
跳转语句:break、continue、goto -《Go语言实战指南》
开发语言·后端·golang·go1.19
qq_14182697321 小时前
python通过curl访问deepseek的API调用案例
java·数据库·python
Persistence___2 小时前
SpringBoot中的拦截器
java·spring boot·后端
嘵奇2 小时前
Spring Boot 跨域问题全解:原理、解决方案与最佳实践
java·spring boot·后端
红衣小蛇妖3 小时前
Python基础学习-Day23
开发语言·python·学习
景天科技苑3 小时前
【Rust泛型】Rust泛型使用详解与应用场景
开发语言·后端·rust·泛型·rust泛型