- 显示:
- 31
- 等级:
- 已发布:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
Stormbreaker ADX 是一款 MetaTrader 5 专家顾问,它将 Supertrend 的趋势方向与 ADX 的强度以及 +DI/−DI 的方向关系相结合。该策略基于已收盘的K线评估交易信号,根据固定的权益风险预算确定仓位规模,并设置基于 ATR 的止损位。
可下载的源代码仅供学习、测试和修改之用。该专家顾问不保证获利;在考虑实际交易前,请使用您的经纪商数据和合约规格进行测试。

图 1. 在新信号时间周期的K线开盘时,系统会依次评估入场过滤条件。
1. 策略概述
默认信号时间周期为H4。在每个新的H4K线形成时,EA会读取前一根已完成的K线(向后移1),根据ATR计算自定义的Supertrend指标,并读取ADX、+DI、−DI和ATR的数值。 仅当“超级趋势”的方向与趋势方向一致,且ADX达到入场阈值时,才考虑进行交易。
| 组件 | 默认 | 用途 |
|---|---|---|
| 信号时间周期 | H4 | 信号评估时间周期;每出现一个新K线,系统会检查一次入场点。 |
| 超级趋势 | ATR 10,系数 3.0 | 定义当前趋势方向。 |
| ADX / DMI | ADX 14;入场阈值 23 | 用于筛选趋势强度,并通过+DI和−DI确认趋势方向。 |
| 平仓强度阈值 | ADX 低于 18 | 当趋势强度减弱至低于平仓水平时,平仓已管理头寸。 |
| 初始止损 | 2 × ATR(10) | 从已完成的信号K线收盘价开始设置止损,然后根据经纪商的价格规则进行调整。 |
| 风险预算 | 当前净值的 0.5% | 根据当前入场报价与止损位之间的预计亏损计算交易量。 |
| 止盈 | 无 | 没有固定的止盈目标;平仓依据信号/强度或止损位决定。 |
2. 进场与离场规则
| 操作 | 条件 |
|---|---|
| 开仓买入 | 允许开多;Supertrend呈看涨趋势;ADX ≥ 23;+DI > −DI。 |
| 开仓做空 | 允许开仓做空;Supertrend呈看跌趋势;ADX ≥ 23;−DI > +DI。 |
| 平仓 | ADX < 18,或Supertrend方向与持仓方向相反。出现相反的符合条件信号时,也将平仓或反向操作该受管仓位。 |
当EA检测到与配置的交易品种和魔术号匹配的现有头寸时,不会对同方向头寸加仓。止损单无论是否根据信号平仓,均保持有效。
3. 基于风险的交易量计算
在发送订单之前,Stormbreaker 会使用 OrderCalcProfit 功能,根据当前的买入/卖出入场报价至预设止损位,估算 1 手头寸的潜在亏损 。它将 0.5% 的权益风险预算除以该估算的 1 手亏损,然后将交易量向下取整至经纪商允许的最小交易单位,并应用最大交易量上限。 它还会检查可用保证金。如果允许的最小手数会超出风险预算,或者保证金不足,该EA将跳过该笔交易。
double risk_cash = AccountInfoDouble(ACCOUNT_EQUITY) * 0.5 / 100.0; double one_lot_loss = MathAbs(one_lot_profit); double volume = MathFloor((risk_cash / one_lot_loss) / volume_step) * volume_step; volume = MathMin(volume, MaxVolume);
为便于说明,此处摘录内容已简化。 完整源代码包含对无效价格、报价/成交量一致性、经纪商止损距离及保证金的校验。由于止损位基于前一根K线收盘价计算,而仓位大小则采用当前入场报价,因此滑点/跳空及成交成本可能导致实际亏损与0.5%存在偏差。此为风险目标,并非保证的最大亏损。

