3、趋势共振:均线系统在不同周期上的共振(MA5/MA10/MA20)。金叉死叉的共振过滤。
各位同学,咱们今天聊一个实战中特别实在的话题——趋势共振。
很多新手做交易,喜欢看单一周期。比如只看日线,金叉就买,死叉就卖。结果呢?经常被来回打脸。为什么?因为单一周期的信号,太容易被市场噪音干扰了。
我个人习惯,是把MA5、MA10、MA20这三条均线,放在不同周期上去看。说白了,就是让大周期定方向,小周期找入场点。这叫“以大周期为锚,以小周期为箭”。
3.1 均线系统的三层过滤逻辑
先讲清楚一个核心逻辑:周期越大,信号越稳,但越迟钝;周期越小,信号越灵敏,但越虚假。
所以我们要做的是——用大周期过滤方向,用小周期过滤时机。
我一般用这三层:
- 第一层(大周期):周线或日线。判断市场的主趋势方向。比如周线MA5上穿MA20,说明大趋势偏多。
- 第二层(中周期):60分钟或30分钟。确认当前波段是否与大周期共振。如果大周期看多,中周期也出现金叉,那这个信号的可靠性就高很多。
- 第三层(小周期):15分钟或5分钟。用来找具体的入场点。大周期和中周期都共振了,小周期一出现金叉,就可以考虑进场。
嗯,这里要注意:三层共振不是必须同时发生。有时候大周期和中周期已经共振了,小周期还在震荡,那就等一等。别急,机会有的是。
3.2 金叉死叉的共振过滤
金叉死叉,大家都知道。但怎么过滤掉那些假信号?
我分享一个我自己的经验:不要只看均线交叉的那一瞬间。要看交叉前后的均线排列状态。
举个例子:
- 真金叉:MA5上穿MA10,同时MA10也在向上走,MA20也拐头向上。三条均线呈多头排列(MA5 > MA10 > MA20)。这种金叉,成功率很高。
- 假金叉:MA5上穿MA10,但MA10还在向下,MA20也是向下的。这种金叉,说白了就是反弹,大概率会失败。
我曾经在期货上吃过这个亏。当时日线MA5上穿MA10,我一看金叉就追进去了。结果MA20还在向下压着,价格没涨两天就掉头往下,直接把我套住了。后来复盘才发现,那根本就是个假金叉。
所以,我现在的规则是:金叉必须配合均线排列。只有多头排列下的金叉,才值得参与。死叉同理,只有空头排列下的死叉,才值得做空。
3.3 实战中的周期搭配
不同交易风格,周期搭配不一样。我列个表,大家参考:
| 交易风格 | 大周期(定方向) | 中周期(确认) | 小周期(入场) |
|---|---|---|---|
| 短线 | 60分钟 | 15分钟 | 5分钟 |
| 波段 | 日线 | 60分钟 | 15分钟 |
| 中长线 | 周线 | 日线 | 60分钟 |
我个人做波段比较多。所以我的习惯是:日线看方向,60分钟看共振,15分钟找入场。你想想看,日线多头排列,60分钟也金叉了,这时候15分钟一出现回调不破均线,那就是很好的入场点。
3.4 代码实现:多周期共振过滤
光说不练假把式。咱们直接上代码。下面这个Python函数,实现了多周期均线共振的过滤逻辑。
import pandas as pd
import numpy as np
def multi_period_resonance_filter(df_daily, df_60min, df_15min):
"""
多周期均线共振过滤
:param df_daily: 日线数据,需包含'close'列
:param df_60min: 60分钟数据
:param df_15min: 15分钟数据
:return: 是否产生共振信号
"""
# 计算各周期均线
df_daily['MA5'] = df_daily['close'].rolling(5).mean()
df_daily['MA10'] = df_daily['close'].rolling(10).mean()
df_daily['MA20'] = df_daily['close'].rolling(20).mean()
df_60min['MA5'] = df_60min['close'].rolling(5).mean()
df_60min['MA10'] = df_60min['close'].rolling(10).mean()
df_60min['MA20'] = df_60min['close'].rolling(20).mean()
df_15min['MA5'] = df_15min['close'].rolling(5).mean()
df_15min['MA10'] = df_15min['close'].rolling(10).mean()
df_15min['MA20'] = df_15min['close'].rolling(20).mean()
# 获取最新数据
daily_last = df_daily.iloc[-1]
daily_prev = df_daily.iloc[-2]
min60_last = df_60min.iloc[-1]
min60_prev = df_60min.iloc[-2]
min15_last = df_15min.iloc[-1]
min15_prev = df_15min.iloc[-2]
# 判断大周期方向(日线多头排列)
daily_bull = (daily_last['MA5'] > daily_last['MA10'] > daily_last['MA20'])
# 判断中周期金叉(60分钟)
min60_golden_cross = (min60_prev['MA5'] <= min60_prev['MA10']) and (min60_last['MA5'] > min60_last['MA10'])
# 判断小周期金叉(15分钟)
min15_golden_cross = (min15_prev['MA5'] <= min15_prev['MA10']) and (min15_last['MA5'] > min15_last['MA10'])
# 共振条件:大周期多头 + 中周期金叉 + 小周期金叉
if daily_bull and min60_golden_cross and min15_golden_cross:
return "多头共振信号"
elif not daily_bull and min60_golden_cross and min15_golden_cross:
return "注意:大周期不共振,信号可靠性低"
else:
return "无共振信号"
这段代码的逻辑很清晰:先判断大周期方向,再看中周期和小周期的金叉。只有三层都满足,才输出“多头共振信号”。
3.5 避坑指南
最后,分享几个我踩过的坑:
- 不要过度共振:我曾经试过把5个周期都拿来共振,结果信号少得可怜,一年都做不了几笔交易。其实3个周期就够了。
- 注意均线的滞后性:均线本身就是滞后指标。共振过滤虽然能提高胜率,但也会让你错过一些急涨急跌的行情。有得必有失。
- 震荡市慎用:在横盘震荡的行情里,均线会频繁交叉,共振信号也会失效。这时候最好的策略是——不做。
嗯,关于趋势共振,今天就聊这么多。记住一句话:周期共振不是万能钥匙,但它能帮你过滤掉大部分垃圾信号。