EA-36713 · 动量

OpenPendingorderAfterPositionGetStopLoss

该EA使用随机指标(Stochastic)生成动量入场信号,当主线上穿或下穿其滞后值时放置Buy Stop或Sell Stop挂单。当持仓被止损平仓后,它会自动在反方向开立新的挂单,形成一个持续交易的循环。

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

基本信息

分类动量
风险需谨慎
爆仓风险低
评分★★☆☆☆
类型交易型 EA
周期M15, H1, H4
指标Stochastic
作者Tungman

回测结果(H1,约 1 年)

品种盈亏年化最大回撤交易数胜率夏普恢复因子最长连亏每笔期望状态
EURUSD-0.64%-0.56%0.80%14446.20%-1.29-0.807−$0.47可靠
GBPUSD-1.08%-0.94%1.32%14339.90%-1.77-0.8210−$0.76可靠
USDJPY-0.13%-0.12%0.47%23450.20%-0.25-0.287−$0.05可靠
XAUUSD-1.71%-1.41%13.66%15153.00%-0.15-0.129−$1.13可靠

在 4 个有可信结果的品种中,0 个盈利。

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

和同类(动量)在同一品种上有可信结果的 EA 相比:EURUSD 好于 46%(共 68 个);GBPUSD 好于 55%(共 66 个);USDJPY 好于 57%(共 68 个);XAUUSD 好于 56%(共 75 个)

按月看

品种盈利月份占比最好的月份最差的月份
EURUSD46%+0.08% 2026-09-0.29% 2026-02
GBPUSD23%+0.27% 2026-07-0.33% 2026-05
USDJPY54%+0.19% 2026-08-0.19% 2026-01
XAUUSD46%+4.52% 2026-01-4.51% 2026-07

根据回测净值曲线计算(约每两天一个点),只统计可信结果。

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

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

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

策略分析

该EA的策略概念基于Stochastic动量指标判断趋势方向,当主线值低于2根K线前的值时判定为下跌动量并下Sell Stop挂单,当主线值高于2根K线前的值时判定为上涨动量并下Buy Stop挂单。入场条件为Stochastic主线的动量变化,挂单价格设在当前价加减止损距离之外,确保在突破后入场。出场条件为止损和止盈,同时支持固定点数的追踪止损。仓位管理使用固定手数(PriceVolume),限制最大持仓数为Maxposition。资金管理方面有CheckMoneyForTrade函数检查可用保证金,CheckVolumeValue函数验证手数合规性。特别之处在于OnTradeTransaction中检测止损成交事件(DEAL_REASON_SL),当持仓被止损平仓后立即在反方向放置新的挂单,形成一种止损后反转的循环交易逻辑。挂单有过期时间设置,Sell Stop和Buy Stop分别使用H4和用户指定的过期周期。

优势

  • 止损后自动反转挂单,能在震荡行情中捕捉来回波动
  • 包含完整的资金检查和手数验证,防止违规下单
  • 使用挂单而非市价单入场,减少假突破风险
  • 限制最大持仓数(Maxposition),控制风险敞口
  • 有挂单过期机制,避免过期订单堆积

劣势

  • 止损后无限制地反转挂单,可能在单边趋势中连续亏损
  • Step和TargetProfit参数声明但未在核心逻辑中使用,存在冗余
  • OnTick和OnTradeTransaction中挂单过期时间不一致(H4 vs Expirydate),逻辑不统一
  • 止损反转条件(trans.price > trans.price_sl)逻辑可疑,止损价与成交价关系判断可能不正确
  • 缺少新K线检测,每个tick都会重复检查指标并可能频繁下单
  • SumPosition函数遍历从PositionsTotal()开始但索引最大值应为PositionsTotal()-1,存在越界风险

改进建议

  • 添加连续止损次数限制,防止在强趋势中无限反转亏损
  • 添加新K线检测逻辑,避免每个tick重复计算指标和下单
  • 统一OnTick和OnTradeTransaction中的挂单过期时间逻辑,消除不一致性
  • 修复SumPosition和CheckPendingOrder的索引越界问题(应从Total-1开始)
  • 增加Step参数的实际使用,实现持仓间距控制

风险评估

总体风险: 需谨慎

  • 止损后无限反转挂单机制可能在单边行情中造成连续亏损
  • 缺少新K线检测导致每个tick都可能尝试下单,增加过度交易风险
  • 数组索引越界bug(PositionsTotal()和OrdersTotal()遍历)可能导致运行时错误
  • 止损反转条件中的价格比较逻辑可能有误,导致不该反转时反转

评估得分

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

参数

参数默认值说明
PriceVolume0.01交易手数
PriceSL1000止损点数(0=不使用)
PriceTP900止盈点数(0=不使用)
trailingstoppoint200追踪止损点数
ExpirydatePERIOD_D1挂单过期时间周期
Step500持仓间距
TargetProfit6目标利润
RefreshTime60刷新时间(秒)
HistorySL7历史止损查找天数
Slippate10滑点容忍点数
KPeriod22Stochastic %K周期
DPeriod7Stochastic %D周期
STOPricemethodSTO_CLOSECLOSEStochastic价格计算方法
Slowing2Stochastic慢化周期
Maxposition1最大持仓数量

同类 EA:动量

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

订阅每周 Arena 周报

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