goldRush-专门分析黄金的投资理财agent

前置条件

  • Node.js >= 20
  • opencode CLI 已安装且可用(opencode run 能正常调用)
  • (可选)Exa API Key --- 用于英文金融数据搜索

安装

复制代码
git clone <repo-url> && cd goldRush
npm install
npm run build

配置(可选)

复制代码
export EXA_API_KEY=your_exa_api_key_here
cp .env.example .env

运行

复制代码
node dist/index.js price          # 实时金价
node dist/index.js analysis        # 综合分析报告
node dist/index.js analysis -H short  # 只看短期
node dist/index.js analysis -H mid    # 只看中长期
node dist/index.js fund           # 基金对比
node dist/index.js calibrate      # 回测校准
node dist/index.js history        # 历史数据

命令一览

命令 说明 优先级
goldrush price 实时金价速查,自动存 SQLite P0
goldrush analysis 综合分析报告(四维度+反驳+情景+双轨策略) P1
goldrush analysis -H short 仅短期视角(日线/入场止损) P1
goldrush analysis -H mid 仅中长期视角(周线/定投加减仓) P1
goldrush analysis --json JSON 格式输出 P1
goldrush analysis --save 保存报告到文件 P1
goldrush fund 黄金基金对比(费率/溢价/定投信号) P1
goldrush calibrate 回测校准(历史准确率统计) P1
goldrush calibrate --days 90 回顾 90 天 P1
goldrush snapshot 手动保存当日数据快照 P1
goldrush init-history 首次拉取历史数据 P1
goldrush history 查看历史金价 P1
goldrush history --type reports 查看历史分析报告 P1

架构

复制代码
用户 CLI 命令
    │
    ▼
Commander.js (命令路由)
    │
    ▼
Orchestrator (编排层)
    │
    ├──→ 数据采集 Agent (deepseek-v4-flash)
    │     双引擎搜索: Exa API + opencode websearch
    │     交叉验证 + 来源分级 (A/B/C)
    │
    ├──→ 四维度分析 (glm-5.1 × 4)
    │     ├── 技术面 (本地计算 MA/RSI/MACD + LLM 解读)
    │     ├── 基本面 (美元/美债/美联储)
    │     ├── 情绪面 (央行购金/CFTC/VIX/地缘)
    │     └── 基金面 (费率/溢价/估值水位)
    │
    ├──→ 强制反驳 Agent (glm-5.1, 独立 session)
    │     专门找看空论据,客观指标判定反驳强度
    │     评分修正: weak=10% / moderate=20% / strong=35%
    │
    └──→ 综合编排 Agent (glm-5.1)
          注入校准上下文 + 三情景分析 + 尾部风险
          输出双轨策略: 短期入场止损 + 中长期定投加减仓

核心设计

双引擎搜索

数据类型 搜索引擎 原因
国际金价 XAU/USD 双搜 交叉验证
COMEX/美联储/美债 Exa 英文金融数据更准
上海金/ETF/基金 opencode 中文数据源覆盖好
央行购金/地缘风险 双搜 中英文视角互补

信息可靠性五道防线

  1. 来源分级 --- A级(交易所/央行) > B级(财经媒体) > C级(自媒体)
  2. 3源交叉验证 --- 同一数据至少3个独立来源
  3. 中英文双搜 --- 避免单一信息茧房
  4. 反向核查 --- 重大新闻必须搜反对观点
  5. 时效标注 --- 每个数据标注获取时间和来源

强制反驳机制

正常分析天然偏乐观。强制反驳 Agent 独立运行,专门找看空论据:

复制代码
四维度分析 → 初步评分 70 分
    ↓
反驳 Agent (看不到综合评分,避免锚定)
    ↓
看空力度 42/100,反驳强度 moderate
    ↓
评分修正: 70 → 64 (下调 6 分)
    ↓
最终输出: 64 分 + 反驳摘要 + 尾部风险

双视角输出

维度 短期 中长期
时间框架 日线/小时线 周线/月线
持仓周期 数天~2周 1~6个月
推荐品种 518880 场内ETF 000216/002610 联接基金
策略核心 入场点位、止盈止损 定投节奏、加减仓
风控方式 固定止损 3-5% 估值止盈、仓位管理

回测校准闭环

每次分析自动存档到 SQLite,goldrush calibrate 对比历史研判 vs 实际走势:

