EA Framework Layout (500.mq5)
该EA是一个基于基类框架的趋势跟踪交易系统,使用多条移动平均线判断方向,配合美盘/非美盘时段过滤入场信号。出场条件依赖MA方向反转和持仓K线数阈值,加仓条件为浮盈超过当前手数的500倍对应点值。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
| 品种 | 盈亏 | 年化 | 最大回撤 | 交易数 | 胜率 | 夏普 | 恢复因子 | 最长连亏 | 每笔期望 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | 暂不支持转换 |
这个 EA 从未交易的原因:转换后没有留下任何开仓规则。
由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 未发现爆仓模式
- 没有止损,也没有移动止损
单独这一点不算典型的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略核心概念是基于多周期移动平均线方向判断趋势,通过MA_Direction函数计算MA排列方向来决定多空。入场条件方面,LongOpen和ShortOpen函数中核心的MA判断逻辑目前被注释掉,实际不产生入场信号,处于未完成状态。出场条件依赖MA方向变化(2周期偏移1根K线)与持仓方向不一致时平仓,同时要求持仓K线数达到will_close_bars阈值。加仓条件为浮盈超过lots*500时追加初始手数。仓位管理使用lot_amplifier放大手数,以2000美金回撤10%为基准。时间过滤分别设定美盘和非美盘货币活跃时段,支持小时和分钟级精度控制。整体来看,策略框架完整但核心入场逻辑尚未实现,当前状态无法实际交易。
优势
- 基于面向对象框架设计,继承EABaseFrame基类,代码结构清晰,易于扩展和维护
- 支持美盘和非美盘货币分别设定活跃时段,时间过滤精度到分钟级别,灵活性较好
- 加仓逻辑基于浮盈触发而非亏损加仓,避免了马丁格尔式的风险累积
- 使用多条MA组合判断方向,通过多次滑动窗口验证趋势,减少假信号
劣势
- 核心入场逻辑(LongOpen/ShortOpen中的IsMAEverFit调用)被注释掉,当前EA实际无法开仓交易
- CheckReverse和CheckModify函数均为空实现,逆转和止损止盈修改功能缺失
- IsInDealTime函数存在逻辑bug:第145行和第151行用小时值(hour)与分钟值(min)比较,条件判断有误
- 没有止损止盈的显式设置,仅依赖方向反转平仓,极端行情下风险不可控
- 硬编码交易品种为EURUSD,缺乏多品种适配能力
改进建议
- 修复IsInDealTime中的边界条件bug,将第145行和第151行的us_right_hour/nus_right_hour改为对应的分钟变量
- 实现LongOpen和ShortOpen中被注释的入场逻辑,并增加止损止盈的显式设置以控制单笔风险
- 取消硬编码品种,从图表自动获取当前品种以支持多品种交易
风险评估
总体风险: 中等
- 核心入场逻辑被注释掉导致无法交易,但如果取消注释运行,缺乏止损机制在极端行情下可能造成大额亏损
- 加仓条件仅基于浮盈触发,没有加仓次数限制,连续加仓可能在趋势反转时扩大亏损
- IsInDealTime时间过滤存在逻辑bug,可能导致在非预期时段开仓或错过交易窗口
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
lot_amplifier | 1 | 下单手数放大倍数,以2000美金回撤10%为基准 |
Trade_Init_Lots | 0.01 | 初始下单手数 |
Auto_Close_After_X_H1 | 4 | 持仓X小时后自动平仓 |
Is_Reverse | false | 是否逆转交易方向 |
Deal_Direction_Allow | BOTH | 允许的交易方向(多/空/双向) |
USTime_LeftBound | 2 | 美盘货币活跃时间起始(小时) |
USTime_RightBound | 23 | 美盘货币活跃时间终止(小时) |
NUSTime_LeftBound | 0 | 非美盘货币活跃时间起始(小时) |
NUSTime_RightBound | 0 | 非美盘货币活跃时间终止(小时) |
同类 EA:趋势跟踪
回测是历史模拟,不代表未来收益,不构成投资建议。