Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

这是一个基于Python与MetaTrader 5 (MT5)平台交互的、经过重构的现代化量化交易策略套件。它提供了一个清晰、可扩展的框架,用于开发、回测和运行由多个交易策略组成的投资组合。

Notifications You must be signed in to change notification settings

silencesdg/mt5_python_ea_suite

Repository files navigation

MetaTrader 5 智能交易系统 (EA套件)

基于Python的MetaTrader 5智能交易系统,通过多策略组合和动态权重管理实现自动化量化交易。

🚀 核心特性

  • 多策略组合: 集成10种量化策略,通过加权投票生成稳健交易信号
  • 动态权重管理: 根据市场状态动态调整策略权重,提升适应性
  • 完整风控体系: 追踪止损、时间退出、资金管理等多层次风险控制
  • 遗传算法优化: 自动寻找最佳策略参数和权重组合
  • 多模式运行: 支持回测、实盘交易、模拟运行三种模式
  • 架构重构: 采用依赖注入设计,提高代码可维护性和扩展性

📁 项目结构

mt5_python_ea_suite/
├── core/ # 核心组件
│ ├── data_providers.py # 数据提供者(实盘/回测/模拟)
│ ├── utils.py # 工具函数
│ └── risk/ # 风险管理模块
│ ├── position_manager.py # 持仓管理器
│ ├── market_state.py # 市场状态分析
│ └── __init__.py
├── execution/ # 执行模块
│ ├── realtime_trader.py # 实时交易器
│ ├── backtest_engine.py # 回测引擎
│ ├── dynamic_weights.py # 动态权重管理
│ └── __init__.py
├── strategies/ # 交易策略
│ ├── ma_cross.py # 均线交叉策略
│ ├── rsi.py # RSI策略
│ ├── bollinger.py # 布林带策略
│ ├── macd.py # MACD策略
│ ├── kdj.py # KDJ策略
│ ├── turtle.py # 海龟交易法则
│ ├── mean_reversion.py # 均值回归策略
│ ├── momentum_breakout.py # 动量突破策略
│ ├── daily_breakout.py # 日内突破策略
│ ├── wave_theory.py # 波浪理论策略
│ └── base_strategy.py # 策略基类
├── config.py # 配置文件
├── main.py # 主入口(优化器)
├── start_backtest.py # 回测启动脚本
├── start_realtime.py # 实时交易启动脚本
├── optimizer.py # 遗传算法优化器
├── logger.py # 日志系统
└── requirements.txt # 依赖包

🛠️ 安装与配置

环境要求

  • Python 3.7+
  • MetaTrader 5 终端
  • 网络连接

安装步骤

  1. 克隆项目

    git clone <repository-url>
    cd mt5_python_ea_suite
  2. 创建虚拟环境

    python -m venv myenv
    # Windows
    myenv\Scripts\activate
    # macOS/Linux
    source myenv/bin/activate
  3. 安装依赖

    pip install -r requirements.txt
  4. 配置MT5终端

    • 确保MT5终端已登录
    • 启用自动交易(点击"自动交易"按钮或按Ctrl+E)
    • 确保账户允许自动交易

🎯 策略说明

技术指标策略

  • 均线交叉 (MACrossStrategy): 基于快慢均线交叉的买卖信号
  • 相对强弱指数 (RSIStrategy): 使用RSI指标判断超买超卖
  • 布林带 (BollingerStrategy): 基于价格与布林带的相对位置
  • MACD策略: MACD指标的金叉死叉信号
  • KDJ策略: KDJ指标的超买超卖信号

价格行为策略

  • 海龟交易法则 (TurtleStrategy): 基于价格突破的顺势交易
  • 均值回归 (MeanReversionStrategy): 价格偏离均值时的回归交易
  • 动量突破 (MomentumBreakoutStrategy): 基于动量指标的突破信号
  • 日内突破 (DailyBreakoutStrategy): 基于日内价格区间的突破

复杂策略

  • 波浪理论 (WaveTheoryStrategy): 结合EMA、ADX、动量等多指标的趋势分析

🚦 运行模式

1. 回测模式

# 运行历史回测
python start_backtest.py

回测结果将生成:

  • backtest_trades.csv: 交易记录CSV格式
  • backtest_trades.json: 交易记录JSON格式
  • 详细的性能报告(胜率、盈亏比、最大回撤等)

2. 实时交易模式

# 启动实时交易(模拟运行)
python start_realtime.py
# 启动实盘交易(需要确认)
python start_realtime.py
# 输入 'YES' 确认实盘交易

3. 参数优化模式

# 运行遗传算法优化
python optimizer.py