图 2. 止损位基于 ATR 计算;该 EA 没有固定的获利目标。
4. 输入参数与默认值
| 输入参数 | 默认值 | 含义 |
|---|---|---|
| SignalTimeframe | PERIOD_H4 | 用于生成信号的时间周期。 |
| 超级趋势因子 | 3.0 | Supertrend 使用的 ATR 乘数。 |
| SupertrendATR周期 | 10 | Supertrend及初始止损的ATR周期。 |
| ADX周期 | 14 | ADX/DMI的计算周期。 |
| 入场ADX | 23.0 | 新入场所需的最低ADX值。 |
| 平仓ADX | 18.0 | 当ADX低于该水平时,将平仓。 |
| 止损ATR倍数 | 2.0 | 用于初始止损的ATR倍数。 |
| 最大成交量 | 100.0 | 手数的上限;实际交易品种的限额仍适用。 |
| 偏差点数 | 20 | 传递给交易请求的最大价格偏差,单位为点。 |
| EnableBuy / EnableSell | true / true | 启用或禁用每个方向。 |
| MagicNumber | 51003 | 用于定位EA管理头寸的标识符。 |
0.5%的风险比例目前是源代码中的固定常量,并非用户输入的参数。
5. MQL5 信号代码示例
以下代码片段展示了该EA使用的收盘柱入场条件:bool long_signal = EnableBuy && direction < 0 && adx >= EntryADX && plus_di > minus_di; bool short_signal = EnableSell && direction > 0 && adx >= EntryADX && minus_di > plus_di; if(long_signal) STOpenPosition(true, bar.close - StopATRMultiple * atr, 0.0, MagicNumber, "ST ADX long", MaxVolume, DeviationPoints); else if(short_signal) STOpenPosition(false, bar.close + StopATRMultiple * atr, 0.0, MagicNumber, "ST ADX short", MaxVolume, DeviationPoints); else if(position != 0 && (adx < ExitADX || (position > 0 && direction > 0) || (position < 0 && direction < 0))) STClosePosition(MagicNumber);
在完整的EA中,这些条件仅在检测到新的信号时间周期K线,并成功获取前一根已收盘K线及指标值后才会执行。
6. 经纪商回测快照
以下图表摘自随附的MetaTrader 5策略测试器针对XAGUSD H4周期生成的报告。由于初始入金金额不同,因此除净收益外还显示了净回报。 tick数据历史的质量也各不相同,其中Fusion Markets的数据尤其有限。| 经纪商 | 周期结束 | 初始入金 | 净利润 | 净回报率 | 最大权益回撤 | 盈利因子 | 夏普比率 | 交易次数 | 实际报价 |
|---|---|---|---|---|---|---|---|---|---|
| IC Markets | 2026年9月23日 | 1,000,000 美元 | 154,482.51 美元 | 15.45% | 19.40% | 1.12 | 0.50 | 520 | 32% |
| BlackBull Markets | 2026年9月24日 | 1,000,000 美元 | 225,766.54 美元 | 22.58% | 5.00% | 1.45 | 1.00 | 196 | 41% |
| Fusion Markets | 2026年9月23日 | 100,000 美元 | 26,680.57 美元 | 26.68% | 8.97% | 1.26 | 2.22 | 374 | 4% |

7. 兼容性与实际应用
- 交易平台:MetaTrader 5;源代码语言:MQL5。
- 将EA附加到要交易的交易品种图表上;信号时间周期由SignalTimeframe参数确定。
- 无需外部自定义指标文件。源代码使用标准的 Trade\Trade.mqh 库以及内置的 ATR/ADX 数据。
- 为每个EA实例使用唯一的魔术号码。在净额结算账户(该类账户会合并头寸)上,请避免在同一交易品种上运行其他策略或进行手动交易。
- 请先在策略测试器及模拟账户中测试经纪商特定的最小交易量、点值、止损距离和保证金要求。
风险提示: 自动交易涉及重大风险。在跳空或市场波动剧烈的情况下,止损无法保证平仓价格。回测、模拟交易和历史结果均不能保证未来结果。您有责任在使用前评估该EA及其设置。
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/77718
Turtle Breakout Indicator Tested on Gold: Profitable in 2025 and 2026 (70)
黄金市场的“龟式”唐奇安突破策略,随后采用三种止盈方式同时执行:ATR追踪止损、龟式止盈通道以及固定目标价。该策略在2025年和2026年的XAUUSD H1和H4图表上进行了回测,结果显示全部十二种组合均获利。 该策略不回绘,并为专家顾问(EA)预留了缓冲区。
ATS Confirmed Swings - non-repainting swing highs and lows
只有在N根已收盘K线确认后,才会标记波段高点和低点,因此绘制的波段线不会移动或消失。
ImpulseCandle - impulse bar marker with ATR body filter and volume confirmation
标记推动力K线:实体长度至少为ATR乘以系数,实体长度至少占K线波动范围的设定比例,收盘价接近极值,可选的 tick 量确认。看涨推动力K线下方显示绿色箭头,看跌推动力K线上方显示红色箭头。 仅显示已收盘K线,不重绘。信号存储在两个缓冲区中,因此专家顾问可通过iCustom读取这些信号。
PropGuard 1.02 - account risk manager for prop firm accounts
针对自营交易公司账户的账户级保护机制。该机制会监控账户中的每笔头寸,在达到每日或最大亏损限额时平仓所有头寸,限制每笔头寸的风险金额,平仓未设置止损的交易,并在重大消息发布时平仓所有头寸。