趋势跟踪
趋势跟踪 EA 在已经形成的走势方向上入场,并在走势持续期间一直持仓。业绩记录的形状——胜率、盈亏比、连亏长度——来自离场规则而不是入场规则。这也是本站公开的趋势 EA 胜率从 31 % 一直跨到 79 % 的原因。
机制
趋势 EA 通过均线关系、通道或 ATR 通道突破、动量读数越过阈值来确认方向,然后顺势入场并管理持仓直到趋势结束。差别最大的是离场:移动止损或信号反转会在走势延续期间一直持有盈利单,而固定止盈则在设定距离上把它们平掉。仓位固定或按 ATR 缩放,交易频率很低——本站公开的五只趋势 EA 每月交易 2.9 到 7.1 次。
适配性
最适合走势能延续许多根 K 线的市场:H1 与 H4 上的主要货币对、股指 CFD,以及受宏观主题驱动的金属或加密货币。对震荡行情极不友好,那里的入场往往被随即回落的走势触发。由于持仓时间长,单笔成本的分量远小于剥头皮,但在跨越多日的持仓上,隔夜掉期会变成真实开支。适合能让持仓自行运行数小时或数天、并能在不关掉 EA 的情况下熬过连亏的交易者。
备注
趋势跟踪是仍然有效的最古老的系统性优势,也是最常被描述错的一个。它的机制不是预测:EA 会等到方向已经形成,加入其中,并在识别出该方向的条件仍然成立时一直待在里面。钱是靠持有赚到的,这也正是它对人类而言最难手动执行、却最适合交给智能交易系统的原因。
通常附在它身上的那句描述——趋势系统输掉大多数交易,靠少数几笔大盈利把钱赚回来——是一个关于数字的主张。既然如此,它可以被核对,而不是被重复。用我们自己的数据、也就是本站公开的趋势 EA 来核对,它只对五只中的一只成立。本页讲的是趋势 EA 在 MetaTrader 5 内部如何构建、那些记录显示了结果具有怎样的形状,以及在资金暴露之前如何对它做压力测试。
工作原理:会跟随的入场,与作出决定的离场
入场这一侧早已被走烂,并且在很大程度上可以互换。三种构造覆盖了市面上出售的绝大部分:
- 均线关系。 快线上穿慢线,或价格站在某条均线之上,被当作”方向已经形成”的陈述。计算便宜,按其构造必然滞后。
- 通道或 ATR 通道突破。 当价格收在 n 根 K 线的最高点之上,或收在围绕某个均值的 ATR 通道之外时入场。这样触发条件是按当前波动率缩放的,而不是固定的点数距离。
- 动量阈值。 方向性震荡指标越过某个水平,通常再配一个更高周期的过滤器,以免 EA 去交易震荡区间内部的动量读数。
离场才是趋势 EA 真正分道扬镳的地方,而它偏偏是买家最后才读的部分。每笔交易的期望值等于 胜率 × 平均盈利 − (1 − 胜率) × 平均亏损。这是算术,不是发现。有用的推论在于:一旦离场规则被固定,这两项就不再互相独立。拖动止损的离场会在走势延续期间一直持有盈利单,这会抬高平均盈利、拉长盈利一侧的持仓时间,同时压低胜率,因为普通的噪音会在走势展开之前把单子扫出去。固定止盈的离场则正好相反:它在设定距离上平掉盈利单,让亏损单一路跑到止损,于是得到高胜率,以及小于平均亏损的平均盈利。
两者都不算错。只要入场跟随趋势,它们都是趋势跟踪。但它们产生的记录看上去像是两种完全不同的策略——这正是单看胜率几乎无法告诉买家自己在买什么的原因。
公开的趋势记录显示了什么
下表中的每一个数字,都是从各只 EA 页面上公开的已平仓交易清单计算而来——共计 1,498 笔,来自始于 2019 年或 2021 年、一直延续到 2026 年 3 月的记录。完整的运行、参数与测试条件公布在本站的方法论中。
| EA | 品种 / 周期 | 交易数 | 胜率 | 盈亏比(平均盈利 ÷ 平均亏损) | 中位持仓,盈利 ÷ 亏损 | 最长连亏 |
|---|---|---|---|---|---|---|
| Kestrel Hover | USD/JPY M15 | 284 | 30.99 % | 2.95 | 5.00× | 9 |
| Tessera | USD/JPY H1 | 624 | 50.64 % | 1.25 | 1.10× | 8 |
| Orrery | JP225 H1 | 195 | 55.90 % | 1.01 | 1.45× | 4 |
| Zerqon | US30 H4 | 232 | 78.45 % | 0.42 | 0.84× | 2 |
| Peregrine | BTCUSD H4 | 163 | 78.53 % | 0.33 | 0.41× | 3 |
由此可以得出三件事,而没有一件符合流传的说法。
胜率无法识别策略。 这五只从 30.99 % 一直铺到 78.53 %。它们的中位数 55.90 % 并不低于本站公开的均值回归 EA 的中位数(54.50 %)。按胜率筛选一份目录,排序的是 EA 的离场规则,而不是它们交易什么。
盈亏比跟随的是盈利单相对亏损单被持有多久。 请把最后三列数字放在一起读。把盈利单持有得比亏损单久五倍的那只 EA,盈亏比接近 3.0;持有盈利单不到亏损单一半时间的那只,盈亏比约为 0.33。这个次序在五只中的四只上是单调的——Tessera 与 Orrery 互换了位置,而两者仅相差 0.24。这就是离场规则直接显现在记录的算术里。
看上去最平滑的记录,恰恰是最集中的记录。 表中胜率最高的两只,也正是利润依赖最少笔交易的两只。Peregrine 最大的五笔盈利相当于其净利润的 106.1 %——把它们拿掉,剩下的 158 笔交易净额为负。Zerqon 最大的五笔占净利润的 39.8 %。而输得最频繁的那只 Kestrel Hover,对自己最好那几笔交易的依赖反而比它们都小。
市场条件:趋势 EA 何时获利,何时崩掉
| 条件 | 对趋势 EA 有利 | 对趋势 EA 不利 |
|---|---|---|
| 市场状态 | 能延续许多根 K 线的方向性走势 | 在边界处反复掉头的破碎震荡 |
| 波动性 | 正在扩张,信号之后有延续 | 高但无方向——K 线很大,净移动为零 |
| 周期匹配 | 走势幅度明显超过点差与滑点 | 信号所在周期上,成本吃掉了平均走势 |
| 持仓成本 | 所交易方向上掉期为中性或为正 | 多日持仓中每晚支付的负持有成本 |
| 事件风险 | 延长既有方向的宏观主题 | 单一事件干净利落地扭转方向 |
这套策略的坏环境不是下跌的市场,而是没有方向的市场。在震荡区间里,入场条件被随后回落的走势一再满足,而每一次尝试都要付出入场成本外加止损。这正是均值回归失效方式的镜像,也是把两者并排考虑、而不是互为替代的诚实理由:它们在不同的天气里亏钱。
第二个值得直说的条件是持仓成本。在本站的记录中,盈利单的中位持仓时间在大约 7 小时到大约 8 天之间,而跨越夜晚与周末的持仓每晚都要付融资成本。一套平均盈利并不大、盈利单却要持有一周的策略,可能在信号毫无差错的情况下,把可观的一部分优势交给掉期。
MT5 中的参数与设置
| 输入项 | 常见起点 | 控制什么 |
|---|---|---|
MA_Fast / MA_Slow(或通道周期) | 长到足以让信号是一段趋势,而不是一次抖动 | 在 EA 判定方向已经形成之前,需要累积多少走势 |
ATR_Period / ATR_Mult | 按波动率缩放,而不是固定点数距离 | 止损距离,以及在通道构造中作为入场触发本身 |
TrailStart / TrailStep | 从噪音带之外开始,按波动率单位推进 | 盈亏比与胜率之间的全部取舍都住在这里 |
TakeProfit | 若离场本就要拖动,则设为零 | 非零的上限会把记录变成高胜率、盈亏比低于 1 |
MaxSpreadPoints | 设在该品种正常点差略上方 | 点差异常时阻止入场——此处不如剥头皮关键,但这是最便宜的防线 |
OncePerBar | 收盘逻辑设为 true | 防止同一信号在一根 K 线内反复触发,从而悄悄改变策略 |
| 时段 / 星期过滤 | 除非品种需要,否则关闭 | 股指与金属品种存在某些时段,那里的”趋势”只是缺乏流动性的漂移 |
有三条 MT5 特有的现实,决定一份漂亮的回测能否经受真实接触:
- 止损有最小距离。 试图贴得比经纪商止损水平更近的移动止损会被拒绝,而 EA 会像它已经设好那样继续运行。请读取
SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL)并据此限制拖动幅度;对靠近现价的修改,也用同样方式对待SYMBOL_TRADE_FREEZE_LEVEL。 - 掉期是策略成本,不是脚注。
SymbolInfoDouble(symbol, SYMBOL_SWAP_LONG)与SYMBOL_SWAP_SHORT才是适用于你账户的数值,而三倍掉期日各家经纪商并不相同。跨越多日的趋势 EA 需要把它们放进测试,而不是用假设抹掉。 - 收盘逻辑必须按它实际运行的方式测试。 每根 K 线只评估一次的 EA,在”每一个 tick”与”仅开盘价”两种模式下表现并不相同,而差异恰恰在移动止损所在之处最大。请用你将要交易的品种的真实 tick 历史来测试,并在看盈利之前先读这次运行的建模质量。
- 固定入场规则并且不要再动它——你即将测量的差异大部分来自离场,同时改动两者什么也说明不了。
- 用拖动式离场和固定止盈分别测试同一个入场,并记录各自的胜率、盈亏比与中位持仓时间。这两份记录才是你真正在做的选择。
- 用波动率单位(ATR)而不是点数来设定止损,然后把拖动幅度限制到该品种的最小止损距离。
- 查看所得记录中的最长连亏,并在注资之前决定:长度翻倍的一段你还熬不熬得住。
- 把真实持仓期内的掉期计入后重新计算结果,确认优势能够挺过去。
失效方式:趋势 EA 是怎么亏钱的
- 市场不再有趋势。 入场继续被随后回落的走势触发,账户是被止损一点点放血,而不是毁于某一次灾难。这是趋势 EA 正常的亏钱方式,而且可能在策略完好无损的情况下持续数月。
- 拖动比噪音还紧。 设在该品种正常回撤之内的移动止损,会把盈利单变成平局。资金曲线走平、获利因子下滑,而没有任何一条规则失灵——离场只是把那些为其余一切买单的交易删掉了。
- 策略熬得过连亏,交易者往往熬不过。 在 31 % 的胜率下,连续九笔亏损是一段普通的连亏。在其中途关掉 EA,只会保留全部亏损并放弃随后的恢复。请在回撤之前读最长连亏,而不是在回撤之中。
- 靠一小撮交易撑起来的记录。 当最好的五笔就是全部利润时,回测是关于那五笔交易的陈述,而不是关于规则的陈述。请看看剔除最好的交易之后,曲线还剩什么样子。
- 只适配了一种行情状态的参数。 在一段方向性行情上优化出的均线与通道长度,到了下一段就会是错误的长度。相邻参数值给出天差地别的结果,正是那个数字被拟合出来、而不是被选出来的迹象。
- 只在实盘才出现的成本。 多日持仓的掉期、与持仓方向相反的周末跳空、因为贴得太近而被经纪商拒绝的移动止损。在一份设置得过于乐观的测试报告里,这些都不会自我声明。
如何在 mt5depot 构建并压力测试趋势 EA
要搭出上面描述的这台机器,并不需要写 MQL5:方向过滤器、确认后入场、按波动率缩放的止损,以及拖动式离场,都是无代码构建器里的积木。自己动手组装的理由在于,真正重要的测试不是”它能不能赚钱”,而是在同一个入场之上比较两种离场规则——没有任何一个卖家页面会替你跑这一步。
- 用两种离场——拖动与固定目标——测试同一条入场规则,并比较胜率、盈亏比与持仓时间,而不是只比利润。
- 用 ATR 设定止损,再把拖动幅度限制到该品种的最小止损距离,让测试器与实盘账户保持一致。
- 计入真实持仓期内的掉期;一套忽略融资成本的多日策略,量的是另一套策略。
- 剔除最好的五笔交易后重新计算记录,看看还剩下什么。
- 读取最长连亏,以及从最深回撤中恢复所需的时间,并事先决定这两样你都会熬过去。
- 用你真正要交易的品种的真实 tick 历史来测试,并在看利润之前先检查建模质量。
趋势跟踪与均值回归的对比
| 趋势跟踪 | 均值回归 | |
|---|---|---|
| 它假设什么 | 已经形成的方向会延续 | 被拉伸的价格会回到自己的均值 |
| 相对走势的入场 | 顺势,在确认之后 | 逆势,在极端处 |
| 何时亏钱 | 市场进入震荡、走势不断回落 | 市场走出趋势、拉伸继续拉伸 |
| 典型离场 | 移动止损或信号反转 | 在均值处的固定目标 |
| 最坏情况 | 一长串普通的亏损 | 一笔逆着不再回头的走势而持有的仓位 |
| 复杂度 | 入门——参数少,但难熬 | 中级——风险由离场与止损承担 |
总体上没有哪一种更安全,而它们的失效方式几乎互补:一个需要行情移动,另一个需要行情静止。这是同时运行两者的真正理由,但有一条表格无法呈现的告诫:使用固定止盈的趋势 EA 与均值回归 EA,并不像它们的标签所暗示的那样不同,因为此时两者都依赖价格在规则所说的地方停下。在认定持有两只 EA 就已经分散了什么之前,请先确认各自的离场究竟在做什么。
EA 目录
本目录中 7 个 趋势跟踪 EAs
相关文章
常见问题
- 什么是趋势跟踪 EA?
- 趋势跟踪 EA 会识别一个已经形成的方向,并顺着它开仓而不是逆着它。方向通常读自均线关系、通道或 ATR 通道突破,或者越过阈值的动量读数。随后它在条件成立期间持有仓位,并通过移动止损、信号反转或固定目标平仓。这是最容易描述、也最难熬的系统化策略,因为真正能盈利的版本经常要花上几周把浮盈交还回去。
- 趋势跟踪 EA 的胜率一定很低吗?
- 不一定,而这个假设会误导买家。在本站公开的五只趋势 EA 中,胜率从 30.99 % 到 78.53 %,其中位数(55.90 %)并不低于均值回归组的中位数(54.50 %)。真正把它们区分开的是离场规则。使用移动止损的 EA 持有盈利单的时间远长于亏损单,于是得到低胜率和大盈亏比;使用固定止盈的 EA 则得到相反的结果。就入场逻辑而言,两者都是趋势跟踪。
- 趋势 EA 适合哪个周期?
- H1 与 H4 是通常的落脚点,因为趋势必须持续得足够久,才能付得起那些失败的入场。本站公开的趋势 EA 运行在 M15、H1 和 H4 上,它们盈利单的中位持仓时间从大约 7 小时到大约 8 天不等。周期降低并不会让趋势消失,只会降低走势幅度与交易成本之比,所以在 H4 上有效的趋势规则,常常因为与信号毫无关系的原因在 M5 上失效。
- 趋势 EA 的连亏会有多长?
- 长到你必须事先决定自己会不会熬下去。本站胜率最低的趋势 EA 为 30.99 %,其公开记录中最糟的一段是连续九笔亏损;胜率最高的那只最糟只有两笔。请在给账户注资之前先读连亏,因为在一段普通连亏中被放弃的策略,已经被改造成一个只承担亏损的策略。
- 趋势 EA 需要移动止损吗?
- 它需要一种不会砍掉自己赖以为生的走势的离场方式,而移动止损是构建这种离场的常见做法。取舍非常直接:把止损拖得太紧会抬高胜率、缩短持仓时间,同时也会抹掉那些扛住亏损单的大盈利单。固定止盈是正当的替代方案,并会产生一份非常不同的记录:胜率更高,盈亏比低于 1。它的代价表现为集中度:在本站公开的记录中,胜率最高的两只趋势 EA,恰恰也是利润依赖最少笔交易的两只。
- 为什么掉期对趋势 EA 比对剥头皮更重要?
- 因为持仓会跨越夜晚和周末。剥头皮在几分钟内平仓,会多次支付点差与佣金;趋势 EA 每月只支付几次,取而代之的是持仓开着的每一晚都要付融资成本。在一份盈利单中位持仓超过一周的记录里,掉期是策略的结构性成本,而不是舍入误差。请读取真实交易品种的 SYMBOL_SWAP_LONG 与 SYMBOL_SWAP_SHORT,而不要假定那是个小数字。
Glossary