Skip to main content
Glama
Lain-k

a-share-financial-research

by Lain-k

基于 Hermes 的 A 股金融投研 Agent

基于 Hermes Agent 运行时MCP 协议构建的 A 股投研 Agent:将行情、新闻、技术分析、组合风控、回测与模拟交易能力封装为 11 个可组合的 MCP 工具,Agent 自主规划研究步骤并调用工具,输出带数据来源与计算依据的结构化研究报告,支持个股研究、行业分析与持仓复盘三类工作流。

本项目仅用于研究与模拟交易(纸面交易),不连接真实券商账户,不构成投资建议。

这是什么 / Hermes 负责什么

技术边界(Hermes 不做金融计算,本项目不绑定任何 LLM):

用户投研问题
    ↓
Hermes Agent 运行时          ← 理解问题、规划步骤、选择工具、组织答案
    ↓  MCP (stdio / HTTP)
金融工具服务(本项目)        ← 行情、新闻、指标、风控、回测、模拟交易
    ↓
AKShare / TrendRadar / 腾讯·东财行情接口 / SQLite
  • Hermes 侧:加载 agent/system_prompt.md 与三个 Skill(agent/skills/),通过 MCP 调用工具(接入配置见 agent/hermes_mcp.example.json.md

  • 工具侧stock_simulator/agent_tools/ 的 11 个核心工具,全部返回统一响应包 {success, data, sources, as_of, warnings},每次调用写入 SQLite 可复查

Related MCP server: cn-financial-mcp

11 个核心工具

分组

工具

说明

数据获取

get_stock_quote / get_price_history

最近行情(含时间戳)/ 历史 K 线与区间统计

get_finance_news / get_sector_performance / get_market_regime

相关新闻 / 板块表现 / 市场环境判定

投研分析

screen_stocks / analyze_stock_signals

多因子选股 / 技术指标与规则信号(附计算依据)

analyze_news_impact / evaluate_portfolio_risk

新闻事件影响(附判断依据)/ 组合风险体检

执行验证

run_backtest / execute_paper_trade

历史回测 / 模拟交易(须用户确认)

证据链:每个数值可追溯到提供方(provider)、交易日(trade_date)与抓取时间(retrieved_at);新闻记录含标题/时间/原始来源/链接/抓取时间/情感判断与判断依据(关键词命中)。

交易风控(fail-closed):查询与分析允许降级(离线回退演示数据并标注);交易保守失败——价格缺失/时间戳不可证明/行业信息缺失/风控检查异常/账户数据异常时拒绝执行,且必须 user_confirmed=true(研究建议 ≠ 自动下单)。

快速开始

需要 Python 3.11+。

python -m venv .venv && source .venv/bin/activate   # Windows: .\.venv\Scripts\Activate
pip install -r requirements.txt
cp .env.example .env                                  # 可不修改,全部有默认值

一条离线演示命令(无需网络、无需 LLM 密钥,使用 data/demo/ 内置演示数据):

python -m stock_simulator.demo --offline

依次调用 get_stock_quote → get_price_history → get_finance_news → analyze_news_impact → analyze_stock_signals → get_market_regime → evaluate_portfolio_risk → run_backtest,生成:

启动 MCP 服务(供 Hermes 调用)

python -m stock_simulator.mcp_server                  # stdio(默认)
# STOCK_SIM_MCP_TRANSPORT=streamable-http python -m stock_simulator.mcp_server

运行测试与评测

python -m unittest discover -s tests    # 15 项离线测试(含风控 fail-closed 用例)
python evals/run_evals.py               # 24 条评测:工具选择/参数契约/计算口径/引用完整性/异常降级

三个演示问题(对应三个 Skill)

# Skill 1 · 个股研究(验收场景)
python -m stock_simulator.demo --offline --skill stock --stock 600519
#   「分析贵州茅台最近的行情、相关新闻和技术信号,判断其主要风险,并给出研究结论。」

# Skill 2 · 行业研究
python -m stock_simulator.demo --offline --skill sector --sector 半导体
#   「分析近期 A 股半导体行业表现,并筛选三只值得进一步研究的股票。」

# Skill 3 · 持仓复盘
python -m stock_simulator.demo --offline --skill portfolio --account demo
#   「复盘当前账户风险,并提出调整建议。」(演示账户含行业集中度超限等真实风控触发)

联网时去掉 --offline 即使用实时数据(腾讯/东财行情、TrendRadar 新闻、AKShare 回退)。产出的另两份示例报告:examples/sector_report.mdexamples/portfolio_report.md

Hermes 接入

配置片段(完整说明见 agent/hermes_mcp.example.json.md):

{
  "mcpServers": {
    "a-share-financial-research": {
      "command": "python",
      "args": ["-m", "stock_simulator.mcp_server"],
      "cwd": "/path/to/a-share-agent-trading-simulator"
    }
  }
}

系统提示词 agent/system_prompt.md 约定 Agent 行为:不编造缺失数据、区分事实/计算/判断、每项结论引用来源、数据源失败明说、结论不作投资承诺、交易必须确认。所有工具调用(含参数与返回来源)记录在主库 agent_tool_calls 表,支持事后复查。

数据来源与能力边界

数据

在线来源

离线回退

实时行情/K线

腾讯行情、东方财富(自动回退切换)

data/demo/ 演示数据(provider=demo,warnings 显式标注)

财经新闻

TrendRadar 本地库 → akshare

演示新闻(含情感判断依据)

行业/指数

东方财富板块与指数接口

演示板块/指数数据

持仓/成交/决策

SQLite(data/ 目录,路径可用环境变量覆盖)

  • 无 LLM 密钥时:全部能力可用。新闻情感与事件影响为关键词规则计算(附命中词依据),非模型判断;工具层不调用任何 LLM。

  • 无网络时:研究/演示/评测可完整运行(演示数据);模拟交易保守拒绝(无法证明行情时效)。

  • 演示数据由 scripts/build_demo_data.py 固定种子生成,仅用于演示与测试,不可作真实投资参考。

项目结构

agent/                     Agent 定义(提示词 / 三个 Skill / Hermes 接入示例)
stock_simulator/
  agent_tools/             11 个 MCP 工具实现(与传输层解耦,可离线测试)
  mcp_server.py            MCP 服务入口(stdio/sse/http)
  demo.py                  离线/在线演示(生成报告与调用轨迹)
  agents/ eqlib/ strategies/ core/ utils/   交易模拟与回测内核(既有能力)
  paths.py config.py       统一路径与环境变量(.env)
evals/                     评测集(cases.json + run_evals.py)
examples/                  演示产物(研究报告 / 工具调用轨迹)
data/demo/                 内置演示数据(固定种子生成)
tests/                     离线测试(unittest)
scripts/                   维护脚本(演示数据生成、盘前选股)

更详细的系统设计见 design_doc.mddocs/

风险声明

本项目为研究用途的模拟交易系统:历史回测不预示未来收益;技术信号与新闻影响判断均为规则计算;离线演示数据不可作为投资参考;本项目不构成任何投资建议。

开源协议

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that wraps SFC financial data API into 32 tools for comprehensive A-share market data, including real-time quotes, rankings, limit-up statistics, news, themes, financials, charts, research reports, and watchlists.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides access to Chinese mainland financial data including A-stock quotes, financial statements, industry analysis, and macroeconomics through 42 MCP tools, with automatic data source fallback and no API key required.
    40
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 11 MCP tools for querying A-share market data, financial reports, stock screening, hot topics, self-selected stocks, and LOF arbitrage using natural language, powered by East Money / Miaoxiang APIs.
    MIT