EA-16348 · 马丁格尔

HelloSmart

HelloSmart是一个马丁格尔风格的网格EA,按固定价格间隔开仓,当持仓总量超过BigLot时将手数乘以倍增系数。达到盈利目标或亏损限额时平掉所有仓位并重置手数。

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

基本信息

风险危险
爆仓风险高
评分★☆☆☆☆
类型交易型 EA
周期M15, H1, H4
指标Price Action
作者AM2

回测结果(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采用马丁格尔加仓策略,在价格每移动Step个点后加仓,试图通过增大仓位来摊薄成本并在回调时获利。入场条件:当BuySell=1时,若无持仓或当前Ask比上次开仓价格低Step个点,则买入;当BuySell=2时,若无持仓或当前Bid比上次开仓价格高Step个点,则卖出。出场条件:当累计浮动盈利超过Profit美元或亏损超过Loss美元时,平掉该品种所有仓位。仓位管理:初始使用Lot手数开仓,当累计持仓量达到BigLot时,手数乘以Mnogitel倍增系数,若手数超过MaxLots则重置为Lot。资金管理:仅通过Profit和Loss两个美元阈值控制盈亏,无止损止盈设置,且平仓后手数重置为初始值。该策略在单边行情中会持续加仓,风险极大。

优势

  • 逻辑简单直观,易于理解和修改
  • 有全局止盈止损机制,限制最大亏损
  • 手数倍增后设有MaxLots上限和重置机制,防止无限加仓
  • 使用新K线判断避免逐tick重复开仓

劣势

  • 马丁格尔策略在单边行情中风险极高,亏损限额5100美元相对盈利60美元过大
  • 无单笔止损止盈,完全依赖全局平仓机制
  • SymbProfit和Lots函数存在逻辑错误:pos.Select(Symb)未使用循环变量i,导致仅检查同一持仓
  • CloseAll函数同样存在pos.Select索引错误,无法正确遍历所有仓位
  • 无滑点、点差、保证金检查,实盘可能开仓失败
  • 手数倍增系数10倍过大,容易迅速达到MaxLots上限

改进建议

  • 修复pos.Select调用逻辑,应使用pos.SelectByIndex(i)或pos.Select(pos.Ticket(i))来正确遍历持仓
  • 添加单笔止损止盈,降低单方向持续加仓的风险
  • 增加点差过滤和保证金检查,提高实盘可靠性
  • 将Mnogitel倍增系数降低至合理范围(如1.5-2),并采用更保守的加仓策略

风险评估

总体风险: 危险

  • 马丁格尔加仓策略在单边行情中可能导致爆仓
  • 持仓遍历函数存在严重逻辑错误,SymbProfit/Lots/CloseAll无法正确统计和操作所有仓位
  • 无单笔止损,完全依赖全局亏损限额,在极端行情下滑点可能导致实际亏损远超设定值
  • 手数倍增系数10倍过大,加仓速度极快

评估得分

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

参数

参数默认值说明
BuySell2交易方向:1=仅买入,2=仅卖出
Step1000加仓间距(点数)
Lot0.1初始手数
BigLot0.5触发倍增手数的持仓量阈值
MaxLots5最大允许手数
Profit60止盈金额(美元)
Loss5100止损金额(美元)
Mnogitel10手数倍增系数

同类 EA:马丁格尔

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

订阅每周 Arena 周报

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