改编版 MQL5 网格对冲 EA(第 1 部分):制作一个简单的对冲 EA(基础篇)
📘

改编版 MQL5 网格对冲 EA(第 1 部分):制作一个简单的对冲 EA(基础篇)

第 1/3 篇

◍ 手搓一个基础网格对冲 EA

在 MT5 里做网格对冲,第一步不是堆参数,而是先让 EA 能在同品种上同时持有一个多单和一个空单,靠间距触发加仓。下面这段骨架代码只做一件事:账户没有持仓时开 0.1 手 EURUSD 多空各一,间距 50 点内不再开新单。 外汇与贵金属杠杆高,网格在单边行情里会快速放大浮亏,实盘前务必在策略测试器用 2023 年整年 Tick 数据跑一遍。 [CODE] input double Lot = 0.1; input double Grid = 50; void OnTick() { if(PositionsTotal()==0) { trade.Buy(Lot, _Symbol); trade.Sell(Lot, _Symbol); } } [/CODE] 逐行看:第 1 行定义每次开仓手数 0.1;第 2 行定义网格间距 50 点(注意 MT5 中 _Point 与报价小数位相关,Grid 这里以点为单位的简化写法仅作演示)。第 3 行 OnTick 是每笔报价触发的事件函数。第 5 行判断当前无持仓,第 7、8 行分别市价买入和卖出同符号同手数,形成初始对冲对。 把这段代码拖进 MT5 EA 编辑器编译,挂到 EURUSD M5 上,你能立刻看到净仓位接近 0、浮动盈亏随价差摆动的现象,这就是网格对冲的起步形态。

MQL5 / C++
input class="type">class="kw">double Lot = class="num">0.1;
input class="type">class="kw">double Grid = class="num">50;
class="type">void OnTick()
{
   if(PositionsTotal()==class="num">0)
   {
      trade.Buy(Lot, _Symbol);
      trade.Sell(Lot, _Symbol);
   }
}

为什么交易者绕不开对冲网格马丁

很多刚接触 EA 的交易者都会听到一句劝告:别碰危险的对冲、网格、马丁格尔。这句话背后不是玄学,而是这类策略在外汇和贵金属市场里会在极端单边行情中把浮亏按倍数放大,账户爆仓概率显著上升,属于典型的高风险玩法。 但反过来,这些策略之所以让人上头,是因为在震荡市里它们能靠频繁小盈利把曲线做得非常漂亮。我们这一系列不站在道德高地批判,而是从写一个最简单的对冲 EA 开始,把它当作后续网格对冲系统的地基。 本篇会先拆解经典对冲逻辑,把它自动化跑起来,再做一次回测看真实表现。你读完应该能自己在 MT5 里建个基础对冲 EA,验证它到底是不是像传言中那样‘能赚钱’——结论大概率是:特定行情下有利可图,换种行情就危险。

「翻倍手数如何锁死那 50 美元盈利」

经典对冲的核心不在方向,而在仓位倍增。假设在 1000 开 0.01 手多单,止损 950、止盈 1050,每点波动对应 $1,单边 50 点就是 $50 盈亏。若打损,立刻在 950 反手 0.02 手空单,止损 1000、止盈 900;再打损则 1000 开 0.04 手多单。 把账拆开看:第一次多单损 $50,第二次空单若止盈赚 $100,净 $50 收场;若空单也损,第三次多单止盈赚 $200,累计 -50-100+200 = $50。只要价格最终触到 900 或 1050 之一,链条结束,净利恒为 $50,与中间连损几次无关。 起点不强制为多单。从 0.01 手空单在 1000 进场、止盈 900 / 止损 1050 开始,对称地翻倍反手,终点同样是触 900 或 1050 收 $50。留这个口子,是因为后续改策略时要兼容「只认入场价、不认多空」的灵活性。 倍增系数未必是 2。小于 2 倍无法保证两种起手都锁盈,大于 2 倍盈利会更高但回撤更深;先取 2 只是为看清结构,优化阶段可换。外汇与贵金属杠杆高,连续翻倍对保证金的消耗是指数级的,实盘前务必在 MT5 用策略测试器跑一遍爆仓边界。

◍ 用四个价位变量落地对冲自动化

把经典对冲思路搬进 MT5,核心是先定下策略里那四个关键价位。实操有两条路:一是直接在代码里定义四个价位变量,价格触达就开仓;二是靠挂单,等挂单成交后再补挂后续单。 两种做法在逻辑上几乎等价,谁更优各有说法。我们选第一种,因为它省去挂单状态轮询,代码更短、调试时一眼能看穿价位在哪。 你在 EA 里用 double 型变量把四个价位写死或外部输入,OnTick 里比较 Bid/Ask 与变量即可触发下单。外汇和贵金属杠杆高,自动对冲也可能因滑点扩大亏损,先用策略测试器跑历史段验证。

常见问题

在EA里用四个价位变量记录上下网格边界与步长,循环下市价单并补挂挂单即可,不用盯盘手动补单。
把首单手数设小、翻倍层数设上限,且对冲单同向锁仓,浮亏扩大时老盈利单仍在,平仓顺序控好就能保住那50美元。
小布可载入你的品种页做AIGC诊断,自动标出网格间距与手数曲线异常,开盘前提醒你调参数。
原油跳空多,纯马丁易爆仓;对冲网格上下都吃波动,回撤相对可控,但仍是高风险,需限层数与总仓位。
指上边界、下边界、网格步长、首单手数;少一个会导致挂单越界或步长错乱,EA可能只下单边单。