基于技术分析的智能基金买卖辅助工具,实时分析 A 股板块走势,匹配相关基金,提供操作建议。
后续集成到 AI Agent 中使用,可参考https://github.com/opconty/laygin_skills
- 多数据源 - 自动切换东方财富、同花顺等数据源,网络不佳时自动切换
- 实时行情 - 使用 AKShare 获取 A 股行业板块实时行情数据
- 技术分析 - RSI、均线、成交量、资金流向等多维度分析
- 智能评级 - 五档评级系统(强烈推荐/推荐/观望/谨慎/回避)
- 基金匹配 - 自动关联板块对应的 ETF 和场外基金(40+ 板块,100+ 基金)
- 操作建议 - 基于分析结果生成买卖建议
- 图表导出 - 生成板块涨跌图、评级分布图、资金流向图等 4 种图表
- 报告导出 - 支持文本报告、CSV 格式导出
- 实时监控 - 定时刷新,跟踪板块变化
项目内置多数据源自动切换机制,确保数据获取的稳定性:
| 优先级 | 数据源 | 状态 | 说明 |
|---|---|---|---|
| 1 | 东方财富 | ✅ 主要 | 行业板块、概念板块实时行情 |
| 2 | 同花顺 | ✅ 备用 | 行业板块、概念板块列表 |
| 3 | 新浪财经 | 🔄 扩展 | 股票实时行情 |
| 4 | 其他 | 🔄 兜底 | 网络不可用时使用 |
智能切换策略:
- 自动尝试各数据源,按优先级获取数据
- 单数据源失败不影响整体功能
- 网络不佳时自动降级到备用数据源
确保已安装 Python 3.8 或以上版本:
python --version如未安装,请访问 python.org 下载安装。
cd fund_sector_analyzer
pip install -r requirements.txt- akshare - 开源财经数据接口(东方财富、同花顺等)
- pandas - 数据处理
- tabulate - 表格输出
- colorama - 终端彩色输出
- matplotlib - 图表生成
python main.pypython main.py --full-reportpython main.py --suggestionspython main.py --sector 半导体python main.py --watch --interval 30python main.py --output report.txtpython main.py --csv data.csvpython main.py --charts ./chartspython main.py --full-report --charts ./charts --output report.txt --csv data.csvpython main.py --top 50============================================================
基金板块分析助手
数据来源: 东方财富 API
============================================================
基金库覆盖: 40 个板块
[1/4] 正在获取板块数据...
[数据源] 尝试 eastmoney_industry...
[数据源] eastmoney_industry 获取成功,15 条记录
[2/4] 分析完成,共分析 30 个板块
[3/4] 匹配相关基金...
[4/4] 生成报告...
============================================================
基金板块详细分析报告
生成时间: 2026-06-24 11:40:00
============================================================
[推荐板块 Top 5]
============================================================
#1 半导体
评级: [强烈推荐] (得分: 80)
涨跌: +3.25% RSI: 75 趋势: [上升]
量比: 1.2 资金: +1.2 亿
买入建议:
• 趋势向上,可考虑逢低买入
• 资金净流入,主力看好
相关基金:
[ETF] 半导体 ETF (159813)
跟踪: 国证半导体芯片指数
规模: 120 亿 | 费率: 0.50%
[ETF] 半导体 ETF (512480)
跟踪: 中华半导体芯片指数
规模: 85 亿 | 费率: 0.50%
#1 新能源
评级: [强烈推荐] (得分: 80)
涨跌: +1.85% RSI: 60 趋势: [上升]
买入建议:
• 趋势向上,可考虑逢低买入
• RSI 处于合理区间,买入风险较低
[建议回避板块 Top 3]
============================================================
#X 房地产
评级: [谨慎] (得分: 30)
涨跌: -2.15% RSI: 25 趋势: [下降]
卖出建议:
• 趋势向下,建议减仓或回避
• 大幅下跌,短期可能继续走弱
------------------------------------------------------------
本报告仅供参考,不构成投资建议
数据来源:东方财富 | 更新时间:交易时段实时
------------------------------------------------------------
[导出] 文本报告: report.txt
保存成功: report.txt
[导出] CSV 报告: data.csv
保存成功: data.csv
[导出] 图表目录: ./charts
已生成: sector_comparison_20260624_114000.png
已生成: rating_distribution_20260624_114000.png
已生成: rsi_distribution_20260624_114000.png
已生成: net_flow_20260624_114000.png
| 评级 | 分数 | 含义 | 操作建议 |
|---|---|---|---|
| [强烈推荐] | 75-100 | 多头排列 + 资金流入 + 低位启动 | 逢低买入 |
| [推荐] | 60-74 | 趋势向上 + 温和放量 | 可分批建仓 |
| [观望] | 40-59 | 震荡整理,方向不明 | 持有观望 |
| [谨慎] | 25-39 | 高位滞涨 + 放量下跌 | 减仓防范 |
| [回避] | 0-24 | 空头排列 + 资金持续流出 | 回避/卖出 |
| 指标 | 说明 | 参考值 |
|---|---|---|
| 涨跌幅 | 板块当日涨跌 | >2% 强势,<-2% 弱势 |
| RSI | 相对强弱指标 | >70 超买,<30 超卖 |
| 趋势 | 基于涨跌幅判断 | 上升/下降/震荡 |
| 量比 | 成交量活跃度 | >2 放量,<0.5 缩量 |
| 资金流向 | 主力净流入/流出 | 正数流入,负数流出 |
| 综合评分 | 多维加权计算 | 75+ 强烈推荐,25- 回避 |
fund_sector_analyzer/
├── main.py # 主程序入口
├── requirements.txt # 依赖列表
├── README.md # 使用说明
├── .gitignore # Git 忽略文件
├── config/
│ ├── __init__.py
│ └── settings.py # 配置管理
├── core/
│ ├── __init__.py
│ ├── data_fetcher.py # 数据抓取模块
│ ├── data_source_manager.py # 多数据源管理器
│ ├── analyzer.py # 板块分析引擎
│ ├── fund_matcher.py # 基金匹配模块
│ ├── reporter.py # 报告生成模块
│ └── chart_generator.py # 图表生成模块
├── utils/
│ ├── __init__.py
│ └── indicators.py # 技术指标计算
├── data/
│ └── fund_library.json # 基金库
└── charts/ # 图表输出目录
编辑 data/fund_library.json 添加更多基金:
{
"新板块名": {
"name": "新板块名",
"funds": [
{
"code": "基金代码",
"name": "基金名称",
"type": "ETF/场外",
"tracker": "跟踪指数",
"scale": "规模",
"expense": "费率"
}
]
}
}在 core/data_source_manager.py 中添加新的数据源:
def _fetch_new_source(self, limit=30):
"""新数据源实现"""
try:
import akshare as ak
df = ak.some_function() # 获取数据
df = df.rename(columns={'板块名称': 'name', '涨跌幅': 'change'})
return df
except Exception as e:
print(f" [新数据源] 失败: {e}")
return None
# 在 __init__ 中添加
self._sources['new_source'] = self._fetch_new_source本工具仅用于学习研究,不构成任何投资建议。投资有风险,入市需谨慎。
感谢以下数据源提供数据支持:
- 东方财富网站
- 同花顺网站
- 新浪财经网站
- 上海证券交易所
- 深圳证券交易所
- 北京证券交易所
- 中金所、上期所、大商所、郑商所、能源中心
MIT License