EA-30560 · 突破

RangeBreakout

该EA实现了周期性区间突破策略,在每周指定日期和时段确定价格区间中心,当价格突破计算区间时入场交易。结合ATR指标计算区间范围,并采用马丁格尔仓位恢复系统来弥补累计亏损,止盈止损基于区间大小设定。

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

基本信息

分类突破
风险危险
爆仓风险偏高
评分★★☆☆☆
类型交易型 EA
周期H1, H4, D1
指标ATR
作者Mokara

回测结果(H1,约 1 年)

品种盈亏年化最大回撤交易数胜率夏普恢复因子最长连亏每笔期望状态
EURUSD0.00%0.00%0.00%0—————暂不支持转换
GBPUSD0.00%0.00%0.00%0—————暂不支持转换
USDJPY0.00%0.00%0.00%0—————暂不支持转换
XAUUSD0.00%0.00%0.00%0—————暂不支持转换

这个 EA 从未交易的原因:转换后没有留下任何开仓规则。

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

爆仓风险: 偏高

  • 亏损后加大仓位(马丁格尔)

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

策略分析

策略概念:该EA是一种周期性区间突破策略,在用户指定的星期和小时,以前一小时的收盘价作为区间中心,结合ATR指标或价格百分比计算突破范围。入场条件:当Ask价格突破上轨(pHighStop)时开多单,当Bid价格跌破下轨(pLowStop)时开空单,每次只开一个方向的单。出场条件:通过止盈(pHighProfit/pLowProfit)和止损(pHighLoss/pLowLoss)自动平仓,止盈止损距离基于Range乘以百分比系数计算。仓位管理:采用马丁格尔系统,亏损后手数翻倍(kLot *= 2),盈利后重置为1倍手数,同时计算累计亏损补偿值(comLoss)调整止盈止损。资金管理:入场前检查自由保证金是否充足(要求大于1000*Lot),但该检查未考虑kLot倍数放大后的实际保证金需求,存在风险低估。整体策略逻辑清晰但马丁格尔机制风险极高,可能在小账户上迅速爆仓。

优势

  • 策略概念清晰,区间突破逻辑简洁明了,易于理解和调优
  • 使用ATR指标动态计算突破范围,能够自适应市场波动率变化
  • 参数输入校验完善,对所有百分比参数和周末日期都有边界检查和默认值处理
  • 仓位规范化处理到位,SetVolume函数正确处理了最小/最大手数和手数步长对齐

劣势

  • 马丁格尔系统风险极高,连续亏损时手数指数增长,极易导致账户爆仓
  • 保证金检查存在严重bug:使用1000*Lot而非1000*Lot*kLot,在马丁格尔倍增时严重低估实际保证金需求
  • 没有持仓状态同步机制,依赖PositionSelectByTicket判断平仓,在网络异常或重启后可能丢失交易状态
  • comLoss补偿机制不安全,亏损后将止盈设为comLoss值同时增大止损,导致风险收益比严重恶化
  • 缺少点差过滤,在低流动性时段突破可能因大点差而虚假触发

改进建议

  • 移除或限制马丁格尔系统,改为固定仓位或基于波动率的仓位管理(如ATR比例缩仓),避免指数级风险增长
  • 修复保证金检查bug,将1000*Lot改为1000*Lot*kLot以正确反映实际保证金需求
  • 增加持仓状态持久化机制(如全局变量或文件存储),确保EA重启或断线后能正确恢复交易状态
  • 增加点差过滤和最小波动阈值,避免低流动性时段的虚假突破信号
  • 增加最大连续亏损次数限制和最大手数上限,防止马丁格尔系统失控

风险评估

总体风险: 危险

  • 马丁格尔仓位倍增系统在连续亏损时手数指数增长,可迅速耗尽账户资金
  • 保证金检查使用基础手数而非实际倍增手数,可能允许超出账户承受能力的大额交易
  • comLoss补偿机制在亏损后扩大止损同时调整止盈,使单笔风险随亏损累积而急剧增加
  • EA无断线恢复机制,交易状态丢失后可能重复开仓或遗漏平仓
  • 双分号语法错误(return;;)虽不影响编译但暗示代码审查不足

评估得分

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

参数

参数默认值说明
inDayMONDAY每周触发设置的星期几
inHourH00每周触发设置的起始小时
inPerPrice1价格百分比(0.3%-3%),用于ATR失败时的替代区间计算
inPerATR100ATR百分比(10%-200%),用于缩放ATR值作为突破范围
inPerProfit100止盈百分比(10%-200%),基于Range计算止盈距离
inPerLoss100止损百分比(10%-200%),基于Range计算止损距离
inLot0.1基础交易手数

同类 EA:突破

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

订阅每周 Arena 周报

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