EA 开发与 Builder beginner 12 分钟阅读

不用写代码做一个 MT5 RSI EA:完整步骤,以及随附模板的真实得分

RSI EA 免编程做法:在浏览器里用积木接出一套 RSI 反转智能交易系统,编译成真正的 .ex5,并在它接触资金之前先把数字读一遍。文中还给出一个几乎没人公开过的数字——Builder 自己随附的那个 RSI 模板,盈利因子只有 0.94,而它记录在案的参数搜索,连它被拟合的那段时期都没能找出一组盈利的设置。

发布于 · 审阅于

不用写代码在 MT5 里做一个 RSI EA 智能交易系统,办法是在画布上放四类积木:一个 Start 节点、一个 RSI 指标、一个把 RSI 数值与某个水平作比较的条件,以及一个下单积木。随后服务器会替你生成并编译 MQL5。整个过程大约十五分钟,任何一步都不涉及 MQL5 语法。

更难回答的问题是:做完之后你手上的到底是什么。本文先把这个 EA 搭出来,然后去读 Builder 自己对同一套设计的记录,而那份记录没有任何一篇教程会告诉你的那么好看。

你最终会做出什么

一个只做一个货币对的单持仓 EA:RSI 跌破超卖水平时买入,升破超买水平时卖出,配一个固定止损和一个固定止盈,编译成一个可以直接丢进 MetaTrader 5 的真正的 .ex5。八个积木。不写代码。

这是机械的那一半,而且它确实很容易。本页剩下的部分,是决定这个文件值不值得运行的另一半。

开始之前:RSI 测的是什么,不测什么

你需要一个邮箱已验证的免费账户(设计免费,也不需要登录;编译成 .ex5 才需要)、大约十五分钟,以及一个用来测试结果的 MetaTrader 5 终端。

RSI 报告的是最近 n 根收盘价,在它自己近期的涨幅与跌幅之间处在什么位置,量程 0–100。在这套配方里,它只做一件事:说出价格相对于它自己近期的表现,已经在一个方向上走得又远又快。它没有说的是,这段行情已经结束了。这个区别就是这套策略的全部风险所在——下跌趋势里的一个超卖读数,是对这段下跌趋势的描述,而不是一个反对它的信号。

Builder 的 RSI 积木暴露出下面这些参数,而默认值都是那些约定俗成的值:

积木参数默认值它控制什么
period14计算回看多少根K线。取值范围 1–999
applied_pricePRICE_CLOSE每根K线的哪个价格进入计算
shift0读哪一根K线——0 是正在形成的那根,1 是最后一根已收盘的
timeframe当前图表M1 到 MN1 中的任意一个,与图表本身无关地读取
symbol当前图表留空表示图表自己的品种

timeframe 那一行值得早点注意。这个积木可以从比它交易的那张图更高的时间周期上读取 RSI。多周期过滤就是这样在完全不写代码的情况下搭出来的。

