EA-60961 · 趋势跟踪

TuyulUncensored

该EA利用ZigZag指标摆动点结合快慢EMA交叉判断趋势方向,然后在最近ZigZag波动的57%斐波那契回撤位挂限价单。未成交的挂单会在可配置的K线数量后自动删除,并包含星期几的交易过滤功能。

打开交互版(权益曲线、切换品种)

基本信息

风险中等
爆仓风险低
评分★★☆☆☆
类型交易型 EA
周期M15, H1, H4
指标ZigZag, EMA
作者zvickyhac

回测结果(H1,约 1 年)

品种盈亏年化最大回撤交易数胜率夏普恢复因子最长连亏每笔期望状态
EURUSD+0.97%+0.84%1.71%10.00%————交易太少
GBPUSD+0.83%+0.72%2.06%10.00%————交易太少
USDJPY+0.72%+0.63%2.07%10.00%————交易太少
XAUUSD+0.28%+0.23%49.46%10.00%————交易太少

由 MQL5 自动转换为 Python,所有 EA 使用同一套规则回测:按 MT5 手数计仓(外汇每手 10 万单位、黄金每手 100 盎司),1:100 杠杆,同一时间只有一张挂单,净值跌破初始资金 10% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。

爆仓风险: 未发现爆仓模式

代码里没有发现常见的爆仓模式,回测中账户也没有爆仓。但这不是保证,任何 EA 都可能亏钱。

高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →

策略分析

策略概念基于ZigZag摆动点与EMA趋势方向结合的斐波那契回撤入场。当快EMA在慢EMA之上且ZigZag出现新高点时,在57%回撤位挂Buy Limit单;当快EMA在慢EMA之下且ZigZag出现新低点时,在57%回撤位挂Sell Limit单。止损设在ZigZag极值点(买单止损在低点,卖单止损在高点),止盈为止损距离乘以TPFromSLMultiplier倍数。仓位管理使用固定手数InitialLot,无加仓或减仓逻辑。资金管理通过CheckMargin函数检查可用保证金是否充足,并在PendingOrders中验证手数符合经纪商的最小/最大/步长限制。挂单在WaitNewSignalZigZagBarCount根K线后若未成交则自动删除,等待下一个信号。

优势

  • 策略逻辑清晰,结合趋势判断(EMA交叉)与关键回撤位(斐波那契57%)入场,具有较高的盈亏比设计
  • 包含完整的止损止盈逻辑,止损设在ZigZag极值点具有技术依据,止盈通过倍数关系保证正期望
  • 实现了挂单超时删除机制,避免过期信号导致不利入场,同时包含交易日过滤和保证金检查
  • 使用限价单而非市价单入场,寻求更优的入场价格,符合趋势回撤交易理念

劣势

  • GetLastZigZagPoints函数逻辑混乱:前半部分从索引5开始搜索并设置lastZigZagHigh/Low,后半部分又从索引0遍历覆盖了前面的结果,导致前半部分代码完全无效
  • 仅允许同时持有一个仓位(PositionSelect检查),且不区分EA实例,在多品种运行时会互相干扰
  • BreakoutDistancePips参数已声明但未使用,属于冗余代码;变量命名混用印尼语和英语,可读性差
  • 没有点差过滤、滑点保护或市场波动率检查,在高波动或大点差环境下可能产生不利成交
  • onTick中使用TimeCurrent()==lastCheck限制每秒仅执行一次,但新K线检测应使用Bars或iBars来判断而非时间戳

改进建议

  • 修复GetLastZigZagPoints函数:移除重复遍历逻辑,明确区分最近和前一个ZigZag点的获取,确保prevZigZagHigh/Low正确更新
  • 添加点差过滤和波动率检查(如ATR),避免在大点差或极端波动时入场;使用IsNewBar函数替代当前的时间戳判断方式
  • 移除未使用的BreakoutDistancePips参数,统一变量命名为英语,添加对多实例运行的支持(通过MagicNumber和Symbol组合过滤)
  • 增加追踪止损或移动止盈功能以保护浮盈,同时添加最大回撤限制和每日亏损限制等资金管理保护机制

风险评估

总体风险: 中等

  • GetLastZigZagPoints函数存在逻辑缺陷,可能导致错误的ZigZag点位识别从而在错误位置挂单
  • 没有点差过滤,大点差环境下限价单可能在不利价格成交
  • 单一持仓限制且使用PositionSelect(_Symbol)不考虑MagicNumber,可能与其他EA冲突
  • 固定手数无动态调整,没有最大回撤或连续亏损保护机制

评估得分

代码质量2.0
策略逻辑3.0
风险管理3.0
稳健性2.0
创新性2.0
文档1.0
综合2.2

参数

参数默认值说明
MagicNumber9291EA魔术编号,用于标识本EA的订单
InitialLot0.03初始下单手数
TPFromSLMultiplier1.2止盈与止损距离的倍数比率
ZigZagDepth12ZigZag指标深度参数
ZigZagDeviation5ZigZag指标偏差参数
ZigZagBackstep3ZigZag指标回步参数
ZigZagReadBarCount100读取ZigZag指标的K线数量
WaitNewSignalZigZagBarCount12挂单未成交后等待删除的K线数量
BreakoutDistancePips10突破距离(点数),已声明但未在策略中使用
FastEMA9快速EMA周期
FastEMAMethodMODE_EMA快速EMA计算方法
FastEMAPricePRICE_CLOSE快速EMA应用价格
SlowEMA21慢速EMA周期
SlowEMAMethodMODE_EMA慢速EMA计算方法
SlowEMAPricePRICE_CLOSE慢速EMA应用价格
AllowMondaytrue是否允许周一交易
AllowTuesdaytrue是否允许周二交易
AllowWednesdaytrue是否允许周三交易
AllowThursdaytrue是否允许周四交易
AllowFridaytrue是否允许周五交易

同类 EA:趋势跟踪

回测是历史模拟,不代表未来收益,不构成投资建议。

订阅每周 Arena 周报

每周一封邮件:排名变化、新信号和新研究。不发垃圾邮件,随时可以退订。