复制代码
评分区间  样本  实际涨概率  平均涨幅  偏差
60-70     12    58%       +0.3%    偏乐观8%
70-80     18    67%       +0.8%    校准良好
80-90      8    75%       +1.2%    偏保守
90-100     2    50%      -0.1%    严重偏乐观!

校准数据自动注入综合编排 prompt,让评分有统计意义。


本地数据存储

SQLite 数据库自动创建在 data/goldrush.db,5 张表:

用途
gold_prices 每日金价快照(伦敦金/上海金/ETF/美元/美债)
fund_nav 基金净值快照(000216/002610 等)
analysis_reports 分析报告存档(含完整 JSON)
scenario_features 市场特征向量(用于历史模式匹配)
search_cache 搜索缓存(5分钟内免重复请求)

技术指标

本地计算,100% 客观,不依赖 LLM:

指标 实现 用途
MA5/MA20/MA60 src/indicators/ma.ts 均线趋势、金叉死叉
RSI(14) src/indicators/rsi.ts 超买超卖信号
MACD src/indicators/macd.ts 动量方向、金叉死叉
布林带 src/indicators/bollinger.ts 波动区间、%B
历史百分位 src/indicators/percentile.ts 估值水位判断

数据积累 20 天后技术指标自动生效。


项目结构

复制代码
goldRush/
├── src/
│   ├── index.ts                   # CLI 入口 (Commander.js)
│   ├── commands/
│   │   ├── price.ts               # 实时金价
│   │   ├── analysis.ts            # 综合分析报告
│   │   ├── fund.ts                # 基金对比
│   │   ├── calibrate.ts           # 回测校准
│   │   ├── snapshot.ts            # 数据快照
│   │   └── history.ts             # 历史数据
│   ├── agents/
│   │   ├── base.ts                # Agent 基类 (opencode CLI)
│   │   ├── data-collector.ts      # 数据采集 + 双引擎搜索
│   │   ├── validator.ts           # 信息验证 + 来源分级
│   │   ├── analysis-agents.ts     # 四维度 Agent
│   │   ├── rebuttal.ts            # 强制反驳 Agent
│   │   └── orchestrator.ts        # 综合编排 Agent
│   ├── data/
│   │   ├── exa-client.ts          # Exa API 封装
│   │   ├── opencode-search.ts     # opencode 搜索封装
│   │   └── search-router.ts       # 搜索路由器
│   ├── db/                        # SQLite CRUD (7 文件)
│   ├── indicators/                # 技术指标 (5 文件)
│   ├── types/                     # TypeScript 类型
│   └── utils/                     # 工具函数
├── data/goldrush.db               # SQLite (自动创建)
├── package.json
├── tsconfig.json
└── goldrush.config.json           # 运行配置

技术栈

组件 选型 原因
语言 TypeScript 类型安全
CLI Commander.js 成熟稳定
LLM opencode CLI Go 套餐 $10/月封顶
搜索(英文) Exa API 金融分类、highlights 压缩
搜索(中文) opencode websearch 中文数据源覆盖好
数据库 SQLite (better-sqlite3) 零配置、本地
终端输出 chalk + cli-table3 表格+颜色

开发

复制代码
npm run dev -- price      # 开发模式
npm run build             # 编译
npm run lint              # 类型检查

注意事项

  • 本工具仅供投资研究参考,不构成投资建议
  • LLM 分析存在固有局限,请结合自身判断
  • Exa API 免费额度 1000 次/月,每次 analysis 约消耗 8-12 次
相关推荐
鹏易灵1 小时前
C++——2.常量与 const、constexpr 初识详解
java·开发语言·c++
qq_452396231 小时前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
神仙别闹2 小时前
基于C++ 实现 BP 神经网络
开发语言·c++·神经网络
张某布响丸辣2 小时前
Spring AI 极简入门:Java 开发者快速上手 AI 开发
java·人工智能·spring·springai
java1234_小锋2 小时前
请描述 Spring Boot 的启动流程,包括 SpringApplication 的初始化和 run 方法的核心步骤。
java·数据库·spring boot
疯狂成瘾者2 小时前
Java 集合 LinkedList 详解:链表结构、常用方法和队列使用
java·开发语言·链表
云梦泽࿐้2 小时前
变量与数据类型:Python世界的基石
开发语言·python
QK_002 小时前
C语言 static 关键字三大作用
c语言·开发语言