MartingaleEA-5 Levels
该EA实现了5级马丁格尔策略,当价格逆向移动到预设距离时,以倍增仓位加仓。每当价格对初始头寸不利移动指定点数距离后,会以乘数倍增手数开立新的同向仓位。当同方向所有仓位总盈利或总亏损达到阈值时,全部平仓。
打开交互版(权益曲线、切换品种)基本信息
回测结果(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% 时强平。夏普比率按权益曲线计算。标为不可靠的结果仅供参考。
爆仓风险: 高
- 亏损后加大仓位(马丁格尔)
- 没有止损,也没有移动止损
- 最多可同时持有 5 个仓位
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于经典马丁格尔原理:亏损后加倍下注以期望一次回本。入场条件为:当已有的买入(或卖出)持仓处于亏损状态,且价格逆向移动达到累计距离阈值(如第1级300点、第2级700点等),则加开同方向仓位,手数为上一级乘以MartingaleVolumeMultiplier。出场条件为:所有同方向持仓的总盈利达到MartingaleTakeProfit($200)或总亏损达到MartingaleStopLoss(-$500)时,全部平仓并重置计数器。仓位管理采用指数增长模式,每级手数乘以倍数(默认2倍),5级后手数可达初始的32倍。资金管理方面,止损线为总亏损-$500,但该止损可能因滑点和多级加仓而远远超出账户承受能力。代码中BCount和SCount用于限制加仓次数,但存在严重逻辑缺陷——每个tick都会遍历所有仓位并可能重复触发加仓条件。
优势
- 代码结构简单直观,易于理解马丁格尔逻辑
- 设置了5级递增距离,加仓间距逐渐加大,给予市场一定回调空间
- 有总盈利/亏损阈值平仓机制,提供了基本的风控框架
劣势
- BCount/SCount在OnTick中不重置,导致加仓逻辑在后续tick中失效或错乱
- 无新K线检测,每个tick都遍历全部仓位,可能重复下单或产生意外行为
- VOL变量从未初始化赋值,BMartingaleVol/SMartingaleVol初始值为0,首次加仓逻辑依赖第1级的特殊处理但后续级可能以0手数交易
- 马丁格尔策略本身具有爆仓风险,5级2倍乘数下最后一级手数为初始32倍,极端行情下亏损呈指数增长
- 使用Point()计算距离未考虑品种小数位数差异,在不同品种上可能产生错误距离
改进建议
- 添加新K线检测机制(IsNewBar),避免每个tick重复触发交易逻辑
- 修复VOL初始化问题,添加初始手数输入参数并在OnInit中初始化计数器变量
- 将5级重复的if条件重构为循环结构,提高代码可维护性和可扩展性
风险评估
总体风险: 危险
- 马丁格尔策略指数级加仓,极端行情下可能导致账户爆仓
- VOL未初始化可能导致零手数交易或不可预测行为
- BCount/SCount未在OnTick中重置,平仓后再次加仓逻辑将完全失效
- 止损阈值-$500对于5级2倍加仓可能远不够,实际最大亏损可能远超此值
评估得分
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
MartingaleMode | true | 是否启用马丁格尔模式 |
Symbol_Name | EURUSD | 交易品种名称 |
MartingaleVolumeMultiplier | 2 | 马丁格尔加仓手数倍数 |
MargingaleNum | 4 | 最大马丁格尔加仓次数(最多5次) |
MartingaleDis1 | 300 | 第1级加仓距离(点) |
MartingaleDis2 | 400 | 第2级加仓距离(点) |
MartingaleDis3 | 500 | 第3级加仓距离(点) |
MartingaleDis4 | 600 | 第4级加仓距离(点) |
MartingaleDis5 | 700 | 第5级加仓距离(点) |
MartingaleTakeProfit | 200 | 同方向全部持仓止盈金额(美元) |
MartingaleStopLoss | -500 | 同方向全部持仓止损金额(美元) |
同类 EA:马丁格尔
回测是历史模拟,不代表未来收益,不构成投资建议。