RangeBreakout2
一个周期性区间突破EA,基于ATR、百分比或固定范围在定时(每周或每日)设定价格边界(高/低),当价格突破边界时开仓交易。支持多种交易模式(止损/限价/随机)、手数管理策略(固定/线性/马丁格尔/斐波那契)和可配置的止盈/止损百分比。EA在StandBy、Setup、Trade和Deal四个阶段之间循环,每笔交易完成后重置。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 高
- 亏损后加大仓位(马丁格尔)
- 没有止损,也没有移动止损
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念是基于时间周期(每周指定日期或每日指定时间)建立价格区间,等待价格突破区间边界后入场。入场条件为:当Ask价突破区间上轨时,根据交易模式决定方向——Stop模式下做多,Limit模式下做空;当Bid价跌破区间下轨时反之。出场条件依赖于设置的止盈和止损百分比,分别基于区间范围计算。仓位管理支持四种模式:固定手数、线性递增(亏损后手数线性增加)、马丁格尔(亏损后手数倍增)和斐波那契(亏损后手数按斐波那契数列递增)。资金管理通过保证金百分比控制基础手数,并使用OrderCalcMargin检查是否有足够资金开仓。区间范围可由ATR指标、价格百分比或固定点数三种方式计算,并支持范围乘数在亏损后扩大区间。
优势
- 多模式区间计算(ATR/百分比/固定)适应不同市场波动环境
- 完整的四阶段状态机设计(StandBy/Setup/Trade/Deal)逻辑清晰
- 支持多种手数管理策略,用户可根据风险偏好灵活选择
- 输入参数分组清晰,带有范围校验,防止误配置
- 可视化辅助(水平线/垂直线)方便用户理解当前区间设置
劣势
- 默认马丁格尔手数管理在连续亏损时会指数级增大仓位,存在爆仓风险
- Trade阶段为空实现,无法处理已开仓单的中间状态(如移动止损、部分平仓等)
- 随机交易模式(Random)缺乏实际策略意义,且switch语句缺少break导致case穿透
- 没有检查是否已有持仓,可能重复开仓导致风险敞口失控
- SetupCondition中的小时换算逻辑有潜在问题,hour>=23时强制归零可能跳过正确时间窗口
改进建议
- 添加持仓检查逻辑,防止在已有同方向仓位时重复开仓
- 修复CheckRandom()中switch语句缺失的break,并考虑移除Random模式或赋予其更合理的策略含义
- 在Trade阶段实现移动止损或保本止损逻辑,提升已开仓单的风险管理能力
风险评估
总体风险: 高风险
- 马丁格尔手数管理在连续亏损时仓位指数级增长,可能导致账户爆仓
- 没有持仓检查机制,可能在同一区间内重复开仓导致风险敞口失控
- CheckRandom()中switch缺少break导致case穿透,可能产生非预期的交易方向
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
Periodicity | Weekly | 周期模式:每周、每日或持续运行 |
Day | Monday | 每周模式下的交易日 |
Hour | H0 | 每日/每周模式下的设置时间 |
RangeMode | ATR | 区间计算模式:ATR、百分比或固定 |
perATR | 50 | ATR百分比(ATR模式下10-500) |
perPrice | 1 | 价格百分比(百分比模式下0.1-10) |
rangeFixed | 1000 | 固定区间点数(固定模式下10-5000) |
TradeMode | Stop | 交易模式:止损突破、限价反转或随机 |
perRange | 100 | 区间百分比(10-100),定义上下轨距中心的比例 |
perProfit | 100 | 止盈百分比(10-100),基于区间范围 |
perLoss | 100 | 止损百分比(10-100),基于区间范围 |
lotMode | Martingale | 手数管理模式:固定、线性、马丁格尔、斐波那契 |
perMargin | 10 | 保证金百分比(0.1-20) |
lotMultiplier | 2 | 马丁格尔手数倍数(1-2) |
rangeMultiplier | 1 | 亏损后区间倍数(1=禁用,1-2) |
同类 EA:突破
回测是历史模拟,不代表未来收益,不构成投资建议。