2.4 EMA(指数移动平均线)

 

2.4.1 EMA 概念

EMA(Exponential Moving Average) 指数移动平均值是以指数式递减加权的移动平均,是一种趋势指标,要了均价趋势快慢的时候,用 EMA 更稳定。

EMA 的计算方法是一个递归公式
EMA(n)= 平滑系数 * 当前价格 +(1- 平滑系数)*EMA(n-1)
n 表示 ema 的周期,有短期、中期、长期,平滑系数 =2/(n+1)
在没有昨日 EMA 的情况下,该日的 EMA 用当日的收盘价代替,一般用第一天的收盘价为 EMA 的初始值

显然时间越靠近当今时刻,即 n 越小,它的权重越大,说明 EMA 函数对近期的价格加强了权重比,比 MA 更能及时反映近期价格波动情况。

以代码 600000 的股票数据为例,计算 5 日 EMA 值

A
1 5
2 =T(“D://600000.csv”).select( 收盘价 >0)
3 >k=2/(A1+1)
4 =A2.sort(日期)
5 =A4.new(日期, 收盘价,if(#>1,k* 收盘价 +(1-k)*ema[-1], 收盘价 ):ema)

A3 计算平滑系数 k
A4 对 A2 按日期升序排序
A5 代入递归公式计算 ema 值,其中 ema[-1] 表示前日的 ema 值。

imagepng

2.4.2 EMA 常见形态

EMA 金叉:EMA 短线上穿 EMA 长线
EMA 死叉:EMA 短线下穿 EMA 长线
EMA 多头:EMA 短线在 EMA 长线上方
EMA 空头:EMA 短线在长线下方
以代码 600000 的股票为例,分析其 EMA 形态,取短线周期为 5 日,长线周期为 20 日

A
1 [5,20]
2 =T(“D: //600000.csv”).select(收盘价 >0)
3 =A1.(2/(~+1))
4 =A2.sort(日期)
5 =A4.new(日期, 收盘价,if(#>1,A3(1)* 收盘价 +(1-A3(1))*ema 短线 [-1], 收盘价 ):ema 短线,if(#>1,A3(2)* 收盘价 +(1-A3(2))*ema 长线 [-1], 收盘价 ):ema 长线)
6 =A5.derive(if(ema 短线 >ema 短线 [-1] && ema 短线 >ema 长线 && ema 短线 [-1]<ema 长线 [-1],1,0):ema 金叉)
7 =A6.derive(if(ema 短线 <ema 短线 [-1] && ema 短线 <ema 长线 && ema 短线 [-1]>ema 长线 [-1],1,0):ema 死叉)
8 =A7.derive(if(ema 短线 >ema 长线,1,0):ema 多头,if(ema 短线 <ema 长线,1,0):ema 空头 )
9
10 =A8.select(日期 >date(“2022-02-01”) )
11 =canvas()
12 =A11.plot(“DateAxis”,“name”:“x”)
13 =A11.plot(“NumericAxis”,“name”:“y”,“location”:2,“autoRangeFromZero”:12)
14 =A11.plot(“Line”,“markerStyle”:0,“lineColor”:-16777216,“axis1”:“x”,“data1”:A10.( 日期),“axis2”:“y”,“data2”:A10.(ema 短线))
15 =A11.plot(“Line”,“shadow”:true,“markerStyle”:0,“lineColor”:-65536,“axis1”:“x”,“data1”:A10.( 日期),“axis2”:“y”,“data2”:A10.(ema 长线))
16 =A11.plot(“Legend”,“name”:"ema 短线",“legendText”:"ema 短线",“legendType”:3,“legendLineColor”:-16777216,“legendFillColor”:[“ChartColor”,0,true,-16777216,-16777216,0])
17 =A11.plot(“Legend”,“name”:“ema 长线”,“legendText”:“ema 长线”,“y”:0.3,“legendType”:3,“legendLineColor”:-65536,“legendFillColor”:[“ChartColor”,0,true,-65536,-65536,0])
18 =A11.draw@p(800,400)

A3 计算平滑系数 k
A4 将 A2 按日期升序排列
A5 用递归公式计算 ema 短线和长线
A6 判断每日是否出现金叉,是返回 1,否返回 0。判定条件:EMA 短线 (t) > EMA 短线 (t-1) and EMA 短线 (t) –EMA 长线 (t)> 0 and EMA 短线 (t-1) – EMA 长线 (t-1)< 0
A7 判断每日是否出现死叉,是返回 1,否返回 0。判定条件:EMA 短线 (t) <EMA 短线 (t-1) and EMA 短线 (t) –EMA 长线 (t)< 0 and EMA 短线 (t-1) – EMA 长线 (t-1)> 0
A8 判断每日是否多头和空头。判定条件 EMA 短线 (t) > EMA 长线(t) 为多头,EMA 短线 (t) <EMA 长线(t) 为空头。
imagepng
A10-A18 用图形化方式来表示 5 日 EMA 和 20 日 EMA 走势
A10 取画图的时间段,2022 年 2 月 1 日至 4 月 13 日
A14 定义 EMA 短线
A15 定义 EMA 长线
A16 A17 定义图例
A18 画图

imagepng

圈 1EMA 短线下穿长线为死叉,圈 2EMA 短线上穿长线为金叉
圈 1 和圈 2 之间基本是空头,圈 2 之后为多头