EA-13315 · 马丁格尔
Well Martin
该EA使用布林带和ADX指标进行均值回归入场,价格触及下轨时买入、触及上轨时卖出,并以低ADX值作为震荡市过滤条件。采用马丁格尔仓位管理,亏损后将手数乘以倍率(KLot),直到达到最大手数上限后重置。提供隐身模式,不在订单上显示止损止盈,而是通过图表标签和内部逻辑管理出场。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
爆仓风险: 偏高
- 亏损后加大仓位(马丁格尔)
高:回测中爆仓,或使用马丁/网格加仓且不设止损。偏高:马丁或网格加仓但有止损,或不设止损且可同时持有多个仓位。 标签的含义和我们的发现 →
策略分析
策略概念基于布林带均值回归,当价格偏离均值到达布林带边界时预期回归。入场条件为:买入信号要求Ask价低于前一根K线的布林带下轨且ADX值低于阈值(表明市场处于震荡状态),同时上一笔交易非买入类型;卖出信号则要求Bid价高于前一根K线的布林带上轨且ADX低于阈值,同时上一笔交易非卖出类型。出场条件包括固定点数的止损和止盈,或在隐身模式下通过内部计算盈亏点数来手动平仓。仓位管理采用马丁格尔策略,亏损后手数按KLot倍率递增,盈利后重置为基础手数Lot,同时设置了MaxLot上限防止过度加仓,超过上限后回退到基础手数。资金管理方面没有净值回撤控制,仅依赖MaxLot作为安全阀,但MaxLot回退到基础手数后若继续亏损会重新从基础手数开始加倍,风险累积效应显著。
优势
- 使用布林带和ADX组合过滤信号,在震荡市中寻找回归机会,逻辑清晰
- 提供隐身模式保护止损止盈不被经纪商看到,减少被针对的风险
- 新K线检查机制避免了同根K线内重复开仓
- MaxLot参数为马丁格尔策略提供了硬性上限保护
- 代码结构简洁,逻辑分层清晰,易于理解和修改
劣势
- 马丁格尔仓位管理在连续亏损时会导致手数指数级增长,存在爆仓风险
- IsNewBar函数存在严重Bug——m_TOld为局部变量每次调用都重置为0,导致新K线检测失效
- PutLable函数中ObjectSetInteger代码写在return之后,永远不会被执行
- 没有账户净值回撤保护机制,MaxLot回退后马丁格尔循环重新开始
- Volume函数通过HistoryDealGetTicket(orders-1)获取最后一笔交易,可能获取到入场交易而非出场交易导致利润判断错误
- 缺少点差过滤,在新闻或高波动时段可能以过大滑点入场
改进建议
- 修复IsNewBar函数,将m_TOld改为静态变量或类成员变量,确保新K线检测正常工作
- 修复PutLable函数中return语句位置,使标签属性设置代码能够执行
- 增加账户净值回撤保护,当回撤超过设定比例时停止交易或重置手数
- Volume函数应筛选DEAL_ENTRY_OUT类型的出场交易来判断盈亏,而非简单取最后一笔交易
- 增加点差过滤,当点差超过阈值时暂停入场
风险评估
总体风险: 危险
- 马丁格尔策略在连续亏损时手数指数增长,可能导致账户爆仓
- IsNewBar函数Bug导致每tick都可能开仓,远超预期频率
- 隐身模式下止损止盈完全依赖EA运行,若EA断线则无保护
- 没有净值回撤保护机制
- Volume函数可能错误判断最后一笔交易盈亏,导致马丁格尔逻辑混乱
评估得分
代码质量2.0
策略逻辑2.0
风险管理1.0
稳健性1.0
创新性2.0
文档1.0
综合1.5
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
BBPeriod | 84 | 布林带周期 |
BBShift | 0 | 布林带偏移量 |
BBDev | 1.8 | 布林带标准差倍数 |
ADXPeriod | 40 | ADX周期 |
ADXLevel | 45 | ADX阈值,低于此值视为震荡市 |
TP | 1200 | 止盈点数 |
SL | 1400 | 止损点数 |
Slip | 50 | 滑点容忍值 |
Stelth | 0 | 隐身模式开关,1为隐藏止损止盈 |
KLot | 2 | 马丁格尔加仓倍率 |
MaxLot | 5 | 最大手数限制 |
Lot | 0.1 | 初始手数 |
LableClr | clrGreen | 标签颜色 |
同类 EA:马丁格尔
回测是历史模拟,不代表未来收益,不构成投资建议。