# akshare-stock > This skill should be used when the user asks to "个股分析报告", "分析某只 A 股", "查询个股实时行情", "查询个股历史K线", "查询估值指标", "查询资金流向", "查询财务摘要", "查询十大股东", or "查询分红数据" (focused on single-stock A-share analysis via AKShare scripts). - Author: Nie Jie - Repository: datanger/FinancialBot - Version: 20260208231335 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-08 - Source: https://github.com/datanger/FinancialBot - Web: https://mule.run/skillshub/@@datanger/FinancialBot~akshare-stock:20260208231335 --- --- name: akshare-stock description: This skill should be used when the user asks to "个股分析报告", "分析某只 A 股", "查询个股实时行情", "查询个股历史K线", "查询估值指标", "查询资金流向", "查询财务摘要", "查询十大股东", or "查询分红数据" (focused on single-stock A-share analysis via AKShare scripts). version: 0.2.0 --- # AKShare A股数据分析 Skill 提供个股级别的"一键分析/报告"与常用数据抓取封装. **重要提示**: 当前东方财富(`_em`)接口存在连接问题,本Skill已优先切换到**新浪财经**接口。如果目标是"在 AKShare 数据字典里找接口(板块/期货/基金/宏观...)",优先使用通用索引 skill: `akshare-cn-market`(先 `api_search` 分层暴露候选, 再 `ak_call` 验证)。 ## 数据源可用性状态 | 数据源 | 可用性 | 说明 | |--------|--------|------| | **新浪财经 (sina)** | ✅ 正常 | 推荐使用,板块/实时/历史数据均稳定 | | **东方财富 (em)** | ❌ 受限 | 存在ConnectionError,暂时不建议使用 | | **同花顺 (ths)** | ⚠️ 部分 | 部分接口可用,需具体测试 | **推荐做法**: 优先使用新浪财经接口,如 `stock_sector_spot(indicator='新浪行业')` ## 快速开始 ### 环境准备 ```bash pip install akshare pandas numpy pyyaml ``` ### 使用脚本 ```bash cd .claude/skills/akshare-stock/scripts # 智能投资分析(推荐) python analyze_investment.py 002475 # 实时行情 python get_realtime_quote.py 002475 # 历史K线 python get_history_kline.py 002475 --days 60 # 技术指标 python calc_technical.py 002475 # 市场总览(新浪财经接口) python get_market_overview.py # 综合分析报告 python stock_analyzer.py 002475 -o report.md ``` ## 常用入口 (按目的选) - 一键投资分析 (评分+建议): `analyze_investment.py ` - 市场总览: `get_market_overview.py` - 综合信息汇总 (更偏原始数据): `stock_analyzer.py -o report.md` - 单项查询: - 实时: `get_realtime_quote.py ` - K线: `get_history_kline.py --days 60` - 估值: `get_valuation.py ` - 资金流: `get_fund_flow.py --days 10` - 财务摘要: `get_financial.py ` - 十大股东: `get_shareholders.py ` - 分红: `get_dividend.py ` - 市场/板块总览(Sina-first): `get_market_overview.py --sector-indicator 行业` (可用: 概念/地域/新浪行业) ## 核心功能 ### 1. 智能投资分析 ```bash python analyze_investment.py 002475 ``` 自动分析: - 📊 估值分析(PE/PB/股息率) - 📈 成长性分析(营收/利润增速) - 💵 资金面分析(主力资金流向) - 📉 技术面分析(均线/MACD/RSI) - 综合评分 + 投资建议 **数据源**: 优先使用新浪财经接口,自动降级处理 ### 2. 市场总览(新浪财经) ```bash python get_market_overview.py ``` 功能: - 主要指数(上证指数、深证成指、创业板指、科创50) - 行业板块行情(49个行业板块) - 涨跌分布统计 - 热门板块排行 **特点**: 使用新浪财经 `stock_sector_spot` 接口,稳定可靠 ### 3. 技术指标 ```bash python calc_technical.py 002475 ``` 支持指标: - **MA**: 5/10/20/60日均线 - **MACD**: DIF, DEA, MACD柱 - **RSI**: 6/12/24日 - **KDJ**: K, D, J - **BOLL**: 上轨/中轨/下轨 ### 4. 数据缓存 自动缓存避免重复请求: - 实时行情:1分钟 - 日K线:1小时 - 财务数据:7天 - 股东数据:30天 ### 5. 定时任务 ```bash # 立即执行 python scheduler.py --run-now # 后台运行调度器 python scheduler.py ``` 配置 `config.yaml` 设置监控股票和执行时间。 ## 推荐接口列表(按稳定性排序) ### 板块数据(新浪财经) ```python import akshare as ak import time # 每次请求前增加延迟 time.sleep(2) # 行业板块 - 推荐 ✅ df = ak.stock_sector_spot(indicator='新浪行业') # 概念板块 - 有时不稳定 ⚠️ df = ak.stock_sector_spot(indicator='新浪概念') # 地域板块 - 有时不稳定 ⚠️ df = ak.stock_sector_spot(indicator='地域板块') ``` ### 个股数据 ```python # 实时行情 - 新浪财经 ✅ df = ak.stock_zh_a_spot_sina() # 历史K线 - 新浪财经 ✅ df = ak.stock_zh_a_hist(symbol='000001', period='daily', start_date='20240101', end_date='20241231') # 个股信息 - 东方财富 ⚠️(可能不可用) df = ak.stock_individual_info_em(symbol='000001') ``` ### 指数数据 ```python # 指数历史 - 新浪财经 ✅ df = ak.stock_zh_index_daily(symbol='sh000001') # 指数实时 - 新浪财经 ✅ df = ak.stock_zh_index_spot_sina() ``` ## 错误处理最佳实践 ```python import akshare as ak import time def safe_call(func, max_retries=3, delay=2): """带重试的安全调用""" for i in range(max_retries): try: time.sleep(delay) # 请求前延迟 return func() except Exception as e: if i == max_retries - 1: print(f"调用失败: {e}") return None time.sleep(delay * (i + 1)) # 使用示例 df = safe_call(lambda: ak.stock_sector_spot('新浪行业')) ``` ## 输出格式 所有脚本默认输出 **Markdown** 格式,可直接预览或保存: ```bash python analyze_investment.py 002475 -o 分析报告.md python get_market_overview.py -o 市场总览.md ``` ## 故障排查 ### 问题1: ConnectionError / RemoteDisconnected **原因**: 东方财富接口限流或封禁 **解决**: 使用新浪财经接口替代 ```python # ❌ 不推荐 df = ak.stock_zh_a_spot_em() # ✅ 推荐 df = ak.stock_zh_a_spot_sina() ``` ### 问题2: UnboundLocalError in stock_sector_spot **原因**: AkShare库本身bug(概念/地域板块) **解决**: 使用try-except捕获,或使用新浪行业数据 ```python try: df = ak.stock_sector_spot('新浪概念') except: df = ak.stock_sector_spot('新浪行业') # 回退到行业数据 ``` ### 问题3: 数据获取为空 **原因**: 请求频率过高被限流 **解决**: 增加请求间隔(建议2-3秒) ## 文件结构 ``` akshare-stock/ ├── SKILL.md # 本文档 ├── config.yaml # 配置文件 ├── references/ │ ├── api_reference.md # API 参考 │ └── official_docs.md # 官方文档索引 └── scripts/ ├── analyze_investment.py # 智能分析(已优化数据源) ├── calc_technical.py # 技术指标 ├── cache_manager.py # 数据缓存 ├── get_market_overview.py # 市场总览(新浪财经接口) ├── scheduler.py # 定时任务 ├── stock_analyzer.py # 综合分析 ├── get_realtime_quote.py # 实时行情 ├── get_history_kline.py # 历史K线 ├── get_valuation.py # 估值指标 ├── get_fund_flow.py # 资金流向 ├── get_financial.py # 财务数据 ├── get_shareholders.py # 股东信息 └── get_dividend.py # 分红数据 ``` ## 参考资源 - [API 参考文档](references/api_reference.md) - [AKShare 官方文档](references/official_docs.md) - **官网**: https://akshare.akfamily.xyz - **GitHub**: https://github.com/akfamily/akshare --- **更新日志**: - 2026-02-07: 增加数据源可用性说明,优先使用新浪财经接口