ema
New in version 1.30.2.
语法
ema(X, window, warmup=false)
TA-lib 系列函数参数说明和窗口计算规则请参考: TA-lib 系列
参数
New in version 1.30.21.
warmup 布尔值,默认为 false,即计算结果的前 window-1 个元素为空值。若为 true,则结果的前 window-1 元素将由详情给出的公式计算得出。
详情
在给定长度(以元素个数衡量)的滑动窗口内,计算 X 的指数移动平均(Exponential Moving Average)。
其计算公式为:
warmup=false:
\(EMA_k = \displaystyle{\frac{2}{n+1}}*X_k + \Bigl(1-\displaystyle{\frac{2}{n+1}}\Bigr)*EMA_{k-1}\)
warmup=true:
\(EMA_k=\begin{cases}X_0,\quad\text{k=0}\\\frac{2}{size(X)+1}*X_k+(1-\frac{2}{size(X)+1})*EMA_{k-1}, \quad\text{size(X)<n}\\\frac{2}{n+1}*X_k+(1-\frac{2}{n+1})*EMA_{k-1}, \quad size(X)\geq n\end{cases}\)
其中:\(EMA_k\) 为第 \(k\) 个指数移动平均值,\(n\) 为移动窗口长度,\(X_k\) 为向量 \(X\) 中第 \(k\) 个元素。
例子
$ x=12.1 12.2 12.6 12.8 11.9 11.6 11.2
$ ema(x,3);
[,,12.3,12.55,12.225,11.9125,11.55625]
$ ema(x,3, warmup=true)
[12.1,12.2,12.4667,12.6333,12.2667,11.9333,11.5667]
$ x=matrix(12.1 12.2 12.6 12.8 11.9 11.6 11.2, 14 15 18 19 21 12 10)
$ ema(x,3);
#0 |
#1 |
---|---|
12.30 |
15.666667 |
12.55 |
17.333333 |
12.225 |
19.166667 |
11.9125 |
15.583333 |
11.55625 |
12.791667 |