| name | wealth-agent |
| description | 智能理财Agent技能。提供基金查询、实时估值、市场数据、黄金量化交易(策略回测/对比/信号/风控)等功能,支持 HTTP API 与 MCP 调用。 |
智能理财Agent技能
本技能目录下 references/REFERENCE.md 包含完整的 API 端点、响应示例、数据模型和配置说明,需要查具体接口参数时去读那个文件。
触发场景
基金/市场:
- 查询基金信息、净值、持仓
- 获取基金实时估值和涨跌幅
- 查询股票、ETF、指数行情
- 批量估值、分析基金涨跌原因
黄金量化交易:
- 运行策略回测(趋势跟踪/均值回归/ML预测)
- 对比多个策略的表现差异
- 当前市场环境适合什么策略
- 信号生成——"现在该交易吗?"
- 风控状态——"风险大不大?"
- Walk-Forward / CPCV / Monte Carlo 风险评估
- 特征重要性、技术分析解读
一、基金估值
分析流程
用户问基金问题时,按此步骤深入,不要只返回数据:
查基本信息 → 拿持仓 → 查重仓股行情 → 量化贡献 → 归因 → 结论
GET /api/funds/{code} — 基金基本信息
GET /api/valuation/{code} — 实时估算净值和涨跌幅
GET /api/funds/{code}/holdings — 前十大持仓
GET /api/market/stock/{code} — 逐只查重仓股行情
关键量化:
某持仓贡献 ≈ 持仓占比 × 该股涨跌幅
总估算涨跌 ≈ 各持仓贡献之和
不要只罗列"茅台跌了2%所以基金跌了",要算出具体贡献占比。
估值类型参考
| 类型 | 置信度 | 含义 |
|---|
real_time_price | 100% | ETF/LOF 直接取交易价格 |
index_based | 85% | 指数基金,跟踪指数涨跌 |
holdings_based | 60-80% | 主动型,基于前十持仓加权 |
benchmark_only | 30% | 数据不足,仅参考基准 |
注意:A 股交易时段(9:30-15:00)外估值不可用,QDII 需要等海外开盘。
二、黄金量化交易
系统面向 SHFE AU 黄金期货,核心能力和回答策略如下。
2.1 三个策略的选择
| 策略 | 逻辑 | 适合 | 不适合 |
|---|
trend_following | 双均线交叉+ATR止损 | 单边趋势行情 | 震荡市(反复假信号) |
mean_reversion | RSI+布林带 | 震荡行情 | 强趋势(会逆势亏损) |
ml_predictor | 滑动窗口ML预测 | 非线性规律 | 数据不足(< 150根bar) |
用户问"该用哪个策略?"时这样判断:
- 市场在走单边 → 趋势跟踪
- 市场在震荡 → 均值回归
- 用户想尝试 ML → 机器学习,但告知需要足够历史数据和 Walk-Forward 防过拟合
2.2 回测 — 不同需求选不同方法
| 用户问题 | 推荐 MCP/API | 要点 |
|---|
| "这策略怎么样?" | run_gold_strategy_backtest | 先跑 simple 模式看看 |
| "对比一下三个策略" | compare_gold_strategies | 一次跑完,看对比表 |
| "会不会过拟合?" | run_gold_walk_forward | 滚动训练/测试,防泄漏 |
| "要更严格的验证" | run_gold_cpcv | 组合交叉验证+PBO |
| "最大回撤风险多大?" | run_gold_monte_carlo | 95% 置信区间 |
| "换个参数试试?" | run_gold_sensitivity | 参数范围扫描 |
看回测结果抓这几个关键:
收益端:
- 年化收益率 — 能赚多少
- 夏普比率 — > 1 及格,> 2 算好
- Calmar比率 — 年化/最大回撤,> 1 说明回撤控制好
风险端:
- 最大回撤 — 最惨的时候亏多少
- VaR(95%) — 95%概率单日亏损不超过这个数
- 盈亏比 — 赚的平均/亏的平均
- 最大连亏 — 连续亏了多少次
可靠性:
- 方向准确率(DA) — 猜对方向的比例
- PBO — 越小越不容易过拟合
- Monte Carlo 夏普>1 比例 — 越高越稳健
2.3 信号生成 — "现在该交易吗?"
步骤:
generate_gold_signal → 用最新行情跑策略,出建议
get_gold_signals → 看最近历史信号是否一致
get_gold_risk_status → 检查当前风控
信号解读:
- 每个信号有
confidence(置信度)和 reason(理由),还给止损价
- ML 策略如果 R² 为负会降低置信度,要向用户说明"模型质量差,建议谨慎"
stop_loss 是程序给的风险控制价,告诉用户可以参考
风控状态解释给用户听:
| 风控告警 | 告诉用户 |
|---|
| 回撤 > 5% WARNING | "当前回撤超过警戒线" |
| 回撤 > 10% REJECT | "回撤太大,不能开新仓" |
| VaR > 5% WARNING | "仓位风险偏高" |
| VaR > 10% REJECT | "风险太高,需要减仓" |
| 波动率 ATR/价 > 5% | "市场波动异常,注意风险" |
2.4 技术分析 — "黄金走势怎么看?"
get_gold_market_data — 查当前价格、涨跌幅、技术指标
get_gold_analysis — K 线技术分析解读(RSI/MA/布林带)
告诉用户趋势所处阶段:
- MA 多头排列(短期 > 中期 > 长期)→ 上升趋势
- MA 空头排列(短期 < 中期 < 长期)→ 下降趋势
- 均线粘合 → 震荡,等方向
- RSI > 70 → 超买,注意回调
- RSI < 30 → 超卖,可能反弹
2.5 ML 策略的特别说明
用户问"ML 策略准不准?"时要解释:
- 模型质量:训练后返回
quality(poor/mediocre/good),来自 R² 和方向准确率
- 特征重要性:用
get_gold_feature_importance 看什么因子最有用(宏观还是技术)
- 数据需求:至少 150 根 bar 才能训练,太少就用 Ridge(简单模型更稳)
- Triple-Barrier 模式:不直接预测价格涨多少,而是预测"先碰止盈还是先碰止损"
- Walk-Forward 原理:在历史数据上滚动训练,每个窗口用窗口前的数据训练、窗口内的数据测试,模拟真实交易场景——没有穿越未来的问题
2.6 策略对比 — 怎么给结论
用户要对比时,不要只跑出数据丢给用户,要给出判断:
趋势跟踪:收益最高,但震荡期回撤大 → 适合现在有趋势
均值回归:稳健,收益不高但回撤小 → 适合震荡
ML 预测:盈亏波动大,要看 R² 是否为正 → 不推荐单独使用
综合建议:当前市场 [趋势/震荡/不明],建议优先考虑 [XX] 策略
三、注意事项
数据
- 持仓数据来自季报,有滞后性,影响估值精度
- 宏观指标(DXY、VIX、TIPS 等)来自 yFinance,可能为空——空时回测自动降级为纯技术特征
- SHFE AU 主力合约有换月,系统做了展期处理
免责声明
估值和回测结果仅供参考,不构成投资建议。回测基于历史数据,过去不代表未来。
四、常用参考
基金代码
| 名称 | 代码 |
|---|
| 沪深 300ETF | 510300 |
| 创业板 ETF | 159915 |
| 科创 50ETF | 588000 |
| 黄金 ETF | 518880 |
| 纳指 ETF | 513100 |
指数代码
| 名称 | 代码 |
|---|
| 沪深 300 | 000300 |
| 中证 500 | 000905 |
| 创业板指 | 399006 |
| 恒生指数 | hsi |
| 纳斯达克 | nasdaq |
| 标普 500 | sp500 |
五、故障排查
| 问题 | 原因 | 做法 |
|---|
| 估值为 null | 非交易时间 | 等开盘重试 |
| 回测收益全 0 | 数据量不够或特征全空 | 换趋势/均值策略,或拉长回测区间 |
| CPCV 报错 | 数据太少分不了组 | 改 Walk-Forward 或加数据 |
| 后端崩了 | 连接异常 | curl localhost:8000/health |
| ML 策略没信号 | 可能是 R² 为负 | 看 feature-importance 确认特征是否正常 |