guohongcang 发表于 2026-8-3 09:53:09

拆了金麒麟4701行源码后,我搞懂了EA到底怎么判断趋势的

之前发过一个帖子说趋势EA存活率最高,有兄弟问为什么。今天把原理拆开讲。我花了两个月把麒麟King 3.20的源码一行一行拆完(4701行代码),搞明白了趋势EA的核心逻辑。不是推荐这个EA,是分享思路——看懂之后你自己也能判断一个EA靠不靠谱。趋势EA的核心:它是怎么判断涨还是跌的?简单说就三步:第一步:看大方向麒麟用EMA均线判断大趋势。比如EMA50在EMA200上面→看涨,下面→看跌。这个很多人都会。但光看均线不够——震荡的时候均线反复交叉,来回打脸。第二步:看力度这里用了ADX指标。ADX高于25说明有趋势,低于25说明在震荡。震荡的时候不出手,等着。这个过滤很关键——我回测对比了一下:加了ADX过滤的版本和没加的,最大回撤差了12%。意思就是它帮你避开了很多无效交易。第三步:多周期确认它同时看M5、M15、H1三个周期的方向。三个周期方向一致才进场,不一致就等着。打个比方:M5看涨、M15看涨、H1也看涨——这才动手。如果M5看涨但H1看跌,就不动。这样过滤掉了很多噪音。为什么这种EA活得久?不是因为策略多厉害,是因为它只在概率最高的时候出手。一个马丁EA一天可能开20单,趋势EA一天可能只开2-3单甚至不开单。看起来"懒",但每单的质量高。换成人话说就是:宁可错过,也不做错。怎么看一个EA的策略逻辑拿到EA不用会编程,看几个东西就能判断:
[*]参数里有没有"止损"选项?没有的直接pass
[*]有没有"加仓倍数"或"马丁"字眼?有的话大概率是马丁变种
[*]说明里有没有提到"趋势过滤"、"ADX"、"震荡过滤"?有的话相对靠谱
[*]加载到图表上看看——震荡的时候是频繁开单还是趴着不动?频繁开的危险
大家还拆过哪些EA的源码?哪些EA的策略逻辑让你觉得眼前一亮?分享交流一下。毕竟比起别人说"这个EA好",看懂它为什么好才是真的。

凡尘 发表于 2026-8-3 11:50:06

微马丁止损,自动趋势风险小吗

westwuwei 发表于 2026-8-3 12:27:25

这是一个非常典型的“双向网格+马丁格尔”类EA(俗称“锁仓型马丁”),在业内通常被归类为“高风险资金管理型策略”。

先给你一个最直接的结论:这个EA中确实包含“对冲”操作,但它绝对不是我们之前反复推演出的那种“对冲减仓技术策略”。

下面我分两部分为你深度拆解:EA整体评估 和 对冲本质的定性。

一、 EA“金麒麟”整体评估(风险与逻辑)
通过阅读代码(尤其是 start() 函数和关键参数),这个EA的核心逻辑如下:

策略本质:双向挂单(Buy Stop/Sell Stop)+ 浮亏加码(马丁格尔)。

它在当前价格上下方同时挂突破单(OrderSend 类型为 4 和 5,即挂单)。

当价格朝一个方向运行时,它会不断追加减仓(Step、TwoStep间距),且手数呈倍数增长(K_Lot = 1.3)。

它不预测方向,而是赌“价格总有回调”。

风控致命伤(高风险):

浮亏死扛:虽然设置了 MaxLoss(单边浮亏限制),但代码逻辑仅在浮亏超过阈值时停止加仓,并未强制止损,而是等待反向回调。

逆势加仓:价格越涨(多),它越追多;价格越跌(空),它越追空。一旦遇到单边不回调的大行情,仓位会在短时间内呈指数级膨胀(1.3倍率)。

资金曲线特性:80%的时间在小幅盈利中震荡,20%的时间面临巨大回撤甚至爆仓(这是所有马丁策略的通病)。

代码质量:

极差。变量全部混淆(Zi_, Zong_),无注释,逻辑嵌套混乱,属于典型的“商业封装”或“加密混淆”后的残留代码。

存在大量冗余的UI绘制代码,真正核心的交易逻辑只占很小一部分,且缺乏对极端滑点和点差扩大的保护。

二、 这个EA中的对冲是“真正的对冲减仓技术策略”吗?
答案:不是。它只是一种“锁仓平仓”工具,与我们之前讨论的“择机对冲减仓(优化手数与成本)”有本质区别。

具体区别体现在以下三个维度:

1. 触发条件不同(被动平仓 vs 主动优化)
EA的做法(被动):只有当 多空总浮盈 达到设定的 CloseAll(整体平仓金额,如0.5)时,才会触发 OrderCloseBy(对冲平仓函数)。它只是在“总账赚钱了”的时候落袋为安。

真正策略(主动):是在“净头寸顺势但整体未盈利”、且“手数达到风控上限”的危机时刻,主动进行干预。EA只看“赚不赚钱”,而真正策略看的是“持仓结构和保证金安全”。

2. 平仓对象的选取原则不同(致命差异)
EA的做法:利用MT4内置的 OrderCloseBy(Ticket1, Ticket2) 直接配对平仓。它不区分距离报价的远近,通常是按订单列表的先后顺序(先开先平)。它完全无视“平近端释放更多手数”或“平远端优化成本”的数学逻辑。

真正策略:必须通过算法计算每笔亏损单的“亏损额度/手数”比值,精准选择“单笔亏损最小(最近)”或“单笔亏损最大(最远)”的订单,以实现特定的数学目标(如释放最大保证金或保留最大净头寸)。这个EA完全没有这种计算。

