Skip to content

xmushan/mt5

Repository files navigation

🤖 MT5 AI 黄金交易分析面板

多智能体 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 终端 (数据源)                 │
└────────────────────────────────────────────────────┘

快速启动

1. 环境要求

  • MetaTrader 5 — 已安装并登录账户
    • 工具 → 选项 → 专家顾问 → 勾选"允许 Python 自动化交易"
  • Python 3.13C:\Users\admin\AppData\Local\Programs\Python\Python313\python.exe

2. 安装依赖

python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 配置

编辑 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 Key

4. 启动面板

python 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 的智能止损系统,后台线程轮询:

  1. Chandelier Exit — SL 锚定入场后极端价位 ± ATR×N
  2. 保本逻辑 — 浮盈达 ATR×1.5 时 SL 移至开仓价
  3. 自适应倍数 — 波动率低时紧止损,高波动时放宽
  4. 简易追踪 — 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 推送通知
  • 历史回测

⚠️ 已知问题

查看代码审查报告获取完整问题列表。

主要已知问题:

  1. API key 确认有效后再运行
  2. 启动 Web 面板前确保 MT5 终端已运行并登录
  3. 持仓监控自动启动 — 页面加载时检测到持仓即自动开启 PositionMonitor,无需手动操作
  4. 高危预警(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 — 技术分析

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages