MovingAverages {TTR} | R Documentation |
Moving Averages
Description
Calculate various moving averages (MA) of a series.Usage
SMA(x, n=10) EMA(x, n=10, wilder=FALSE) WMA(x, n=10, wts=1:n) DEMA(x, n=10) EVWMA(price, volume, n=10) ZLEMA(x, n=10)
Arguments
x |
Vector to be averaged. |
price |
Vector of prices to be averaged. |
volume |
Volume series corresponding to price series, or a constant. See Notes. |
n |
Number of periods to average over. |
wts |
Vector of weights. Length of wts vector must equal the
length of x , or n (the default). |
wilder |
logical; if TRUE , a Welles Wilder type EMA will be
calculated; see notes. |
Details
SMA calculates the arithmetic mean of the series over the pastn
observations.
EMA calculates an exponentially-weighted mean, giving more weight to recent observations. See Warning section below.
WMA is similar to an EMA, but with linear weighting, if the length of
wts
is equal to
n
. If the length of wts
is equal to the length of x
, the WMA will the
values of wts
as weights.
DEMA is calculated as:
DEMA = 2 * EMA(x,n) - EMA(EMA(x,n),n)
.
EVWMA uses volume to define the period of the MA.
ZLEMA is similar to an EMA, as it gives more weight to recent observations, but attempts to remove lag by subtracting data prior to
(n-1)/2
periods to minimize the cumulative effect.
Value
SMA |
Simple moving average. |
EMA |
Exponential moving average. |
WMA |
Weighted moving average. |
DEMA |
Double-exponential moving average. |
EVWMA |
Elastic, volume-weighted moving average. |
ZLEMA |
Zero lag exponential moving average. |
Warning
Some indicators (e.g. EMA, DEMA, EVWMA, etc.) are calculated using the indicators' own previous values, and are therefore unstable in the short-term. As the indicator receives more data, its output becomes more stable. See example below.Note
ForEMA
, wilder=FALSE
(the default) uses an exponential smoothing ratio of
2/(n+1)
, while wilder=TRUE
uses Welles Wilder's exponential smoothing ratio of
1/n
.
Since
WMA
can accept a weight vector of length equal to the length of x
or of
length n
, it can be used as a regular weighted moving average (in the case
wts = 1:n
) or as a moving average weighted by volume, another indicator, etc.
For
EVWMA
, if volume
is a series, n
should be chosen so the sum of the
volume for n
periods approximates the total number of outstanding shares for the
security being averaged. If volume
is a constant, it should represent the total
number of outstanding shares for the security being averaged.
Author(s)
Josh UlrichReferences
The following site(s) were used to code/document this indicator:http://www.fmlabs.com/reference/ExpMA.htm
http://www.fmlabs.com/reference/WeightedMA.htm
http://www.fmlabs.com/reference/DEMA.htm
http://linnsoft.com/tour/techind/evwma.htm
http://www.fmlabs.com/reference/ZeroLagExpMA.htm
See Also
SeewilderSum
, which is used in calculating a Welles Wilder type MA.
Examples
data(ttrc) ema.20 <- EMA(ttrc[,"Close"], 20) sma.20 <- SMA(ttrc[,"Close"], 20) dema.20 <- DEMA(ttrc[,"Close"], 20) evwma.20 <- EVWMA(ttrc[,"Close"], 20) zlema.20 <- ZLEMA(ttrc[,"Close"], 20) ## Example of short-term instability of EMA x <- rnorm(100) tail( EMA(x[90:100],10), 1 ) tail( EMA(x[70:100],10), 1 ) tail( EMA(x[50:100],10), 1 ) tail( EMA(x[30:100],10), 1 ) tail( EMA(x[10:100],10), 1 ) tail( EMA(x[ 1:100],10), 1 )
[Package TTR version 0.13 Index]
No comments:
Post a Comment
Thank you