分步操作:在 Builder 里把这个 RSI EA 搭出来

  1. 打开 EA Builder,从图库载入 rsi_reversal 模板,或者从一张空白画布开始。载入模板更快;自己搭一遍,才知道哪一根连线在做什么。
  2. 从 Utility 面板放一个 Start 节点。没有它的流程,会在生成任何东西之前以 EAB-E202 通不过校验。
  3. 加上 RSI 指标积木并设置 period。第一次搭的时候就把它留在 14,这样你的结果才能和下面那条基线对得上;如果你希望规则只在已收盘的K线上评估,就把 shift 设成 1。
  4. 加一个 Compare 条件,把 RSI 积木接进去。这一步不是可有可无的接线:把指标直接接到下单积木上会被 EAB-E205 打回来——“insert a condition node (Compare/Cross) in between”(请在两者之间插入一个条件节点)——原因恰恰是,一个原始的指标数值并不是一个决策。
  5. 设定比较。买入一侧:RSI 小于 30。卖出一侧:RSI 大于 70。Compare 积木自己的默认运算符是 >,所以要记得翻过来的是买入那一支。
  6. 把每个条件分别接进它自己的 Open Buy / Open Sell 动作积木。
  7. Settings 标签页里设定风险——Money Management 和 Exit Strategy。共享的默认值是 50 点止损、100 点止盈和固定 0.01 手。一个没有有效止损的流程会触发 CRITICAL 级预检诊断,并要求你先确认才肯构建。
  8. Measure 运行内置的近似回测,然后对照面板打印出来的那条线来读结果:盈利因子至少 1.2、至少 60 笔交易、回撤不差于 20%。
  9. Compile .ex5,通过 File > Open Data Folder 把下载下来的文件移进 MQL5/Experts,然后刷新导航器。接着在策略测试器里认真测一遍,再让它靠近任何一个账户。
  • Start 节点
  • RSI 指标,period 14
  • Compare —— RSI 低于超卖水平
  • Compare —— RSI 高于超买水平
  • Open Buy
  • Open Sell
  • 止损与止盈
  • 编译成 .ex5
八个积木组成的 RSI 反转链条:从 Start 节点到编译好的文件

有两个积木新手总想去用,而现在还不该用。

Cross 问的是一条线是否在这根K线上穿越了另一条。这是一个比“是否低于”更严格、也完全不同的问题。用在这里,它只会在 RSI 跌穿 30 的那一根K线上触发——而不是在它一直停留在下面的每一根K线上都触发。

面板里还带着一个 RSI Divergence 条件积木。它检测的是价格创出新极值而 RSI 没有跟上,默认 level 30、pivot_bars 70、near_band 10。它需要一个 shift 设为 1 的 RSI 积木接进来。那是一套确实不同的策略,不是对这一套的调参。

RSI 的进场、出场与参数设置

下面是这套配方暴露出来的每一个值,以及改动它究竟会发生什么。

参数模板取值改动它会怎样
RSI period14越短反应越快,触发次数多得多;越长越平滑,极少触发。它改变交易笔数的程度,大于改变胜率
超卖水平30越低越严格——入场更少、更深。这个模板的身份就住在这里
超买水平70卖出一侧的镜像
shift0设为 1 表示只在已收盘的K线上做决定。在 M5 上,这就是一小时几次决策和一小时几百次决策的差别
止损50 点(共享默认值)被搜索过的范围是 20–50
止盈100 点(共享默认值)被搜索过的范围是 20–100
手数固定 0.01这不是一个策略参数;它只是把这套策略做的事情按比例放大,亏损也一样

每个人都会问的那个敏感度问题,这里给一个诚实的答案。 “要不要把 30/70 放宽到 20/80?”是每一篇 RSI 教程首先都会建议的事,而本页无法告诉你答案,因为这个模板记录在案的搜索从未改动过那两个水平。它改动的是止损和止盈——SL20-50 × TP20-100,H1 上跨三个窗口的 12 组组合——结论是 no_robust_edge,样本内最好的盈利因子是 0.91。所以那两个水平在这里仍然是一个未经检验的假设,而那些确实被测过的参数,无论从哪个方向都没能把这套设计抬到盈亏平衡。任何向你报出一个“最佳” RSI 水平的人,报的都是一种信念。

回测这个 RSI EA

这是 Builder 自己对这个模板的实测记录,不是一次重跑。下面这份对比里的每一个模板,共用紧随其后那张表中的同一套条件。我们如何测试说明了这些记录被要求达到的标准。

rsi_reversal 基线数值
盈利因子0.94
交易笔数682
最大回撤-0.97%
净利-51.37
被清单标记为 weak
在图库中被列为 recommended
通过 Measure 面板自身的合格线
测试条件
实验编号EXP-RSI-RECIPE-BASELINE-001
父实验EXP-BUILDER-TEMPLATE-BASELINE-001
品种 / 时间周期USDJPYm M5
期间2025-06-01 – 2026-06-09
模型M1 OHLC (Model=1)
入金10,000
环境Exness MT5
基线实测于2026-06-18
最近验证2026-08-25
0.94随附的 RSI 反转模板在出厂参数下的盈利因子
0.91它记录在案的参数搜索在任何地方找到的最好盈利因子——仍然是亏的
37 倍同一条 RSI 规则被放到两个货币对上跑时,回撤深了多少

