MultiMartin
这是一个多货币马丁格尔EA,首先开一个初始买入或卖出订单,亏损后反转方向并将手数乘以倍数。它使用虚拟止损/止盈,支持可选的移动止损,并通过紧凑的字符串语法支持多品种同时运行的独立配置。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 偏高
- 亏损后加大仓位(马丁格尔)
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略核心是马丁格尔反转策略:初始按StartType方向开仓,若订单以亏损平仓则反转方向并将手数乘以Factor倍数,若盈利则重置为初始手数继续同方向开仓。入场条件为:无持仓时按StartType开首单;前单盈利平仓后同方向重新开初始手数订单;前单亏损平仓后反方向开Factor倍手数订单。出场条件采用虚拟止损止盈:当价格触及开仓价±止损/止盈点数时市价平仓,也支持移动止损(盈亏平衡或直线跟踪模式)。仓位管理上,手数每次亏损后乘以Factor并用lots_step取整,但受限于Limit设定的最大倍数和最大手数限制。资金管理方面,有checkFreeMargin检查可用保证金,不足时回退到初始手数,若仍不足则不开仓并触发SkipBadTime机制暂停交易。支持时间过滤(HourStart到HourEnd)和坏时段跳过机制。
优势
- 支持多品种同时运行,通过紧凑的字符串语法实现灵活的独立配置
- 有保证金检查机制,不足时回退到初始手数,避免爆仓
- SkipBadTime机制可在连续下单失败时暂停交易,防止频繁报错消耗资源
- 虚拟止损止盈实现灵活,支持移动止损模式
- 代码结构清晰,使用面向对象设计(Settings/ExpMartin/ExpMartinPool)
劣势
- 马丁格尔策略本质风险极高,连续亏损时手数指数增长,可能在几次亏损后就达到最大手数或爆仓
- 虚拟止损止盈依赖EA持续运行,若EA断线或重启则止损止盈失效,无服务器端保护
- 订单选择逻辑有缺陷:init中只查找第一个BUY或SELL订单即break,可能遗漏同方向的其他订单
- 没有真正的止损单挂到服务器,极端行情下滑点可能远超预设止损
- Limit参数控制的是预计算的最大手数而非实际开仓次数,连续亏损后可能超过预期的资金承受范围
改进建议
- 将止损单真正挂到服务器而非虚拟止损,确保EA断线时仍有保护
- 增加最大回撤百分比限制和最大连续亏损次数限制,作为资金管理的硬性保护
- 修复init中订单扫描逻辑,应收集所有相关订单而非只取第一个就break
- 增加新K线检测机制,避免在同一个tick内重复执行交易逻辑
- 增加点差过滤,避免在高点差时段开仓
风险评估
总体风险: 危险
- 马丁格尔策略:连续亏损时手数指数增长,可能导致爆仓
- 虚拟止损止盈:EA断线或重启时无任何保护
- 无服务器端止损:极端行情滑点可能远超预期
- 无最大回撤保护:没有账户级别的资金保护机制
- 无点差过滤:高点差时段可能导致不必要的亏损
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
_UseTime | true | 是否使用交易时间过滤 |
_HourStart | 2 | 交易开始小时(0-23) |
_HourEnd | 22 | 交易结束小时(0-23) |
_Lots | 0.01 | 初始手数 |
_Factor | 2.0 | 亏损后手数乘数倍数 |
_Limit | 5 | 最大乘数次数限制 |
_StopLoss | 500 | 止损点数 |
_TakeProfit | 500 | 止盈点数 |
_StartType | 0 | 首单方向: 0-买入, 1-卖出 |
_Magic | 1000 | 订单魔术号 |
_SkipBadTime | bt_SECOND | 订单失败后跳过交易的时间间隔 |
_WorkSymbols | 多品种配置字符串(格式: 品种±手数*倍数^次数(止损,止盈)[开始,结束];...) | |
_Trail | tt_NONE | 移动止损类型: 无/保本/直线 |
同类 EA:马丁格尔
回测是历史模拟,不代表未来收益,不构成投资建议。