OptiNod 学院

均线交叉——系统为什么会失败

均线交叉作为入场信号太迟,在箱体震荡中信号最多、错得也最多。交叉只用作方向过滤,入场另行确定。

均线交叉系统是最广为人知的交易规则。短期均线(例如50日线)上穿长期均线(例如200日线)视为金叉并买入,下穿则视为死叉并卖出。


规则简单,看得见,所以容易照做。顺着一路单边延伸的趋势,两条线会长期保持张开,带来大笔利润。因此趋势行情持续得越久的资产,这个系统的历史成绩看上去就越好。


但均线是过去价格的平均值,总是慢于价格。交叉出现的那一刻,趋势早已走了很长一段。而且价格在箱体内来回震荡时,两条线不断缠绕,交叉会以很短的间隔反复出现。


交叉是事后确认趋势的信号。把它当作入场时机,趋势行情中入场偏晚,箱体行情中则被来回扫损(Whipsaw)折磨。改变交叉的用法,入场时机另行确定,只把它用作过滤方向的工具,就能避开这两个弱点。


交叉是趋势已经走完一段之后才给出信号的滞后确认
交叉是趋势已经走完一段之后才给出信号的滞后确认

交叉是事后确认趋势


均线是对过去几天或几百天收盘价取平均得到的值。平均的性质决定了它在价格掉头之后才会改变方向,而两条均线要交叉,需要的时间更长。


2023年2月7日,BTC的50日线上穿200日线,出现金叉,当时BTC价格为23,240美元。然而BTC在2022年11月已经在15,500美元附近见底。金叉给出信号时,价格已经从底部上涨了接近50%。


这就是交叉的本质。趋势开始很久之后,它才告诉你趋势开始了。正如EMA那篇文章中看到的,在两条线交叉之前,两条线的角度变化会先显示趋势转换。交叉只是过程的结果。


线越长,滞后越大。200日线是200天的平均,改变方向最慢,与50日线的交叉也就同样迟。想要更快的信号而改用短线,假交叉就会增多。滞后和假信号是此消彼长的取舍,减少一边,另一边就会增加。


箱体震荡中被来回扫损最多


交叉更大的问题在于箱体震荡。价格在一定范围内来回时,短线和长线靠得很近,频繁交叉。每次都会出现金叉或死叉信号,但没有趋势,每次都以来回扫损(Whipsaw)告终。


2023年9月12日,BTC出现死叉。50日线下穿200日线,价格为25,840美元。按信号应当卖出或做空。可恰恰是那个时候,成了当年最大一轮上涨的起点。


BTC在10月涨到35,000美元,50日线再次上穿200日线,10月30日在34,475美元出现金叉。按死叉信号卖出的人,在7周后,收到的是在高出33%的位置再次买入的信号。交叉在箱体的尽头、趋势的起点,最常出错。


死叉出现在底部附近是有原因的。50日线是前几个月下跌与横盘的平均值,价格刚开始掉头时,它仍然向下。所以价格触底并刚开始上涨的那个时候,死叉往往就形成了。


2024年同样的事再次发生。8月10日BTC在60,924美元出现死叉,之后价格没有崩溃,横盘后再度上涨。10月30日在72,345美元出现金叉。按死叉信号操作的人这次又收到在高出19%的位置买回的信号。


箱体震荡中这样成对的来回扫损不会只有一次。价格在区间内来回的期间,死叉和金叉交替出现,每次都会积累一笔小亏损。照着信号操作,趋势到来之前账户余额就先缩水了。


箱体震荡中死叉与金叉交替失准、亏损累积的来回扫损
箱体震荡中死叉与金叉交替失准、亏损累积的来回扫损

金叉的真正用处与局限


交叉并非没有用处。在金叉后上涨、死叉后下跌持续很久的趋势行情中,两条线保持张开,整个趋势期间都能把方向锁定在一侧。不过它的用处在于告诉你现在大的走向偏哪一边。精确的入场时机另行确定。


只跟着交叉这一个信号买卖的系统,会把趋势行情的利润,以箱体震荡的来回扫损亏损的形式吐回去。一年中趋势行情短、箱体行情长,按信号数量看,错误信号比正确信号多得多。所以把交叉单独用作入场信号,很难得到理想的期望值。总结一下,交叉只在有趋势时才对,没有趋势时最常出错。这意味着要先判断眼下有没有趋势,才能使用交叉。


回测中交叉看起来不错的原因