读这张表的时候,请把最后两行放在一起看。图库把这个模板标为 recommended,而清单把它标为 weak,两个标记各自都是对的,只是说的不是同一件事:它是这个模式一个干净、成型的范例,而它亏了钱。在 53 个带有实测基线的模板里,40 个被标为 recommended,而 53 个全部被标记为 weak。“recommended”说的是接线,从来不是优势。

RSI 在它的邻居中间处在什么位置。 这八套设计全部是在上面那一套条件下实测的,而这也是把它们并排放在一起唯一说得过去的理由:

模板积木数盈利因子回撤交易笔数
ma_distance_pullback61.10-0.26%159
envelope_reversal100.95-1.16%989
cci_level70.95-0.94%789
rsi_reversal80.94-0.97%682
bb_bounce90.92-0.98%616
stoch_bb140.90-1.41%888
hl_range_reversal80.90-1.33%573
mfi_stddev_revert120.80-1.66%362

恰好只有一个越过了 1.0,而它正是那个不跟趋势对着干的。 ma_distance_pullback 在趋势仍然完好时买入一次回踩。那是在一个方向内部的均值回归,而不是与之对抗。它同时也是这一组里最小的设计,只有六个积木。每一个纯粹的“价格走过头了,所以反转”的模板,包括 RSI 在内,都收在盈亏平衡以下。

这就是本页上支持在 RSI 入场前面加一道趋势过滤的最有力论据。不过它的局限也值得直说。它只做了 159 笔交易,而 RSI 是 682 笔,所以那个结果是拿选择性换来的——而四分之一的样本量是一个更弱的主张,不是更强的。

需要避开的常见错误

把“超卖”读成“马上就要转向”。 这是这个指标特有的失效方式,也正是那些纯反转模板全都聚在 1.0 以下的原因。在一段持续的行情里,RSI 会长时间钉在一个极值上,而规则会一次又一次地触发,打进一段还没走完的趋势里。结束这些交易的是止损,这也是为什么把止损放宽会让这套设计变得更糟,而不是更安全。

编译了模板就当完事。 它同时带着一个 recommended 徽章和一份亏损的记录。那个徽章说的是接线。

一直调到回测好看为止。 这里记录在案的那次搜索已经诚实地做过这件事了——12 组组合、三个窗口——报出来的是 no_robust_edge。如果你自己的调参在一次系统性搜索都失败的地方产出了一个赢家,请先怀疑调参,再去相信那个赢家。这就是过拟合从内部看起来的样子。

靠增加货币对来抚平资金曲线。 那个双货币对组合就在上面的表里:回撤是单货币对版本的 37 倍。

相信一个建立在插值K线上的 M5 结果。 这条基线用的是 M1 OHLC 模型,所以K线内部的运动是仿真出来的,不是真实的。对一条在日内进出的规则来说,那是可信度的粗糙那一端——任何看起来有希望的东西,都请拿 MT5 自己的测试器、在真实 tick 数据上重跑一遍。

和另一个 EA 并排运行却不把它们分开。 同一个账户上的每一个 EA 都需要自己的魔术号,否则其中一个 EA 的出场逻辑会把另一个的持仓平掉。

下一步与变体

什么时候干脆别用 RSI。 在一个强趋势市场里,一条不带过滤的 RSI 反转就是一台卖出强势、买入弱势的机器。如果你说不出一个能在趋势期间把这条规则关掉的条件,那么诚实的选项就只有两个:加一道趋势过滤,或者换一个思路——均值回归讲的就是这一族策略需要什么样的市场条件,以及这些条件缺席时它要付出什么代价。

