View source: R/ggplotgeom_ma.R
geom_ma  R Documentation 
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
exponentiallyweighted 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.
Zerolag exponential moving averages (ZLEMA):
Uses wilder
and ratio
args.
Volumeweighted moving averages (VWMA):
Requires volume
aesthetic.
Elastic, volumeweighted 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 naming the adjustment
(e.g. 
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 zerolag exponential moving averages
TTR::VWMA()
for volumeweighted moving averages
TTR::EVWMA()
for elastic, volumeweighted 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 = "20130101", to = "20161231")
# SMA
AAPL %>%
ggplot(aes(x = date, y = adjusted)) +
geom_line() + # Plot stock price
geom_ma(ma_fun = SMA, n = 50) + # Plot 50day SMA
geom_ma(ma_fun = SMA, n = 200, color = "red") + # Plot 200day SMA
coord_x_date(xlim = c("20160101", "20161231"),
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 50day EVWMA
coord_x_date(xlim = c("20160101", "20161231"),
ylim = c(75, 125)) # Zoom in
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.