一句话答案:马丁策略最怕的不是加仓本身,而是"反弹时把已经赚回来的利润又吐回去"。开源 EA GMarket(MQ5 全源码)用一套双向对冲爬梯 + 逻辑零损保护来处理这个最磨人的中间地带:组没整体回本之前,先把"反转中大赚的最新层"用保本价锁住。本文按源码逐段拆解触发条件、保本价计算和它与正常平组的关系。

GMarket 的基本盘:双向对冲 + 顺势爬梯

开仓即双向:一张 BUY base + 一张 SELL base(默认 0.01 手级别)。之后:

  • 顺势爬梯(ladder):价格朝某方向走出 step(按开仓价百分比)→ 平掉顺势那张 base 的浮盈 → 在新价位重开 base。每爬一格,落袋一段利润。第一次爬梯确定方向followType)。
  • 逆势马丁(martin):方向确定后,逆势那侧被套 → 按 martinInterval 间隔逐层加仓(seek 记录当前层数,maxMartinLevel 封顶)。
  • 风控过滤:新闻日历(非农/利率决议前后暂停加仓)、ATR 波动率上限、布林带偏离度上限、最大浮亏清仓(maxLoss)。

到这里都是常见结构。GMarket 的差异化在下面这层。

零损保护:保护"部分回调"这个最磨人的中间地带

先澄清一个常见误解

很多人以为零损的触发条件和平组条件是同一道门槛的先后——"既然马丁侧冲平对冲侧就会平组,零损岂不是永远轮不到?"源码不是这么写的,两个条件统计的根本不是同一批单子

正常平组 零损武装
统计对象 马丁侧整组(所有马丁层 + 马丁 base) 只算最新一层马丁 + base
是否看对冲侧 完全不看(爬梯单不参与求和、平组时也不动它) 要求对冲(爬梯)单正在亏损
门槛 整组合计 ≥ 0(回本即收) 最新层+base 的盈利 ≥ 爬梯亏损 + 缓冲金额(默认 $30)

它真实生效的行情序列(具体走一遍)

设向上爬梯(followType=BUY),马丁方向 = SELL:

  1. 价格持续上涨 → SELL 侧被套,马丁在 1.10 / 1.12 / 1.14 / 1.16 一路加层;
  2. 行情反转下跌,跌破爬梯 BUY 单开仓价 → 爬梯单转亏(零损前提满足);
  3. 此刻:最高位 1.16 那层 SELL 利润巨大,但 1.10/1.12 的早期层还在水下 → 整组求和仍为负,平组条件不满足
  4. 「最新层 + base ≥ 爬梯亏损 + $30」成立 → 武装零损:给最新层和 base 各算一个保本价;
  5. 之后两条路:
    • 继续跌 → 整组回本 → 正常平组接管,全身而退;
    • 弹回去 → 最新层在保本价被平掉(锁住已到手的利润),低位老层继续等下一轮。

零损管的正是第 3~5 步之间的灰色地带:组还没整体解套、但反转已经让最新层大赚时,别让这口肥肉又吐回去。

保本价怎么算(不是"开仓价"那么简单)

BUY  保本价 = 开仓价 + 点差 + 手续费折算成的价差
SELL 保本价 = 开仓价 − 点差 − 手续费折算成的价差

手续费折价 = commission / (tickValue × volume) × tickSize——确保按保本价离场后净结果真的是零,而不是"价格回到开仓价但倒贴了点差和佣金"。

逻辑零损:为什么默认不挂真止损单

参数 InpLogicalBreakeven = true(默认)时,EA 不向券商提交 SL 修改,而是自己每个 tick 盯价:BUY 单 bid 回踩到保本价 / SELL 单 ask 反弹到保本价 → 直接市价平仓。好处有三:

  1. 券商看不到你的止损位(防针对性扫损的经典做法);
  2. 不受 SYMBOL_TRADE_STOPS_LEVEL / FREEZE_LEVEL 最小距离限制——价格离保本价很近时真 SL 会被拒,逻辑零损没这个问题;
  3. 配合 InpBreakevenResetLadder = true,零损触发后自动平掉爬梯 base 并重开,整个爬梯周期干净重置。

关键参数速查表

参数 默认 作用
InpMartinBreakevenProfit 30 零损武装的盈利缓冲金额($),≤0 关闭整个零损机制
InpLogicalBreakeven true 逻辑零损(EA 盯价平仓,不挂真 SL)
InpBreakevenResetLadder true 零损触发后重置爬梯方向 base
InpMaxMartinLevel 马丁层数封顶
InpMaxLoss 整体最大浮亏清仓保护
InpStep 爬梯格距(开仓价百分比)

常见问答(FAQ)

Q:零损保护会不会太早离场,错过整组解套? A:不会冲突。零损只锁"最新层 + base"两张单,低位老层不动;如果行情继续向有利方向走,整组回本时正常平组逻辑(合计 ≥ 0)依然接管全部。

Q:缓冲金额 $30 怎么调? A:它是"武装零损前要求的安全垫"。手数大/波动大的品种可以调高(减少频繁武装),小资金账户可调低。设 ≤0 即完全关闭零损机制,退回纯马丁。

Q:这个 EA 哪里下载?能改源码吗? A:开源仓库 https://gitee.com/xszyou/easy-dealGMarket.mq5 全源码(MIT),含图形化面板(暂停/马丁开关/强制重载)。仓库里还有配套的 MCP 工具集,可以让 Claude Code / openclaw 等 AI Agent 帮你盯盘、改参数、甚至改策略代码。

关键词:马丁格尔 EA 源码、马丁策略解套、MT5 保本止损 breakeven、双向对冲网格、马丁零损保护、MQL5 马丁源码、外汇马丁 EA 开源、GMarket EA

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