EA-36560 · 突破

Tungman

该EA在每个tick处放置BuyStop和SellStop挂单,形成突破式入场系统。它包含移动止损功能来管理持仓,将止损移至保本后跟踪止损。然而,TrailingStop()函数从未在OnTick()中被调用,使其完全无法运行。

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

基本信息

分类突破
风险高风险
爆仓风险低
评分★☆☆☆☆
类型交易型 EA
周期M15, H1, H4
指标None
作者Tungman

回测结果(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 都可能亏钱。

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

策略分析

策略概念是基于突破入场,在每个tick检查是否存在买单和卖单挂单,若不存在则在当前Ask价上方放置BuyStop挂单,在当前Bid价下方放置SellStop挂单,形成双向突破捕捉系统。入场条件为当前无同类型挂单且手数和资金检查通过,订单有效期为当日结束。出场条件依赖StopLoss和TakeProfit设置,以及TrailingStop函数实现保本止损和跟踪止损——但TrailingStop从未被调用。仓位管理为固定0.01手,无任何动态调整机制。资金管理通过CheckMoneyForTrade检查可用保证金是否充足,并有手数合规性验证。该EA存在严重逻辑缺陷:TrailingStop未被调用、重复的资金检查、循环索引越界(PositionsTotal和OrdersTotal应从Total-1开始)、以及第二阶段止损计算错误(bid-ValidBuy和ask+ValidSell)。

优势

  • 双向挂单设计可捕捉多空两个方向的突破行情
  • 包含资金检查和手数合规性验证,有基本的风控意识
  • 挂单有效期限制为当日,避免过夜持仓风险
  • 订单注释机制便于识别和管理自身挂单

劣势

  • TrailingStop()函数从未被调用,移动止损功能完全失效
  • 每个tick都尝试下挂单,无新bar检查,会频繁产生无效订单请求
  • 循环索引从Total开始而非Total-1,导致越界访问
  • 第二阶段跟踪止损计算错误:bid-ValidBuy和ask+ValidSell是价格减价格,结果无意义
  • 重复的资金检查代码(60-70行重复了56-64行的逻辑)
  • 固定0.01手无任何仓位优化机制

改进建议

  • 在OnTick()中调用TrailingStop()函数,使移动止损功能生效
  • 添加新bar检查机制,避免每个tick重复下单
  • 修复循环索引为i=Total-1,修复第二阶段止损计算逻辑
  • 将固定手数改为可配置参数,并考虑基于ATR或风险的动态仓位管理
  • 添加点差过滤和交易时段过滤,避免在高点差或低流动性时段交易

风险评估

总体风险: 高风险

  • 无新bar检查导致每个tick尝试下单,可能触发broker限频或产生大量无效请求
  • 移动止损功能完全失效,持仓只能靠初始止损保护
  • 双向挂单同时成交时将形成对冲持仓,加倍保证金占用且无额外风控
  • 止损计算存在数学错误,可能在跟踪阶段设置错误的止损位

评估得分

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

参数

参数默认值说明
PriceTP900止盈点数(0=不使用止盈)
PriceSL300止损点数
trailingstoppoint200跟踪止损触发点数

同类 EA:突破

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

订阅每周 Arena 周报

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