stockagent

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2026 License: MIT Imports: 1 Imported by: 0

README

stockagent

A 股 AI 投研多智能体 CLI —— 一条命令,4 位 AI 分析师并行工作,输出一份中文投资研究报告。

ai-hedge-fund 启发,但面向 A 股单二进制分发数据免 key:

ai-hedge-fund stockagent
市场 美股 A 股 (沪深)
运行时 Python 环境 Go 单二进制
行情数据 需 API key 东财/同花顺双数据源,均免 key
报告语言 英文 中文

⚠️ 免责声明: 本项目仅供学习与技术研究,所有输出均由 AI 生成,不构成任何投资建议。股市有风险,投资需谨慎。

演示

$ stockagent analyze 600519

贵州茅台 (600519) · AI 投研报告
────────────────────────────────────────────────────────
现价 1253.00  -0.48%    PE 14.37  PB 6.64  总市值 1.57万亿元
生成于 2026-07-18 12:00 · 模型 deepseek-chat · 耗时 12s

智能体          信号    置信度
技术面分析师    看多    72
基本面分析师    中性    55
消息面分析师    中性    50
风控官          看空    61

综合结论: 中性 (置信度 55)
────────────────────────────────────────────────────────
技术面均线多头排列但 RSI 偏高,估值处于历史中枢,消息面无
重大催化,波动率温和但当前位置风险收益比一般,建议观望……

关键要点:
  1. MA20/MA60 多头排列,中期趋势未破坏
  2. 动态 PE 14.4 处于白酒板块合理区间
  3. 距 52 周高点回撤约 20%,追高风险有限但动能不足

风险提示: 本报告由 AI 自动生成,仅供学习与技术研究……

(以上为演示样例输出)

工作原理

┌──────────────┐   K线/快照/公告 (东方财富/同花顺, 免 key, 并行拉取)
│  数据层       │ ──────────────────────────────────────
└──────────────┘
       │
┌──────────────┐   MA/MACD/RSI/波动率/最大回撤 (本地确定性计算)
│  指标层       │
└──────────────┘
       │
       ├─ 技术面分析师 ─┐
       ├─ 基本面分析师 ─┤   4 个 agent 并行 (errgroup)
       ├─ 消息面分析师 ─┤   各自输出 {signal, confidence, reasoning}
       └─ 风控官       ─┘
              │
       ┌──────────────┐
       │  组合经理     │  汇总分歧 → 最终结论 + 置信度 + 关键要点
       └──────────────┘
              │
     终端报告 / Markdown / JSON

设计要点:

  • 指标本地算,LLM 只做解读 —— 数值计算确定性、可单测,LLM 幻觉不污染数据
  • 降级容错 —— 公告拉取失败、单个分析师失败、组合经理 LLM 失败均不阻断流程,自动降级为本地加权聚合
  • A 股习惯 —— 红涨绿跌配色、万亿/亿元市值格式化、公告情绪分析

安装

# 方式一: 从源码安装 (Go ≥ 1.25)
git clone https://github.com/deng23yu/stockagent.git
cd stockagent && go install .

# 方式二: 下载 Release 预编译二进制 (linux / macOS / Windows)

module 路径已配置为 github.com/deng23yu/stockagent,发布后可直接 go install github.com/deng23yu/stockagent@latest

配置

只需一个 OpenAI 兼容协议的 LLM key。复制示例配置:

cp stockagent.yaml.example stockagent.yaml   # 或放 ~/.stockagent.yaml
llm:
  base_url: https://api.deepseek.com   # 任意 OpenAI 兼容端点
  api_key: sk-your-api-key
  model: deepseek-chat

已验证兼容: DeepSeek / 通义千问 / Kimi / OpenAI / Ollama (本地零成本)。 也可用环境变量: STOCKAGENT_BASE_URL / STOCKAGENT_API_KEY / STOCKAGENT_MODEL

用法

