EMA(指数移动平均线)

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

EMA 的计算方法是一个递归公式。
EMA= 平滑系数 * 当前价格 +(1- 平滑系数)*EMA(N-1)。
N 表示 ema 的周期,有短期、中期、长期。

平滑系数 =2/(N+1)
在没有昨日 EMA 的情况下,该日的 EMA 用当日的收盘价代替,一般用第一天的收盘价为 EMA 的初始值

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

指标参数:

y

指标返回的字段名。

x

要计算的字段,如收盘

n

时间周期,如 5


函数代码:


A

B

1

func EMA(A, $y, $x, n)

=ema_k=2/(n+1)

2


=A.run(if(#>1,ema_k*${x} + (1-ema_k)*${y}[-1],${x}):${y})

将函数保存在脚本 indicator.splx 中。

举例:

调用脚本计算浦发银行 2024 年收盘价的 5 日 EMA,要返回的指标字段命名为 ema_5。


A

B


5

=call@f("indicator.splx")

登记脚本中的函数

6

计算出源数据

7

=A6.derive(:ema_5)

增加要返回的指标字段

8

=EMA(A7,ema_5, 收盘,5)

调用函数计算指标

运行效果:

..