多智能体 XAUUSD 实时分析 + ATR 动态止损监控
基于 FastHTML Web 面板,集成 3 个 AI Agent(技术面/新闻面/协调员)实现 XAUUSD 黄金的自动化实时分析和ATR 动态持仓监控。
┌────────────────────────────────────────────────────┐
│ FastHTML Web UI │
│ http://localhost:5010 │
├────────────────────────────────────────────────────┤
│ Orchestrator │
│ ┌────────────────┐ ┌────────────────────────┐ │
│ │ TechnicalAgent │ │ NewsAgent │ │
│ │ (Agent 1) │ │ (Agent 3) │ │
│ │ 技术指标/形态 │ │ 金十快讯/地缘分析 │ │
│ └───────┬────────┘ └───────────┬────────────┘ │
│ │ │ │
│ └───────┬───────────────┘ │
│ ▼ │
│ CoordinatorAgent (Agent 6) │
│ 综合裁决 + 实时市价入场 │
├────────────────────────────────────────────────────┤
│ PositionMonitor (后台线程) │
│ Chandelier Exit / 保本 / ATR追踪止损 │
├────────────────────────────────────────────────────┤
│ MetaTrader 5 终端 (数据源) │
└────────────────────────────────────────────────────┘
- MetaTrader 5 — 已安装并登录账户
- 工具 → 选项 → 专家顾问 → 勾选"允许 Python 自动化交易"
- Python 3.13 —
C:\Users\admin\AppData\Local\Programs\Python\Python313\python.exe
python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple编辑 config.yaml:
ai:
providers:
cheap: # 技术面/新闻面 Agent 用
model: "deepseek-v4-flash"
api_key: "sk-xxx..." # ← 填入你的 API Key
smart: # 协调员 Agent 用(更强的模型)
model: "deepseek-v4-pro"
api_key: "sk-xxx..." # ← 填入你的 API Keypython main.py打开浏览器访问 http://localhost:5010
mt5/
├── main.py # 入口:启动 FastHTML 服务器
├── config.yaml # 全局配置(MT5/新闻/AI/监控)
├── requirements.txt # Python 依赖
├── README.md
├── PLAN.md # 开发计划
├── TODO.md # 待办事项
├── GAP-ANALYSIS.md # 差距分析
├── 分析.MD # 业务分析文档
│
├── web/
│ ├── __init__.py
│ ├── app.py # FastHTML 路由 + 页面布局
│ └── components.py # UI 组件(卡片/面板/表格)
│
├── core/
│ ├── __init__.py
│ ├── mt5_service.py # MT5 连接/K线/报价/持仓/下单
│ ├── news_service.py # 金十数据三通道抓取
│ ├── risk_manager.py # ATR 动态止损/止盈/仓位计算
│ ├── position_monitor.py # 后台持仓监控线程
│ │
│ ├── agents/
│ │ ├── __init__.py # Orchestrator 编排器
│ │ ├── base.py # Agent 基类(LLM 调用/重试/JSON解析)
│ │ ├── technical_agent.py # Agent 1: 技术面分析师
│ │ ├── news_agent.py # Agent 3: 新闻/地缘分析师
│ │ └── coordinator_agent.py# Agent 6: 协调员(综合裁决)
│ │
│ └── technical/
│ ├── __init__.py # TechnicalAnalyzer 编排器
│ ├── indicators.py # 15+ 技术指标(RSI/MACD/ADX/布林/ATR...)
│ ├── patterns.py # 15+ K线形态识别
│ ├── levels.py # 支撑阻力计算(摆动/均线/斐波那契/枢轴)
│ └── statistics.py # 历史统计(ATH/回撤/波动率/月度收益)
│
└── .hermes/
└── plans/ # 开发记录
| Agent | 职责 | 数据源 | 输出 |
|---|---|---|---|
| 技术面 | 趋势/动量/波动率/关键位/形态 | MT5 H1/H4/D1 K线 | 方向判断+置信度+指标信号 |
| 新闻面 | 金十快讯/头条/地缘传导链 | 金十数据 API | 情绪得分+地缘风险+主题 |
| 协调员 | 综合裁决+市价入场 | 技术面+新闻面报告 | 最终方向/入场/止损/止盈/仓位 |
基于 ATR 的智能止损系统,后台线程轮询:
- Chandelier Exit — SL 锚定入场后极端价位 ± ATR×N
- 保本逻辑 — 浮盈达 ATR×1.5 时 SL 移至开仓价
- 自适应倍数 — 波动率低时紧止损,高波动时放宽
- 简易追踪 — SL = 当前价 ± ATR×N
| 配置项 | 说明 | 默认值 |
|---|---|---|
mt5.symbols |
交易品种 | ["XAUUSDm"] |
mt5.timeframes |
分析周期 | ["H1", "H4", "D1"] |
news.source |
新闻源 | jin10 |
ai.providers.cheap |
分析用 LLM | deepseek-v4-flash |
ai.providers.smart |
协调员用 LLM | deepseek-v4-pro |
monitor.algorithm |
止损算法 | chandelier |
monitor.atr_sl_multiplier |
ATR 止损倍数 | 2.0 |
monitor.atr_tp_multiplier |
ATR 止盈倍数 | 4.0 |
- 技术面分析引擎(15+ 指标 + 形态 + 支撑阻力)
- 金十数据新闻抓取
- AI Agent 调用链(技术面→新闻面→协调员)
- FastHTML Web 面板
- ATR 动态止损监控
- 情绪面 Agent(恐慌指数 + COT)
- 自动下单执行
- Telegram 推送通知
- 历史回测
查看代码审查报告获取完整问题列表。
主要已知问题:
- API key 确认有效后再运行
- 启动 Web 面板前确保 MT5 终端已运行并登录
- 持仓监控自动启动 — 页面加载时检测到持仓即自动开启 PositionMonitor,无需手动操作
- 高危预警(
upcoming_high_risk)未拦截入场 — 协调员会返回news_gate.upcoming_high_risk(如"美联储利率决议")和delay_if_event_within_minutes,但入场引擎的_check_news_gate()目前仅检查skip_if和新闻冷却期,未检查这两个字段。高危事件前仍可能开单。如需实现,可在_check_news_gate()中添加:upcoming_high_risk非空且预计时间在delay_if_event_within_minutes内 → 拒绝入场。
- Python 3.13 — 运行时
- MetaTrader5 — 行情/交易接口
- FastHTML — Web UI 框架
- DeepSeek API — AI Agent 推理
- 金十数据 — 实时财经新闻
- pandas / numpy / scipy — 技术分析