把均线交叉的回测跑得足够长,结果往往看上去像模像样。尤其是在某个资产长期上涨的区间,金叉买入、死叉卖出这种简单规则也能赚大钱。


但这些利润大部分并不来自系统的实力。它来自那个区间是上涨行情这一事实。把同样的规则放到箱体很长的区间或下跌行情中,就会被来回扫损吃掉利润。这是把只适合某个市场某一阶段的结果,误当成系统的实力。


因此,均线交叉系统要在包含不同市场状态的长区间内,计入手续费和滑点来验证。只截取上涨行情的回测,会让任何简单规则都显得不错。回测是用来检验系统能否扛住多个市场的工具。拿来炫耀某一区间的收益,就会读错结果。


不能只看某一区间的收益,还要看改变参数或区间后结果能否维持,才能分辨这个系统的真实实力。


该用什么周期


交叉的周期没有标准答案。50/200看大趋势,20/50看中期趋势,9/21看短期走势。周期越短信号越快,但假信号增多;越长假信号越少,但更迟。按自己的持仓周期来定数值即可。


这里常见的陷阱是周期优化,也就是用过去的数据去找收益最好的组合。但在某一区间表现最好的周期,只是针对那个区间调出来的值。2023年最适合BTC的组合,没有理由在2024年也最适合。越是拟合过去的周期,越容易在未来失准。


所以周期要按自己的交易周期简单确定,然后照用。避免用优化来挑选。SMA与EMA之间,EMA对近期价格更敏感,信号稍快;SMA更平滑,但更迟。无论选哪个,关键都是不要频繁更换周期。


把交叉用作方向过滤


把入场时机另行确定,只把交叉用作方向过滤,两个弱点就会减轻。50日线在200日线上方期间只考虑买入,在下方期间只考虑卖出。实际入场不在交叉时进行,而是依据价格结构。金叉状态下,价格回落到50日线或前一个回调低点后反弹的位置,就是入场点。


这样一来,交叉的滞后就不成问题。只过滤方向,入场放在回调处,从趋势初期开始就能以更好的价格入场。箱体震荡中ADX偏低,趋势条件不成立,入场本身就被过滤掉了。


作为方向过滤使用时,50日线还能给出入场位置。金叉状态的上升趋势中,价格常常回调到50日线附近后反弹。50日线起到了移动支撑线的作用。用交叉定下方向后,把回调到50日线的位置作为入场点,就能在趋势之内得到更好的价格。


出现死叉时,持有的多单失去了方向依据,因此停止新的买入。入场位置依据价格结构,而只看买入还是只看卖出,由交叉来决定。相当于给迟到的信号配上较快的入场。


用交叉只过滤方向,在50日线回调处入场的方式
用交叉只过滤方向,在50日线回调处入场的方式

减少来回扫损的三种做法


即使照原样使用交叉,也有减少来回扫损的办法。


  • 更长的均线:50/200的交叉比9/21少,假信号减少。代价是更慢。
  • 趋势过滤:只接受ADX高于一定值(例如20)时的交叉。能过滤掉箱体中的大部分交叉。
  • 确认距离与斜率:两条线几乎贴在一起时发生的交叉予以忽略,只接受明显拉开且朝同一方向倾斜时的交叉。

这三种做法都通过减少信号数量来防止来回扫损,但必须接受信号随之变慢。无论用哪种方法,交叉都是跟随趋势的工具。它猜不中趋势的起点。想猜中起点,就躲不开箱体中的假信号。


把交叉用于入场的方法


  • 入场条件:日线50日线在200日线上方(金叉状态),且ADX在20以上。价格回调到50日线附近,出现长下影线之类的反弹信号。
  • 入场:在反弹K线的收盘价买入。
  • 止损:放在回调低点下方。
  • 失效:50日线再次跌到200日线下方时,放弃方向判断并平仓。

从金叉状态与ADX条件出发,经回调入场、止损到失效的交易顺序
从金叉状态与ADX条件出发,经回调入场、止损到失效的交易顺序

均线交叉因为简单而有吸引力,也因为这份简单,在箱体震荡中不断吃亏。把交叉当作过滤方向的工具,入场依据价格结构另行确定。只要改变一次用法,最常见的系统就成了可用的工具。规则越简单,越要清楚它在哪里有效、在哪里失灵,才能使用。

用你自己的策略结果来确认

上传 TradingView 策略的交易列表(CSV)或 MT5 报告,即可计算盈亏、回撤和交易分布。无需登录即可分析。

分析我的交易记录 查看分析示例