无指标网格EA的实战哲学与风控
从ATC冠军访谈看逆势加仓与多货币分散
谁是 Dimitar Manov 与 ATC 2010
Dimitar Manov 是一位来自保加利亚的自动化交易开发者,早在1985年就开始用 BASIC 写程序,后来转向 Pascal 与 C,并在1994年取得经济信息处理的学位。六年前他接触到 MQL4,迅速被自动化交易的威力吸引。在2010年自动交易锦标赛(ATC 2010)中,他的 Expert Advisor 被赛事观察员 Boris Odintsov 评为最稳定、最可靠的 EA 之一。这次访谈揭示了其无指标网格策略的核心思想,对中文交易者理解‘不依赖历史指标’的系统性交易有重要参考价值。
ATC 是 MetaQuotes 举办的年度算法交易大赛,要求参赛 EA 在真实或模拟环境中以统一规则运行。2008年 Dimitar 曾参赛但失利,2010年他带着改良版多货币 EA 重返赛场。理解他的演变路径,有助于我们看清网格类策略在不同市场环境下的生存边界。
为什么放弃指标与传统止损
Dimitar 明确指出,他尝试过各类振荡器、鳄鱼与分形组合,但长期实盘账户依旧爆仓。他认为指标只反映历史,而当前价格运动与历史无关;图表也仅是事后修正的痕迹。因此他的 EA 完全不使用技术指标,仅监控当前价格与持仓加权均价之间的点差。
传统止损止盈被他视为与‘低买高卖’逻辑矛盾。他用加仓代替止损:当浮亏扩大,不以止损退出,而是递增仓位使持仓均价快速靠近市价;当盈利回撤达到设定值,才用追踪止损平仓。这种思路把‘出场’而非‘入场’作为核心,类似马丁格尔但不等同,因为他强调外汇不是赌场,需要周期修正假设。
无指标网格的核心工作原理
他的 EA 逻辑极简:价跌则买,价涨则卖,本质是网格化摊平。每对货币有虚拟挂单(BUY_LIMIT/SELL_LIMIT),价格触及时成交并布新单。系统监控‘当前价与持仓总价差’,差大则减仓差,盈利则按币种不同参数挂追踪止损。
加仓步长递减,使持仓均价快速追赶现价;平仓方向与上笔相反——盈利平多后开空,再等修正。他交易12个货币对,以分散风险。参数按保证金占用与波动性设定:占用保证金多的品种最小利润目标更大,波动小的品种交易次数少、利润薄。
- 不使用任何技术指标,仅用现价与持仓均价的点差
- 以虚拟网格挂单实现逆势分层建仓
- 盈利回撤达值即追踪止损,不以固定止损砍仓
- 多货币对冲分散,单一品种暴雷不影响整体
- 步长递减加仓,使均价快速贴近现价
与纯马丁格尔的本质区别
Dimitar 强调外汇不是赌场,纯马丁格尔在单品种强趋势无修正时毫无希望。他的 EA 虽含加仓,但逻辑建立在‘周期必然修正’信念上,且通过多货币分散降低相关性风险。入场方向不重要,出场与修正才是关键,这与‘战争或爱情不在乎开头而在结尾’的比喻一致。
在2008年 ATC,纯马丁因雷曼破产引发的巨幅波动且无回调而失败;2010版加入多货币与去止损逻辑,但去掉了资金管理与风控函数(因回测慢且不适应赛规)。这提醒我们:实盘必须保留独立风控模块,竞赛代码不能直接实盘。
多货币分散与杠杆风控
杠杆是双刃剑,Dimitar 称任何低估都会致 crash。他的体积由价格运动决定,每笔加仓步长递减。 aggressiveness 可通过缩小加仓步长与总手实现,但回测计算耗时限制了他。12个货币对让他相信当前回撤安全,但赛规迫他移除 MM/RM 函数。
中文交易者常忽视:多货币 EA 降低风险同时增加潜在利润,但需逐个品种按回撤优化。他用最小回撤值优化参数以确保长期盈亏平衡。这种‘先多货币后逐对调回撤’的流程,比盲目上多品种更严谨。
从访谈提炼的实操构建步骤
若想复刻此类无指标网格,可参考以下路径:第一步,确定逆势分层逻辑与虚拟挂单间距;第二步,用持仓均价与现价差触发加仓,步长递减;第三步,逐货币对写不同追踪止损与目标,用历史最小回撤优化;第四步,组合低相关品种分散;第五步,保留独立杠杆与总回撤熔断,不可删 RM。
// 简化的虚拟网格加仓伪代码框架
input double GridStep = 50; // 网格点距
input double LotStep = 0.01; // 基础手数
double avgPrice; // 持仓均价
void OnTick()
{
double posProfit = PositionGetDouble(POSITION_PROFIT);
double curPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID);
if(MathAbs(curPrice - avgPrice) >= GridStep * _Point)
{
// 逆势加仓,步长递减
double lot = LotStep * MathPow(0.9, PositionsTotal());
trade.Buy(lot, _Symbol);
avgPrice = (avgPrice * oldVol + curPrice * lot) / (oldVol + lot);
}
if(posProfit > TargetProfit) trade.PositionClose(_Symbol);
}
普通交易者的适用与禁忌
该策略适合有编程能力、能接受长尾回撤、明白均值回归前提的进阶用户。禁忌包括:直接实盘竞赛版、单品种重仓、无最大回撤开关、在央行暴雷事件前满网格。Dimitar 自嘲若出错两对的追踪止损等于最小目标,会导致零利润平仓,说明参数细调极关键。
总之,这篇访谈价值在于用选手第一视角拆穿了‘指标崇拜’与‘止损教条’,示范了以均价回归与多货币分散为核心的生存型网格。但它不是圣杯,而是风险可视化的思维训练。中文社区常转述‘网格稳赚’,却忽略 Dimitar 对 extraordinary situations 的恐惧——这才是专业者与赌徒的分界线。