按证据强弱排序、值得一试的变体。 先加一道更高时间周期的方向过滤,因为这一族里唯一越过 1.0 的那个设计,正是要求趋势完好的那个——RSI 积木自己的 timeframe 参数不写一行代码就能做到这件事。然后再去试 RSI Divergence 条件积木,它问的是一个和水平穿越不同、也更严格的问题。只有在这之后才去动那两个水平,而且一次只改一个。

然后认真测一遍。 Measure 面板是一道筛子,不是一份判决:它是K线级别的,而且是近似的。MT5 回测怎么做从头到尾走了一次真实运行,包括报告里那两个回撤数字该信哪一个,而其余的回测指南覆盖了之后才轮到的优化与前进分析步骤。不用写代码做一个 MT5 MACD EA 则是那篇失效方式正好相反的姊妹配方——它那次搜索 确实 找到了一个在样本外也能赢的参数,而这比一个都没找到更危险。如果这套配方是你的第一个流程,不用写代码做一个 MT5 EA 会带你更完整地走一遍积木词汇表。

而如果你想看看一份有文档的记录长什么样已发布的 EA 每一个都带着完整的平仓交易清单和一份运行清单。拿其中一份去对照上面那张表,是校准“实测”二字究竟应该意味着什么最快的办法——在你相信任何一套策略之前,包括你自己的那一套。

常见问题

EA 的 RSI 参数应该设成多少?
Builder 的 RSI 积木默认在图表时间周期的收盘价上取 period 14,而随附的反转模板在 30 以下买入、70 以上卖出。这些是约定俗成的值,不是测出来的值——而且要紧的是,这个模板记录在案的参数搜索只改动了止损和止盈,跨 12 组组合和 3 个窗口,从未改动过 period,也从未改动过那两个水平。所以这里没有任何证据能说明 80/20 好过 70/30。请把你选定的任何一个水平都当成一个你还欠它一次检验的假设,并且一次只改一个值。
RSI 30/70 反转策略真的有效吗?
按它出厂的样子,无效。在美元/日元 M5 上实测一年,Builder 的 rsi_reversal 模板在 682 笔交易上收在盈利因子 0.94——一个小而稳定的亏损。它跨 12 组止损与止盈组合、记录在案的那次搜索返回了 no_robust_edge,而它在任何地方找到的最好结果是盈利因子 0.91,仍然低于盈亏平衡。它是整个图库里被搜索过的模板中,仅有的两个连样本内都没能赢过的之一。这并不说明 RSI 没用;它说明的是,一条不带过滤的 30/70 反转是一个起点,而不是一套策略。
RSI EA 需要在前面加一道趋势过滤吗?
实测证据指向这个方向,尽管是间接的。在图库的均值回归这一族里——八个模板全部在同一套条件下实测——唯一收在盈利因子 1.0 以上的是 ma_distance_pullback,一个六节点的设计,它在趋势仍然完好时买入一次回踩,在 159 笔交易上录得 1.10。那一组里每一个纯粹的反转,包括 RSI 在内,都收在 1.0 以下。问题在于,它的交易笔数也比其他所有模板少得多,所以它是用选择性换来了这个结果,而更小的样本是一个更弱的主张,不是更强的。
同一个 RSI EA 可以同时跑在多个货币对上吗?
可以,而且 Builder 确实随附了一个正是这么做的模板——但它的记录是本页上最强的一条警告。dualpair_rsi_basket 从一个设计里把同一套回归逻辑同时打在两个货币对上,在完全相同的测试条件下,它的回撤是 36.38%,而单货币对模板是 0.97%。那大约深了 37 倍,换来的盈利因子却更差而不是更好,因为相关货币对上的均值回归入场往往会同时触发并叠加,而行情还在继续往它们的反方向走。要加品种,就必须同时给总的未平仓敞口设一个上限。