stockagent analyze 600519                          # 分析贵州茅台
stockagent analyze 600519 --source ths             # 改用同花顺数据源
stockagent analyze 300750                          # 分析宁德时代
stockagent analyze 000001 --format markdown -o report.md
stockagent analyze 600519 --format json            # 供程序消费
stockagent analyze 600519 --model deepseek-reasoner
Flag 默认 说明
--days 250 拉取的日 K 线数量
--ann 20 拉取的公告数量
--source eastmoney 行情数据源: eastmoney (东方财富) / ths (同花顺)
--format terminal terminal / markdown / json
-o, --output stdout 输出到文件
--model / --base-url / --api-key - 覆盖配置

Web UI (内嵌前端)

stockagent serve 启动后直接访问 http://127.0.0.1:8080/ —— 单页应用已内嵌进二进制,无需额外部署。

(截图待补充)

特性: Kimi 官网风浅色设计、搜索即搜即得、分析师分步加载动画、信号卡/置信度条/综合结论卡片、缓存结果徽章。 技术栈: Vite + React + TypeScript + Tailwind CSS v4,产物经 go:embed 嵌入 (源码在 web/,改动后 npm run build 并提交 web/dist)。

HTTP API (服务端模式)

stockagent serve --port 8080    # 默认监听 127.0.0.1:8080
  • GET /api/v1/analyze?code=600519&source=ths — 分析接口,返回与 --format json 一致的 JSON
  • GET /healthz — 健康检查

特性: 结果缓存 15 分钟 (--cache-ttl,重复请求毫秒级返回)、并发上限 4 (超出返回 429)、CORS 全开 (前端开发友好)。 LLM key 只存在于服务端,前端永远接触不到。

// 前端调用
fetch("/api/v1/analyze?code=600519&source=ths")
  .then(r => r.json())
  .then(report => console.log(report.final.signal, report.final.summary));

生产环境暴露: --host 0.0.0.0 并置于反向代理之后 (自行加鉴权/限流)。

开发

go test ./...            # 单元测试 + mock 端到端测试 (无需 key)
STOCKAGENT_LIVE=1 go test ./internal/eastmoney/ -run Live   # 真实接口回归

直接依赖仅 4 个: cobra / yaml.v3 / x/sync / tablewriter。

Roadmap

  • 北交所、港股/美股支持 (东财同接口延伸)
  • F10 深度基本面 (财报核心指标)
  • watch 子命令: 自选股批量分析
  • 新闻舆情 (当前为公告)
  • Homebrew tap / Scoop 分发

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
mockdemo command
mockdemo 在本地拉起 mock 的东财数据服务与 LLM 服务, 无需任何 API key 即可端到端演示 stockagent analyze 的完整流程。
mockdemo 在本地拉起 mock 的东财数据服务与 LLM 服务, 无需任何 API key 即可端到端演示 stockagent analyze 的完整流程。
internal
agent
Package agent 实现多位 AI 分析师智能体与组合经理。
Package agent 实现多位 AI 分析师智能体与组合经理。
cli
Package cli 定义 stockagent 的命令行界面。
Package cli 定义 stockagent 的命令行界面。
config
Package config 加载 stockagent 的配置文件与环境变量。
Package config 加载 stockagent 的配置文件与环境变量。
eastmoney
Package eastmoney 封装东方财富免费行情数据接口。
Package eastmoney 封装东方财富免费行情数据接口。
indicator
Package indicator 计算常用技术分析指标。
Package indicator 计算常用技术分析指标。
llm
Package llm 是一个极简的 OpenAI 兼容 Chat Completions 客户端。
Package llm 是一个极简的 OpenAI 兼容 Chat Completions 客户端。
pipeline
Package pipeline 串联完整分析流程: 数据拉取 → 指标计算 → 多智能体并行 → 组合经理汇总。
Package pipeline 串联完整分析流程: 数据拉取 → 指标计算 → 多智能体并行 → 组合经理汇总。
report
Package report 渲染投研报告 (终端 / Markdown / JSON)。
Package report 渲染投研报告 (终端 / Markdown / JSON)。
server
Package server 提供 stockagent 的 HTTP API 服务。
Package server 提供 stockagent 的 HTTP API 服务。
ths
Package ths 封装同花顺免费行情接口 (d.10jqka.com.cn)。
Package ths 封装同花顺免费行情接口 (d.10jqka.com.cn)。
Package web 内嵌前端构建产物 (web/dist)。
Package web 内嵌前端构建产物 (web/dist)。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL