K 线形态 - 均线粘合

逻辑说明:

多条移动平均线(如 5 日、10 日、20 日、60 日)在一段时间内相互纠缠,聚集在一个很小的价格区间内。这代表市场在一定时期内成本高度集中,是多空力量平衡的体现,通常预示着即将出现大幅度的方向性选择(变盘)。

突破的界定:

  • 向上突破:收盘价有效站稳在均线粘合区间的上轨(即所有均线的最大值)之上。

  • 向下跌破:收盘价有效跌破在均线粘合区间的下轨(即所有均线的最小值)之下。

如何提高突破的有效性(过滤假信号):

  • K 线实体确认:要求突破日是一根中阳线或大阳线(对于上破)或中阴线或大阴线(对于下破)。

  • 成交量确认(极其重要):突破时必须伴随成交量的显著放大。没有成交量支持的突破,很可能是假信号。

计算公式:

  • 计算多条均线的最大值和最小值(缺省为 5,10,20,60):ma_upper_band=max(MA5, MA10, MA20, MA60),ma_lower_band =min(MA5, MA10, MA20, MA60)

  • 判断最大值和最小值之间的差距是否小于一个阈值(例如,股价的 3%,通过参数控制):(ma_upper_band - ma_lower_band) / 收盘 < 0.03

  • 上破:收盘 >ma_upper_band && 收盘 > 开盘 *(1+0.02) (阈值通过参数控制)

  • 下破:收盘 <ma_lower_band && 收盘 < 开盘 *(1-0.02) (阈值通过参数控制)

  • 成交量放大:成交量 > 成交量 [-19:0].avg()*1.5 (阈值通过参数控制)

返回值:

当均线粘合时,出现上破且成交量放大,返回 1,表示后期持续看涨;

当均线粘合时,出现下破且成交量放大,返回 -1,表示后期持续看跌;

否则返回 0


指标参数:

$y

输出列名

n1

周期 1,缺省 5

n2

周期 2,缺省 10

n3

周期 3,缺省 20

n4

周期 4,缺省 60

k1

均线粘合阈值,缺省 0.03

k2

上下突破阈值,缺省 0.02

k3

成交量放大比率,缺省 1.5

函数代码:


A

B

1

func MA_Squeeze (A,$y,n1,n2,n3,n4,k1,k2,k3)

=A.derive@o(收盘 [1-n1:0].avg():MA1, 收盘 [1-n2:0].avg():MA2, 收盘 [1-n3:0].avg():MA3, 收盘 [1-n4:0].avg():MA4)

2


=A.derive@o(max(MA1,MA2,MA3,MA4):ma_upper_band,min(MA1,MA2,MA3,MA4):ma_lower_band)

3


=A.run(if((ma_upper_band - ma_lower_band) / 收盘 <k1 && 收盘 >ma_upper_band && 收盘 > 开盘 *(1+k2) && 成交量 > 成交量 [-19:0].avg()*k3:1, (ma_upper_band - ma_lower_band) / 收盘 <k1 && 收盘 <ma_lower_band && 收盘 < 开盘 *(1-k2) && 成交量 > 成交量 [-19:0].avg()*k3:-1; 0):${y})

4


=A.alter(;MA1,MA2,MA3,MA4,ma_upper_band,ma_lower_band)

举例:

调用脚本计算浦发银行 2024 年的均线粘合:


A


1

/计算出源数据

2

=A1.derive(:MA_Squeeze)

/增加要返回的指标字段

3

=MA_Squeeze(A2, MA_Squeeze, 5,10,20,60, 0.03, 0.02, 1.5)

/调用函数计算指标

运行效果:

..