把状态当成事件
检测快线是否在慢线之上,在整段趋势里都为真。检测它是否刚刚穿过,则还需要前一根 K 线——两者的差别就是一次入场和几十次入场的差别。
一种给近期价格更高权重的移动平均线,因此比简单平均更早转向。EA 的趋势过滤和交叉入场建立在它之上的次数,多过任何其他指标。
亦称:EMA, 指数均线
更新于 · 审阅于
一条近期价格的平均线,对刚刚发生的事比对一段时间之前发生的事更上心。它比普通平均线转得更快,所以在趋势里更有用,在震荡区里更聒噪。
指数均线是 EA 趋势逻辑的默认积木:它提供 ADX 这类指标刻意不提供的方向。它同时也是散户 EA 中被滥用最多、被过度优化最多的部件——因为交叉规则写起来容易,而它的两个周期又太容易调到任何一段历史都显得盈利为止。
| 设置项 | 常见取值 | 备注 |
|---|---|---|
| 快/慢组合,短线 | 8 / 21 | 反应很快;会产生大量交叉,而其中多数并不是趋势。 |
| 快/慢组合,中线 | 50 / 200 | 被广泛关注的一对。信号很少,而且给出的信号来得晚。 |
| 单一趋势过滤 | 入场周期上的 EMA 200 | 当作方向闸门用,而不是当作入场信号。 |
| 应用价格 | Close | 常规且稳定。中位价或典型价会进一步平滑,并改变每一个回测结果。 |
| 信号 K 线 | 最后一根已收盘的 K 线 | 读取正在形成的 K 线,会产生在这根 K 线内部出现又消失的交叉。 |
读状态和读事件的区别,这是 EA 代码里最常见的一个均线错误。
在强趋势里测试时,两个版本看起来都盈利。但其中只有一个是原本想要的策略。
计算 if (fast[2] <= slow[2] && fast[1] > slow[1]) → 向上交叉
结果 每次交叉入场一次,而不是每根 K 线入场一次
一条均线规则写起来容易,凑合起来也容易。所有值得检查的事情,都关乎参数被挪动之后还能不能站住。
| 区间 | 含义 |
|---|---|
| 周期挪动 10% 结果就崩掉 | 被拟合到了测试窗口上。稳健的设置,它的邻居也同样能用。 |
| 很宽一段周期组合都表现相近 | 这个效应更可能是结构性的而不是拟合出来的,这正是优化曲面上出现平台区的含义。 |
| 没有市况过滤的交叉 | 信号在震荡区里同样会触发,而在那里它们大多亏损。这正是通常要加上 ADX 或波动率过滤去修正的问题。 |
| 在正在形成的 K 线上读取 | 无法复现。同一段行情会因为跳价到达的时间不同而产生不同的入场。 |
移动平均的 `/indicators` 页面讲的是计算方式以及与 SMA 的比较;这一条讲的是指数均线如何接进 EA 的逻辑里。
检测快线是否在慢线之上,在整段趋势里都为真。检测它是否刚刚穿过,则还需要前一根 K 线——两者的差别就是一次入场和几十次入场的差别。
光滑曲面上的两个自由参数,总能生成一份漂亮的回测。真正有价值的是相邻的组合是否表现相近,这就是效应与拟合之间的分界。
在震荡区里均线会不停交叉,而那些交叉几乎全是亏的。过滤器不是对策略的优化——它是让这套策略变得可用的前提。
它反应更快,而这把刀是双刃的:在真实趋势里入场更早,在噪音里假信号更多。哪一个更合适取决于策略,而两者的差别比周期选择的差别还要小。
这里发布了十四个 EA,并附有各自完整的平仓记录。其中没有任何一个从指数移动平均线里取方向。
| 判断方向的机制 | EA 数量 | 具体是什么 |
|---|---|---|
| 一目均衡表转换线/基准线交叉 | 5 | Kestrel Hover、Orrery、Peregrine、Tessera、Zerqon |
| 叠放的简单移动平均线 | 1 | Lanternfish —— M30 上的 SMA 25/50/75,入场在 M5 |
| 指数移动平均线 | 0 | —— |
| 交叉之外的其他机制 | 8 | RSI 极值、通道边缘的回归、K 线形态 |
这五个留下了交叉、舍弃了调参:转换线和基准线的周期来自指标本身的定义,而不是来自网格搜索。五个都读取已收盘的 K 线,其中 Orrery 和 Peregrine 还要等信号 K 线的实体超过其近期均值的若干倍才动手——这正是一个裸交叉所需要的市况过滤。它们的盈利因子在 1.27 到 1.46 之间,和目录里其余产品处在同一档,并没有更高。
策略测试器的输入参数页为每个周期提供起始值、步长和终止值。请读完整份结果,而不是只看最上面一行:一片彼此相邻、表现接近的组合是效应,孤零零的一个尖峰则是拟合。这就是过拟合在实务中的样子,也是为什么像ADX 这样的过滤器应该排在再调一个周期之前。