3. 持仓管理理念不同(锁仓vs减仓)
EA的做法(锁仓):它同时持有多单和空单,本质上是在“锁定浮动亏损”。利用多单的盈利去抵消空单的亏损,达到总额盈利即平仓。这在数学上只是把两笔独立的交易合并结算,并没有“减少风险敞口”(它在平仓前一直持有双倍仓位,占用双倍保证金)。

真正策略(减仓):目的是“削减总手数”和“释放保证金”。通过消耗部分盈利,永久性地砍掉逆势仓位,让账户轻装上阵,为后续的“顺势加仓”腾出资金和空间。

总结
“金麒麟”EA的对冲功能,本质上是一个“盈利结算器”: 等你多空来回加仓后总浮盈为正,就把所有单子一次性配对平掉,赚取微利出场。


给你的忠告:
这个EA极度危险。它使用了你之前坚决摒弃的“浮亏加仓”和“双向对锁”模式(与你的“纯顺势、浮盈加仓”完全背道而驰)。它所谓的“对冲”只是为了掩盖马丁格尔爆仓前的挣扎,而不是主动管理风险的数学武器。请不要将其与你成熟的策略逻辑混为一谈。

或许 发表于 2026-8-8 18:28:01

westwuwei 发表于 2026-8-3 12:27
这是一个非常典型的“双向网格+马丁格尔”类EA(俗称“锁仓型马丁”),在业内通常被归类为“高风险资金管 ...

你拆解的是金麒麟,这是amazing修改版双向马丁,楼主拆的是麒麟king,顺势加仓的,这两个不是一种类型的,

westwuwei 发表于 2026-8-8 23:02:58

金麒麟的本质是典型的马丁格尔(逆势加仓)策略,绝非顺势加仓。

一、先明确两个概念:顺势加仓 vs 逆势加仓(马丁格尔)
顺势加仓:指在持仓处于盈利状态时追加仓位,加仓方向与当前价格运行方向一致,其目的是扩大盈利,但代价是持仓成本会随加仓不断上移,一旦回调,浮盈会迅速回吐甚至转为亏损。

逆势加仓(马丁格尔):指在持仓处于亏损状态时追加仓位,加仓方向与当前价格运行方向相反(例如做多后价格下跌,继续买入多单),其目的是摊薄平均持仓成本,等待价格反弹时快速解套。然而,这种做法的风险是仓位规模会呈指数级增长,一旦遇到单边极端行情,账户很容易爆仓。

二、金麒麟的加仓逻辑:用代码说话
首单(第一次入场)确实为顺势

多单首单挂于当前价上方(Buy Stop),只有价格向上突破才成交;

空单首单挂于当前价下方(Sell Stop),只有价格向下突破才成交。
这确实是“顺势入场”,也是有人误以为它“顺势加仓”的唯一依据。

补单(所有后续加仓)彻底逆势
以持有多单为例,核心加仓条件是:当价格下跌到低于已有最低买价减去补单间距(Step)时,EA会继续开立新的多单。
代码直接写为:
Zi_26_do <= NormalizeDouble(Zi_17_do - Step * Point(), Digits())
也就是说,价格越跌,EA越买多单——这正是标准的“越亏越加”,与顺势加仓毫无关系。

手数计算呈指数增长,完全符合马丁格尔特征
加仓手数计算公式为:
Zi_27_do = NormalizeDouble(Zi_9_in * PlusLot + lot * (MathPow(K_Lot, Zi_9_in)), DigitsLot)
其中 K_Lot = 1.3。这意味着每加一单,手数都会按1.3倍放大:第1单0.01手 → 第2单0.013手 → 第3单0.0169手 → …… → 第10单约0.106手。
这种亏损后放大仓位的做法,正是马丁格尔策略最核心的标志。

三、外部资料也将其明确归类为“马丁”
在各大EA资源站上,金麒麟均被标注为“金麒麟马丁EA”,且附带的风险提示包括“单边浮亏超过多少不继续加仓”、“单边平仓限制”等参数——这些都是马丁格尔策略特有的风控措施,顺势策略根本不需要这类“防止浮亏过大”的限制。

四、“顺势加仓”的误解从何而来?
可能源于以下几点:

首单确实是顺势入场,让只看表面的人误以为整个EA都是顺势的;

参数中有一个“顺势保护”开关,但其作用是在多空对锁后整体盈利达标时全部平仓,这与加仓方向无关,只是一个整体止盈机制;

还有一个“完全对锁时挂上顺势开关”的选项,但参数说明中明确警告“风险较高,慎用”,且这不改变EA整体逆势加仓的本质。

五、最终结论
首单:顺势入场(Buy Stop / Sell Stop)

补单:逆势加仓(价格越跌越买多,越涨越卖空)

手数:指数级增长(1.3倍,马丁格尔核心标志)

外部分类:各资源站均标注为“马丁EA”

因此,金麒麟本质上是一个首单顺势入场、补单逆势加仓、手数指数增长的混合型马丁格尔EA。所谓“顺势加仓”的说法,只看见了首单的入场方式,却忽略了占交易量95%以上的补单逻辑。就像一个人第一脚走对了方向,但之后每一步都在往反方向走——不能因为第一脚对了就说他全程都在顺势走。

westwuwei 发表于 2026-8-8 23:04:52

“仅仅首单”是顺势,其实这是一个“废话”。此时都没有加仓,它只是选择扛单方向而已!
页: [1]
查看完整版本: 拆了金麒麟4701行源码后,我搞懂了EA到底怎么判断趋势的