#### Previous topic

fynance.features.momentums.wma

#### Next topic

fynance.features.momentums.smstd

# fynance.features.momentums.emstd¶

fynance.features.momentums.emstd(X, alpha=0.94, w=None, axis=0, dtype=None)

Compute exponential moving standard deviation(s) for each X’ series.

$emstd^{\alpha}_t(X) = \sqrt{\alpha\times emstd^{\alpha}_{t-1}^2 + (1-\alpha) \times X_t^2}$
Parameters: X : np.ndarray[dtype, ndim=1 or 2] Elements to compute the moving standard deviation. alpha : float, optional These coefficient represents the degree of weighting decrease, default is 0.94 corresponding at 20 lags memory. w : int, optional Size of the lagged window of the moving average, must be strictly positive. If w is None the window is ignored and the parameter alpha is used. Default is None. axis : {0, 1}, optional Axis along wich the computation is done. Default is 0. dtype : np.dtype, optional The type of the output array. If dtype is not given, infer the data type from X input. np.ndarray[dtype, ndim=1 or 2] Exponential moving standard deviation of each series.

Notes

If the lagged window w is specified $$\alpha$$ is overwritten by $$\alpha = 1 - \frac{2}{1 + w}$$

Examples

>>> X = np.array([60, 100, 80, 120, 160, 80])
>>> emstd(X, w=3, dtype=np.float64)
array([ 0.        , 14.14213562, 10.        , 15.8113883 , 23.97915762,
24.49489743])
>>> emstd(X.reshape([6, 1]), w=3, dtype=np.float64).flatten()
array([ 0.        , 14.14213562, 10.        , 15.8113883 , 23.97915762,
24.49489743])
>>> emstd(X, alpha=0.5, dtype=np.float64)
array([ 0.        , 14.14213562, 10.        , 15.8113883 , 23.97915762,
24.49489743])