Plot moving averages
The underlying moving average functions used are specified in TTR::SMA()
from the TTR package. Use coord_x_date()
to zoom into specific plot regions.
The following moving averages are available:
Simple moving averages (SMA):
Rolling mean over a period defined by n
.
Exponential moving averages (EMA): Includes
exponentially-weighted mean that gives more weight to recent observations.
Uses wilder
and ratio
args.
Weighted moving averages (WMA):
Uses a set of weights, wts
, to weight observations in the moving average.
Double exponential moving averages (DEMA):
Uses v
volume factor, wilder
and ratio
args.
Zero-lag exponential moving averages (ZLEMA):
Uses wilder
and ratio
args.
Volume-weighted moving averages (VWMA):
Requires volume
aesthetic.
Elastic, volume-weighted moving averages (EVWMA):
Requires volume
aesthetic.
geom_ma( mapping = NULL, data = NULL, position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ma_fun = SMA, n = 20, wilder = FALSE, ratio = NULL, v = 1, wts = 1:n, ... ) geom_ma_( mapping = NULL, data = NULL, position = "identity", na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ma_fun = "SMA", n = 20, wilder = FALSE, ratio = NULL, v = 1, wts = 1:n, ... )
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
position |
Position adjustment, either as a string, or the result of a call to a position adjustment function. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
ma_fun |
The function used to calculate the moving average. Seven options are
available including: SMA, EMA, WMA, DEMA, ZLEMA, VWMA, and EVWMA. The default is
|
n |
Number of periods to average over. Must be between 1 and
|
wilder |
logical; if |
ratio |
A smoothing/decay ratio. |
v |
The 'volume factor' (a number in [0,1]). See Notes. |
wts |
Vector of weights. Length of |
... |
Other arguments passed on to |
The following aesthetics are understood (required are in bold):
x
y
volume
, Required for VWMA and EVWMA
alpha
colour
group
linetype
size
See individual modeling functions for underlying parameters:
TTR::SMA()
for simple moving averages
TTR::EMA()
for exponential moving averages
TTR::WMA()
for weighted moving averages
TTR::DEMA()
for double exponential moving averages
TTR::ZLEMA()
for zero-lag exponential moving averages
TTR::VWMA()
for volume-weighted moving averages
TTR::EVWMA()
for elastic, volume-weighted moving averages
coord_x_date()
for zooming into specific regions of a plot
# Load libraries library(tidyquant) library(dplyr) library(ggplot2) AAPL <- tq_get("AAPL", from = "2013-01-01", to = "2016-12-31") # SMA AAPL %>% ggplot(aes(x = date, y = adjusted)) + geom_line() + # Plot stock price geom_ma(ma_fun = SMA, n = 50) + # Plot 50-day SMA geom_ma(ma_fun = SMA, n = 200, color = "red") + # Plot 200-day SMA coord_x_date(xlim = c("2016-01-01", "2016-12-31"), ylim = c(75, 125)) # Zoom in # EVWMA AAPL %>% ggplot(aes(x = date, y = adjusted)) + geom_line() + # Plot stock price geom_ma(aes(volume = volume), ma_fun = EVWMA, n = 50) + # Plot 50-day EVWMA coord_x_date(xlim = c("2016-01-01", "2016-12-31"), ylim = c(75, 125)) # Zoom in
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.