优化结果将生成:

  • optimization_results_YYYYMMDD_HHMMSS.json: 详细优化结果
  • optimization_best_params_YYYYMMDD_HHMMSS.csv: 最佳参数
  • optimization_history_YYYYMMDD_HHMMSS.csv: 优化历史
  • optimization_report_YYYYMMDD_HHMMSS.txt: 优化报告

⚙️ 关键配置

交易参数

# 基础配置
SYMBOL = "XAUUSD" # 交易品种
TIMEFRAME = 1 # 时间周期(1分钟)
INITIAL_CAPITAL = 20000 # 初始资金
SPREAD = 16 # 点差
# 回测配置
BACKTEST_COUNT = 30000 # 回测数据量
BACKTEST_START_DATE = "2025-05-01"
BACKTEST_END_DATE = "2025-08-01"

风险管理

RISK_CONFIG = {
 "stop_loss_pct": -0.01, # 止损阈值(-1%)
 "take_profit_pct": 0.20, # 止盈阈值(20%)
 "profit_retracement_pct": 0.10, # 追踪止损回撤阈值(10%)
 "min_profit_for_trailing": 0.01, # 启动追踪止损的最小盈利(1%)
 "max_holding_minutes": 60, # 最大持仓时间(分钟)
 "min_profit_for_time_exit": 0.001 # 时间退出最小盈利(0.1%)
}

信号阈值

SIGNAL_THRESHOLDS = {
 "buy_threshold": 1.5, # 买入信号阈值
 "sell_threshold": -1.5 # 卖出信号阈值
}

🛡️ 风险控制

多层次风控体系

  1. 止损保护

    • 固定百分比止损
    • 追踪止损(基于盈利回撤)
    • 动态止损位调整
  2. 时间管理

    • 最大持仓时间限制
    • 盈利未达标强制平仓
    • 市场状态适应性调整
  3. 资金管理

    • 初始资金分配
    • 多空仓位资金分配
    • 动态权益更新
  4. 持仓限制

    • 最大持仓数量控制
    • 交易方向限制(多/空/双向)
    • 信号强度过滤

动态权重管理

系统根据市场状态动态调整策略权重:

  • 趋势识别: 价格突破、成交量确认、动量指标
  • 市场状态: 强趋势、弱趋势、震荡市
  • 置信度评估: 高置信度、中等置信度
  • 权重调整: 根据市场状态调整各策略权重

📊 性能监控

实时监控

  • 当前持仓状态
  • 浮动盈亏计算
  • 策略信号强度
  • 账户权益更新

历史记录

  • 交易记录CSV/JSON格式导出
  • 性能指标统计
  • 参数优化历史
  • 峰值盈利数据持久化

🔧 故障排除

常见问题

  1. MT5连接失败

    • 确保MT5终端已启动并登录
    • 检查网络连接
    • 验证MT5终端版本
  2. 自动交易被禁用

    • 点击MT5终端"自动交易"按钮
    • 按Ctrl+E快捷键
    • 检查账户权限
  3. 订单执行失败

    • 检查账户资金
    • 验证品种信息
    • 确认交易时间
  4. 数据获取失败

    • 检查日期范围设置
    • 验证MT5服务器连接
    • 调整数据量设置

日志文件

  • logs/error.log: 错误日志
  • logs/strategy.log: 策略执行日志
  • position_peaks.json: 持仓峰值数据

📈 优化建议

  1. 参数优化

    • 使用遗传算法优化策略参数
    • 定期重新优化以适应市场变化
    • 保存最佳参数组合
  2. 策略调整

    • 根据市场情况调整策略权重
    • 添加新的策略模块
    • 优化信号阈值
  3. 风险控制

    • 定期检查止损设置
    • 监控最大回撤
    • 调整资金分配比例

⚠️ 风险提示

  • 实盘交易前务必充分测试
  • 建议先使用模拟运行模式
  • 不要投入超过风险承受能力的资金
  • 定期监控系统运行状态
  • 保持策略的持续优化

📝 更新日志

v2.0 (重构版)

  • 架构重构,采用依赖注入设计
  • 新增动态权重管理模块
  • 完善风险控制体系
  • 优化持仓管理和数据持久化
  • 改进信号组合逻辑

v1.0

  • 基础多策略组合框架
  • 遗传算法参数优化
  • 回测和实时交易功能
  • 基本风险控制

🤝 贡献指南

欢迎提交Issue和Pull Request来改进系统!

📄 许可证

本项目仅供学习和研究使用,实盘交易风险自负。

About

这是一个基于Python与MetaTrader 5 (MT5)平台交互的、经过重构的现代化量化交易策略套件。它提供了一个清晰、可扩展的框架,用于开发、回测和运行由多个交易策略组成的投资组合。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /