Tidyquant Manual

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 30

DownloadTidyquant-manual
Open PDF In BrowserView PDF
Package ‘tidyquant’
February 11, 2019
Type Package
Title Tidy Quantitative Financial Analysis
Version 0.5.5
Date 2018-05-06
Maintainer Matt Dancho 
Description Bringing financial analysis to the 'tidyverse'. The 'tidyquant'
package provides a convenient wrapper to various 'xts', 'zoo', 'quantmod', 'TTR'
and 'PerformanceAnalytics' package
functions and returns the objects in the tidy 'tibble' format. The main
advantage is being able to use quantitative functions with the 'tidyverse'
functions including 'purrr', 'dplyr', 'tidyr', 'ggplot2', 'lubridate', etc. See
the 'tidyquant' website for more information, documentation and examples.
URL https://github.com/business-science/tidyquant
BugReports https://github.com/business-science/tidyquant/issues
License MIT + file LICENSE
Encoding UTF-8
LazyData true
Depends R (¿= 3.0.0), lubridate, PerformanceAnalytics, quantmod (¿=
0.4-13), tidyverse
Imports dplyr, ggplot2, httr, lazyeval, magrittr, purrr, Quandl,
stringr, tibble, tidyr, timetk, TTR, xml2, xts, rlang
Suggests alphavantager, broom, knitr, rmarkdown, testthat, tibbletime,
scales, Rblpapi, XLConnect
RoxygenNote 6.0.1
VignetteBuilder knitr
NeedsCompilation no
Author Matt Dancho [aut, cre],
Davis Vaughan [aut]
Repository CRAN
Date/Publication 2018-05-09 08:48:07 UTC
1

2

av api key

R topics documented:
av api key . . .
coord x date .
deprecated . . .
FANG . . . . .
geom bbands .
geom chart . .
geom ma . . . .
palette tq . . .
quandl api key
quandl search .
scale manual .
theme tq . . . .
tidyquant . . .
tq get . . . . .
tq index . . . .
tq mutate . . .
tq performance
tq portfolio . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Index

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

2
3
4
5
6
8
11
13
14
14
15
16
17
18
20
21
24
25
29

av api key

Set Alpha Vantage API Key

Description
Set Alpha Vantage API Key
Usage
av_api_key(api_key)
Arguments
api key

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Optionally passed parameter to set Alpha Vantage api key.

Details
A wrapper for alphavantager::av api key()
Value
Returns invisibly the currently set api key
See Also
tq get() get = "alphavantager"

coord x date

3

Examples
## Not run:
av_api_key(api_key = "foobar")
## End(Not run)

coord x date

Zoom in on plot regions using date ranges or date-time ranges

Description
Zoom in on plot regions using date ranges or date-time ranges
Usage
coord_x_date(xlim = NULL, ylim = NULL, expand = TRUE)
coord_x_datetime(xlim = NULL, ylim = NULL, expand = TRUE)
Arguments
xlim

Limits for the x axis, entered as character dates in ”YYYY-MM-DD”
format for date or ”YYYY-MM-DD HH:MM:SS” for date-time.

ylim

Limits for the y axis, entered as values

expand

If TRUE, the default, adds a small expansion factor to the limits to ensure
that data and axes don’t overlap. If FALSE, limits are taken exactly from
the data or xlim/ylim.

Details
The coord functions prevent loss of data during zooming, which is necessary when zooming
in on plots that calculate stats using data outside of the zoom range (e.g. when plotting
moving averages with geom ma()). Setting limits using scale x date changes the underlying
data which causes moving averages to fail.
coord x date is a wrapper for coord cartesian that enables quickly zooming in on plot
regions using a date range.
coord x datetime is a wrapper for coord cartesian that enables quickly zooming in on
plot regions using a date-time range.
See Also
ggplot2::coord cartesian()

4

deprecated

Examples
# Load libraries
library(tidyquant)
# coord_x_date
AAPL <- tq_get("AAPL")
AAPL %>%
ggplot(aes(x = date, y = adjusted)) +
geom_line() +
# Plot stock price
geom_ma(n = 50) +
# Plot 50-day Moving Average
geom_ma(n = 200, color = "red") + # Plot 200-day Moving Average
coord_x_date(xlim = c(today() - weeks(12), today()),
ylim = c(100, 130))
# Zoom in
# coord_x_datetime
time_index <- seq(from = as.POSIXct("2012-05-15 07:00"),
to = as.POSIXct("2012-05-17 18:00"),
by = "hour")
set.seed(1)
value <- rnorm(n = length(time_index))
hourly_data <- tibble(time.index = time_index,
value = value)
hourly_data %>%
ggplot(aes(x = time.index, y = value)) +
geom_point() +
coord_x_datetime(xlim = c("2012-05-15 07:00:00", "2012-05-15 16:00:00"))

deprecated

Deprecated functions

Description
A record of functions that have been deprecated.
Usage
tq_transform(data, ohlc_fun = OHLCV, mutate_fun, col_rename = NULL, ...)
tq_transform_xy(data, x, y = NULL, mutate_fun, col_rename = NULL, ...)
Arguments
data

A tibble (tidy data frame) of data typically from tq get().

ohlc fun

Deprecated. Use select.

mutate fun

The mutation function from either the xts, quantmod, or TTR package.
Execute tq mutate fun options() to see the full list of options by package.

col rename

A string or character vector containing names that can be used to quickly
rename columns.

...

Additional parameters passed to the appropriate mutatation function.

FANG

5

x

Parameters used with xy that consist of column names of variables to be
passed to the mutatation function (instead of OHLC functions).

y

Parameters used with xy that consist of column names of variables to be
passed to the mutatation function (instead of OHLC functions).

Details
ˆ

tq transform() - use tq transmute()

ˆ

tq transform xy() - use tq transmute xy()

ˆ

as xts() - use timetk::tk xts()

ˆ

as tibble() - use timetk::tk tbl()

FANG

Stock prices for the ”FANG” stocks.

Description
A dataset containing the daily historical stock prices for the ”FANG” tech stocks, ”FB”,
”AMZN”, ”NFLX”, and ”GOOG”, spanning from the beginning of 2013 through the end
of 2016.
Usage
FANG
Format
A ”tibble” (”tidy” data frame) with 4,032 rows and 8 variables:
symbol stock ticker symbol
date trade date
open stock price at the open of trading, in USD
high stock price at the highest point during trading, in USD
low stock price at the lowest point during trading, in USD
close stock price at the close of trading, in USD
volume number of shares traded
adjusted stock price at the close of trading adjusted for stock splits, in USD
Source
http://www.investopedia.com/terms/f/fang-stocks-fb-amzn.asp

6

geom bbands

geom bbands

Plot Bollinger Bands using Moving Averages

Description
Bollinger Bands plot a range around a moving average typically two standard deviations
up and down. The geom bbands() function enables plotting Bollinger Bands quickly using
various moving average functions. The 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.

Usage
geom_bbands(mapping = NULL, data = NULL, position = "identity",
na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ma_fun = SMA,
n = 20, sd = 2, wilder = FALSE, ratio = NULL, v = 1, wts = 1:n,
color_ma = "darkblue", color_bands = "red", alpha = 0.15,
fill = "grey20", ...)
geom_bbands_(mapping = NULL, data = NULL, position = "identity",
na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ma_fun = "SMA",
n = 10, sd = 2, wilder = FALSE, ratio = NULL, v = 1, wts = 1:n,
color_ma = "darkblue", color_bands = "red", alpha = 0.15,
fill = "grey20", ...)
Arguments
mapping

Set of aesthetic mappings created by ggplot2::aes() or ggplot2::aes ().
If specified and inherit.aes = TRUE (the default), it is combined with the
default mapping at the top level of the plot. You must supply mapping if
there is no plot mapping.

data

The data to be displayed in this layer. There are three options:
If NULL, the default, the data is inherited from the plot data as specified
in the call to ggplot2::ggplot().
A data.frame, or other object, will override the plot data. All objects
will be fortified to produce a data frame. See ggplot2::fortify() for
which variables will be created.
A function will be called with a single argument, the plot data. The
return value must be a data.frame., and will be used as the layer data.

geom bbands
position

7

Position adjustment, either as a string, or the result of a call to a position
adjustment function.
na.rm
If TRUE, silently removes NA values, which typically desired for moving
averages.
show.legend
logical. Should this layer be included in the legends? NA, the default,
includes if any aesthetics are mapped. FALSE never includes, and TRUE
always includes. It can also be a named logical vector to finely select the
aesthetics to display.
inherit.aes
If FALSE, overrides the default aesthetics, rather than combining with
them. This is most useful for helper functions that define both data and
aesthetics and shouldn’t inherit behaviour from the default plot specification, e.g. ggplot2::borders().
The function used to calculate the moving average. Seven options are
ma fun
available including: SMA, EMA, WMA, DEMA, ZLEMA, VWMA, and
EVWMA. The default is SMA. See TTR::SMA() for underlying functions.
n
Number of periods to average over. Must be between 1 and nrow(x),
inclusive.
sd
The number of standard deviations to use.
wilder
logical; if TRUE, a Welles Wilder type EMA will be calculated; see notes.
ratio
A smoothing/decay ratio. ratio overrides wilder in EMA, and provides
additional smoothing in VMA.
v
The ’volume factor’ (a number in [0,1]). See Notes.
wts
Vector of weights. Length of wts vector must equal the length of x, or n
(the default).
color ma, color bands
Select the line color to be applied for the moving average line and the
Bollinger band line.
alpha
Used to adjust the alpha transparency for the BBand ribbon.
fill
Used to adjust the fill color for the BBand ribbon.
...
Other arguments passed on to ggplot2::layer(). These are often aesthetics, used to set an aesthetic to a fixed value, like color = "red" or
size = 3. They may also be parameters to the paired geom/stat.
Aesthetics
The following aesthetics are understood (required are in bold):
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ
ˆ

x, Typically a date
high, Required to be the high price
low, Required to be the low price
close, Required to be the close price
volume, Required for VWMA and EVWMA
colour, Affects line colors
fill, Affects ribbon fill color
alpha, Affects ribbon alpha value
group
linetype
size

8

geom chart

See Also
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

Examples
# Load libraries
library(tidyquant)
AAPL <- tq_get("AAPL")
# SMA
AAPL %>%
ggplot(aes(x = date, y = close)) +
geom_line() +
# Plot stock price
geom_bbands(aes(high = high, low = low, close = close), ma_fun = SMA, n = 50) +
coord_x_date(xlim = c(today() - years(1), today()), ylim = c(80, 130))
# EMA
AAPL %>%
ggplot(aes(x = date, y = close)) +
geom_line() +
# Plot stock price
geom_bbands(aes(high = high, low = low, close = close),
ma_fun = EMA, wilder = TRUE, ratio = NULL, n = 50) +
coord_x_date(xlim = c(today() - years(1), today()), ylim = c(80, 130))
# VWMA
AAPL %>%
ggplot(aes(x = date, y = close)) +
geom_line() +
# Plot stock price
geom_bbands(aes(high = high, low = low, close = close, volume = volume),
ma_fun = VWMA, n = 50) +
coord_x_date(xlim = c(today() - years(1), today()), ylim = c(80, 130))

geom chart

Plot Financial Charts in ggplot2

Description
Financial charts provide visual cues to open, high, low, and close prices. Use coord x date()
to zoom into specific plot regions. The following financial chart geoms are available:
ˆ
ˆ

Bar Chart
Candlestick Chart

geom chart

9

Usage
geom_barchart(mapping = NULL, data = NULL, stat = "identity",
position = "identity", na.rm = TRUE, show.legend = NA,
inherit.aes = TRUE, color_up = "darkblue", color_down = "red",
fill_up = "darkblue", fill_down = "red", ...)
geom_candlestick(mapping = NULL, data = NULL, stat = "identity",
position = "identity", na.rm = TRUE, show.legend = NA,
inherit.aes = TRUE, color_up = "darkblue", color_down = "red",
fill_up = "darkblue", fill_down = "red", ...)
Arguments
mapping

Set of aesthetic mappings created by ggplot2::aes() or ggplot2::aes ().
If specified and inherit.aes = TRUE (the default), it is combined with the
default mapping at the top level of the plot. You must supply mapping if
there is no plot mapping.

data

The data to be displayed in this layer. There are three options:
If NULL, the default, the data is inherited from the plot data as specified
in the call to ggplot2::ggplot().
A data.frame, or other object, will override the plot data. All objects
will be fortified to produce a data frame. See ggplot2::fortify() for
which variables will be created.
A function will be called with a single argument, the plot data. The
return value must be a data.frame., and will be used as the layer data.

stat

The statistical transformation to use on the data for this layer, as a string.

position

Position adjustment, either as a string, or the result of a call to a position
adjustment function.

na.rm

If TRUE, silently removes NA values, which typically desired for moving
averages.

show.legend

logical. Should this layer be included in the legends? NA, the default,
includes if any aesthetics are mapped. FALSE never includes, and TRUE
always includes. It can also be a named logical vector to finely select the
aesthetics to display.

inherit.aes

If FALSE, overrides the default aesthetics, rather than combining with
them. This is most useful for helper functions that define both data and
aesthetics and shouldn’t inherit behaviour from the default plot specification, e.g. ggplot2::borders().
color up, color down
Select colors to be applied based on price movement from open to close.
If close ¿= open, color up is used. Otherwise, color down is used. The
default is ”darkblue” and ”red”, respectively.
fill up, fill down
Select fills to be applied based on price movement from open to close. If
close ¿= open, fill up is used. Otherwise, fill down is used. The default
is ”darkblue” and ”red”, respectively. Only affects geom candlestick.
...

Other arguments passed on to ggplot2::layer(). These are often aesthetics, used to set an aesthetic to a fixed value, like color = "red" or
size = 3. They may also be parameters to the paired geom/stat.

10

geom chart

Aesthetics
The following aesthetics are understood (required are in bold):
ˆ

x, Typically a date

ˆ

open, Required to be the open price

ˆ

high, Required to be the high price

ˆ

low, Required to be the low price

ˆ

close, Required to be the close price

ˆ

alpha

ˆ

group

ˆ

linetype

ˆ

size

See Also
See individual modeling functions for underlying parameters:
ˆ

geom ma() for adding moving averages to ggplots

ˆ

geom bbands() for adding Bollinger Bands to ggplots

ˆ

coord x date() for zooming into specific regions of a plot

Examples
# Load libraries
library(tidyquant)
AAPL <- tq_get("AAPL")
# Bar Chart
AAPL %>%
ggplot(aes(x = date, y = close)) +
geom_barchart(aes(open = open, high = high, low = low, close = close)) +
geom_ma(color = "darkgreen") +
coord_x_date(xlim = c(today() - weeks(6), today()),
ylim = c(100, 130))
# Candlestick Chart
AAPL %>%
ggplot(aes(x = date, y = close)) +
geom_candlestick(aes(open = open, high = high, low = low, close = close)) +
geom_ma(color = "darkgreen") +
coord_x_date(xlim = c(today() - weeks(6), today()),
ylim = c(100, 130))

geom ma

11

geom ma

Plot moving averages

Description
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.

Usage
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, ...)
Arguments
mapping

Set of aesthetic mappings created by ggplot2::aes() or ggplot2::aes ().
If specified and inherit.aes = TRUE (the default), it is combined with the
default mapping at the top level of the plot. You must supply mapping if
there is no plot mapping.

data

The data to be displayed in this layer. There are three options:
If NULL, the default, the data is inherited from the plot data as specified
in the call to ggplot2::ggplot().
A data.frame, or other object, will override the plot data. All objects
will be fortified to produce a data frame. See ggplot2::fortify() for
which variables will be created.
A function will be called with a single argument, the plot data. The
return value must be a data.frame., and will be used as the layer data.

position

Position adjustment, either as a string, or the result of a call to a position
adjustment function.

na.rm

If TRUE, silently removes NA values, which typically desired for moving
averages.

12

geom ma
show.legend

logical. Should this layer be included in the legends? NA, the default,
includes if any aesthetics are mapped. FALSE never includes, and TRUE
always includes. It can also be a named logical vector to finely select the
aesthetics to display.

inherit.aes

If FALSE, overrides the default aesthetics, rather than combining with
them. This is most useful for helper functions that define both data and
aesthetics and shouldn’t inherit behaviour from the default plot specification, e.g. ggplot2::borders().

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 SMA. See TTR::SMA() for underlying functions.

n

Number of periods to average over. Must be between 1 and nrow(x),
inclusive.

wilder

logical; if TRUE, a Welles Wilder type EMA will be calculated; see notes.

ratio

A smoothing/decay ratio. ratio overrides wilder in EMA, and provides
additional smoothing in VMA.

v

The ’volume factor’ (a number in [0,1]). See Notes.

wts

Vector of weights. Length of wts vector must equal the length of x, or n
(the default).

...

Other arguments passed on to ggplot2::layer(). These are often aesthetics, used to set an aesthetic to a fixed value, like color = "red" or
size = 3. They may also be parameters to the paired geom/stat.

Aesthetics
The following aesthetics are understood (required are in bold):
ˆ

x

ˆ

y

ˆ

volume, Required for VWMA and EVWMA

ˆ

alpha

ˆ

colour

ˆ

group

ˆ

linetype

ˆ

size

See Also
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

palette tq

13

Examples
# Load libraries
library(tidyquant)
AAPL <- tq_get("AAPL")
# 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(today() - weeks(12), today()),
ylim = c(100, 130))
# Zoom in
# EVWMA
AAPL %>%
ggplot(aes(x = date, y = adjusted)) +
geom_line() +
geom_ma(aes(volume = volume), ma_fun = EVWMA, n = 50) +
coord_x_date(xlim = c(today() - weeks(12), today()),
ylim = c(100, 130))

palette tq

# Plot stock price
# Plot 50-day EVWMA
# Zoom in

tidyquant palettes for use with scales

Description
These palettes are mainly called internally by tidyquant scale * tq() functions.

Usage
palette_light()
palette_dark()
palette_green()

Examples
library(scales)
scales::show_col(palette_light())

14

quandl search

quandl api key

Query or set Quandl API Key

Description
Query or set Quandl API Key
Usage
quandl_api_key(api_key)
Arguments
api key

Optionally passed parameter to set Quandl api key.

Details
A wrapper for Quandl::Quandl.api key()
Value
Returns invisibly the currently set api key
See Also
tq get() get = "quandl"
Examples
## Not run:
quandl_api_key(api_key = "foobar")
## End(Not run)

quandl search

Search the Quandl database

Description
Search the Quandl database
Usage
quandl_search(query, silent = FALSE, per_page = 10, ...)
Arguments
query

Search terms

silent

Prints the results when FALSE.

per page

Number of results returned per page.

...

Additional named values that are interpretted as Quandl API parameters.

scale manual

15

Details
A wrapper for Quandl::Quandl.search()
Value
Returns a tibble with search results.
See Also
tq get() get = "quandl"
Examples
## Not run:
quandl_search(query = "oil")
## End(Not run)

scale manual

tidyquant colors and fills for ggplot2.

Description
The tidyquant scales add colors that work nicely with theme tq().
Usage
scale_color_tq(..., theme = "light")
scale_colour_tq(..., theme = "light")
scale_fill_tq(..., theme = "light")
Arguments
...

common discrete scale parameters: name, breaks, labels, na.value, limits
and guide. See discrete scale() for more details

theme

one of ”light”, ”dark”, or ”green”. This should match the theme tq()
that is used with it.

Details
scale color tq For use when color is specified as an aes() in a ggplot.
scale fill tq For use when fill is specified as an aes() in a ggplot.
See Also
theme tq()

16

theme tq

Examples
# Load libraries
library(tidyquant)
# Get stock prices
stocks <- c("AAPL", "FB", "NFLX") %>%
tq_get(from = "2013-01-01",
to
= "2017-01-01")
# Plot for stocks
a <- stocks %>%
ggplot(aes(date, adjusted, color = symbol)) +
geom_line() +
labs(title = "Multi stock example",
xlab = "Date",
ylab = "Adjusted Close")
# Plot with tidyquant theme and colors
a +
theme_tq() +
scale_color_tq()

theme tq

tidyquant themes for ggplot2.

Description
The theme tq() function creates a custom theme using tidyquant colors.
Usage
theme_tq(base_size = 11, base_family = "")
theme_tq_dark(base_size = 11, base_family = "")
theme_tq_green(base_size = 11, base_family = "")
Arguments
base size

base font size

base family

base font family

See Also
scale manual()

tidyquant

17

Examples
# Load libraries
library(tidyquant)
# Get stock prices
AAPL <- tq_get("AAPL")
# Plot using ggplot with theme_tq
AAPL %>% ggplot(aes(x = date, y = close)) +
geom_line() +
geom_bbands(aes(high = high, low = low, close = close),
ma_fun = EMA,
wilder = TRUE,
ratio = NULL,
n = 50) +
coord_x_date(xlim = c(today() - years(1), today()),
ylim = c(80, 130)) +
labs(title = "Apple BBands",
x = "Date",
y = "Price") +
theme_tq()

tidyquant

tidyquant: Integrating quantitative financial analysis tools with
the tidyverse

Description
The main advantage of tidyquant is to bridge the gap between the best quantitative resources for collecting and manipulating quantitative data, xts, quantmod and TTR, and the
data modeling workflow and infrastructure of the tidyverse.
Details
In this package, tidyquant functions and supporting data sets are provided to seamlessly
combine tidy tools with existing quantitative analytics packages. The main advantage is
being able to use tidy functions with purrr for mapping and tidyr for nesting to extend
modeling to many stocks. See the tidyquant website for more information, documentation
and examples.
Users will probably be interested in the following:
ˆ

Getting Data from the Web: tq get()

ˆ

Manipulating Data: tq transmute() and tq mutate()

ˆ

Performance Analysis and Portfolio Aggregation: tq performance() and tq portfolio()

To learn more about tidyquant, start with the vignettes: browseVignettes(package = "tidyquant")

18

tq get

tq get

Get quantitative data in tibble format

Description
Get quantitative data in tibble format
Usage
tq_get(x, get = "stock.prices", complete_cases = TRUE, ...)
tq_get_options()
tq_get_stock_index_options()
Arguments
x

A single character string, a character vector or tibble representing a single
(or multiple) stock symbol, metal symbol, currency combination, FRED
code, etc.

get

A character string representing the type of data to get for x. Options
include:
ˆ

ˆ
ˆ

ˆ
ˆ

ˆ
ˆ

ˆ

ˆ
ˆ

ˆ

ˆ

ˆ

ˆ

"stock.prices": Get the open, high, low, close, volume and adjusted
stock prices for a stock symbol from Yahoo Finance. Wrapper for
quantmod::getSymbols().
"stock.prices.google": DISCONTINUED.
"stock.prices.japan": Get the open, high, low, close, volume and
adjusted stock prices for a stock symbol from Yahoo Finance Japan.
Wrapper for quantmod::getSymbols.yahooj().
"financials": DISCONTINUED.
"key.ratios": Get 89 historical growth, profitablity, financial health,
efficiency, and valuation ratios that span 10-years from Morningstar.
"key.stats": DISCONTINUED.
"dividends": Get the dividends for a stock symbol from Yahoo Finance. Wrapper for quantmod::getDividends().
"splits": Get the splits for a stock symbol from Yahoo Finance.
Wrapper for quantmod::getSplits().
"economic.data": Get economic data from FRED. rapper for quantmod::getSymbols.FRE
"metal.prices": Get the metal prices from Oanda. Wrapper for
quantmod::getMetals().
"exchange.rates": Get exchange rates from Oanda. Wrapper for
quantmod::getFX().
"quandl": Get data sets from Quandl. Wrapper for Quandl::Quandl().
See also quandl api key().
"quandl.datatable": Get data tables from Quandl. Wrapper for
Quandl::Quandl.datatable(). See also quandl api key().
"alphavantager": Get data sets from Alpha Vantage. Wrapper for
alphavantager::av get(). See also av api key().

tq get

19
ˆ

"rblpapi": Get data sets from Bloomberg. Wrapper for Rblpapi.
See also Rblpapi::blpConnect() to connect to Bloomberg terminal
(required). Use the argument rblpapi fun to set the function such
as ”bdh” (default), ”bds”, or ”bdp”.

complete cases Removes symbols that return an NA value due to an error with the get
call such as sending an incorrect symbol ”XYZ” to get = ”stock.prices”.
This is useful in scaling so user does not need to add an extra step to
remove these rows. TRUE by default, and a warning message is generated
for any rows removed.
...

Additional parameters passed to the ”wrapped” function. Investigate
underlying functions to see full list of arguments. Common optional parameters include:
ˆ

ˆ

from: Optional for various time series functions in quantmod / quandl
packages. A character string representing a start date in YYYY-MMDD format. No effect on "key.ratios", or "key.stats".
to: Optional for various time series functions in quantmod / quandl
packages. A character string representing a end date in YYYY-MMDD format. No effect on get = "key.ratios" or "key.stats".

Details
tq get() is a consolidated function that gets data from various web sources. The function
is a wrapper for several quantmod functions, Quandl functions, and also gets data from
websources unavailable in other packages. The results are always returned as a tibble.
The advantages are (1) only one function is needed for all data sources and (2) the function
can be seemlessly used with the tidyverse: purrr, tidyr, and dplyr verbs.
tq get options() returns a list of valid get options you can choose from.
tq get stock index options() Is deprecated and will be removed in the next version.
Please use tq index options() instead.
Value
Returns data in the form of a tibble object.
See Also
ˆ

tq index() to get a ful list of stocks in an index.

ˆ

tq exchange() to get a ful list of stocks in an exchange.

ˆ

quandl api key() to set the api key for collecting data via the "quandl" get option.

ˆ

av api key() to set the api key for collecting data via the "alphavantage" get option.

Examples
# Load libraries
library(tidyquant)
# Get the list of `get` options
tq_get_options()
# Get stock prices for a stock from Yahoo
aapl_stock_prices <- tq_get("AAPL")

20

tq index
# Get stock prices for multiple stocks
mult_stocks <- tq_get(c("FB", "AMZN"),
get = "stock.prices",
from = "2016-01-01",
to
= "2017-01-01")
# Multiple gets
mult_gets <- tq_get("AAPL",
get = c("stock.prices", "dividends"),
from = "2016-01-01",
to
= "2017-01-01")

tq index

Get all stocks in a stock index or stock exchange in tibble format

Description
Get all stocks in a stock index or stock exchange in tibble format
Usage
tq_index(x, use_fallback = FALSE)
tq_exchange(x)
tq_index_options()
tq_exchange_options()
Arguments
x

A single character string, a character vector or tibble representing a single
stock index or multiple stock indexes.

use fallback

A boolean that can be used to return a fallback data set last downloaded
when the package was updated. Useful if the website is down. Set to
FALSE by default.

Details
tq index() returns the stock symbol, company name, weight, and sector of every stock in
an index. Nine stock indices are available. The source is www.us.spdrs.com.
tq index options() returns a list of stock indexes you can choose from.
tq exchange() returns the stock symbol, company, last sale price, market capitalization,
sector and industry of every stock in an exchange. Three stock exchanges are available
(AMEX, NASDAQ, and NYSE).
tq exchange options() returns a list of stock exchanges you can choose from. The options
are AMEX, NASDAQ and NYSE.
Value
Returns data in the form of a tibble object.

tq mutate

21

See Also
tq get() to get stock prices, financials, key stats, etc using the stock symbols.
Examples
# Load libraries
library(tidyquant)
# Get the list of stock index options
tq_index_options()
# Get all stock symbols in a stock index
## Not run:
tq_index("DOW")
## End(Not run)
# Get the list of stock exchange options
tq_exchange_options()
# Get all stocks in a stock exchange
## Not run:
tq_exchange("NYSE")
## End(Not run)

tq mutate

Mutates quantitative data

Description
tq mutate() adds new variables to an existing tibble; tq transmute() returns only newly
created columns and is typically used when periodicity changes
Usage
tq_mutate(data, select = NULL, mutate_fun, col_rename = NULL,
ohlc_fun = NULL, ...)
tq_mutate_(data, select = NULL, mutate_fun, col_rename = NULL, ...)
tq_mutate_xy(data, x, y = NULL, mutate_fun, col_rename = NULL, ...)
tq_mutate_xy_(data, x, y = NULL, mutate_fun, col_rename = NULL, ...)
tq_mutate_fun_options()
tq_transmute(data, select = NULL, mutate_fun, col_rename = NULL,
ohlc_fun = NULL, ...)
tq_transmute_(data, select = NULL, mutate_fun, col_rename = NULL, ...)
tq_transmute_xy(data, x, y = NULL, mutate_fun, col_rename = NULL, ...)

22

tq mutate

tq_transmute_xy_(data, x, y = NULL, mutate_fun, col_rename = NULL, ...)
tq_transmute_fun_options()
Arguments
data

A tibble (tidy data frame) of data typically from tq get().

select

The columns to send to the mutation function.

mutate fun

The mutation function from either the xts, quantmod, or TTR package.
Execute tq mutate fun options() to see the full list of options by package.

col rename

A string or character vector containing names that can be used to quickly
rename columns.

ohlc fun

Deprecated. Use select.

...

Additional parameters passed to the appropriate mutatation function.

x, y

Parameters used with xy that consist of column names of variables to be
passed to the mutatation function (instead of OHLC functions).

Details
tq mutate and tq transmute are very flexible wrappers for various xts, quantmod and TTR
functions. The main advantage is the results are returned as a tibble and the function can
be used with the tidyverse. tq mutate is used when additional columns are added to the
return data frame. tq transmute works exactly like tq mutate except it only returns the
newly created columns. This is helpful when changing periodicity where the new columns
would not have the same number of rows as the original tibble.
select specifies the columns that get passed to the mutation function. Select works as
a more flexible version of the OHLC extractor functions from quantmod where non-OHLC
data works as well. When select is NULL, all columns are selected. In Example 1 below,
close returns the ”close” price and sends this to the mutate function, periodReturn.
mutate fun is the function that performs the work. In Example 1, this is periodReturn,
which calculates the period returns. The ... are additional arguments passed to the
mutate fun. Think of the whole operation in Example 1 as the close price, obtained by
select = close, being sent to the periodReturn function along with additional arguments defining how to perform the period return, which includes period = "daily" and
type = "log". Example 4 shows how to apply a rolling regression.
tq mutate xy and tq transmute xy are designed to enable working with mutatation functions that require two primary inputs (e.g. EVWMA, VWAP, etc). Example 2 shows
this benefit in action: using the EVWMA function that uses volume to define the moving
average period.
tq mutate , tq mutate xy , tq transmute , and tq transmute xy are setup for Non-Standard
Evaluation (NSE). This enables programatically changing column names by modifying the
text representations. Example 5 shows the difference in implementation. Note that character strings are being passed to the variables instead of unquoted variable names. See
vignette("nse") for more information.
tq mutate fun options and tq transmute fun options return a list of various financial
functions that are compatible with tq mutate and tq transmute, respectively.

tq mutate

23

Value
Returns mutated data in the form of a tibble object.
See Also
tq get()
Examples
# Load libraries
library(tidyquant)
##### Basic Functionality
fb_stock_prices

<- tq_get("FB",
get = "stock.prices",
from = "2016-01-01",
to
= "2016-12-31")

# Example 1: Return logarithmic daily returns using periodReturn()
fb_stock_prices %>%
tq_mutate(select = close, mutate_fun = periodReturn,
period = "daily", type = "log")
# Example 2: Use tq_mutate_xy to use functions with two columns required
fb_stock_prices %>%
tq_mutate_xy(x = close, y = volume, mutate_fun = EVWMA,
col_rename = "EVWMA")
# Example 3: Using tq_mutate to work with non-OHLC data
tq_get("DCOILWTICO", get = "economic.data") %>%
tq_mutate(select = price, mutate_fun = lag.xts, k = 1, na.pad = TRUE)
# Example 4: Using tq_mutate to apply a rolling regression
fb_returns <- fb_stock_prices %>%
tq_transmute(adjusted, periodReturn, period = "monthly", col_rename = "fb.returns")
xlk_returns <- tq_get("XLK", from = "2016-01-01", to = "2016-12-31") %>%
tq_transmute(adjusted, periodReturn, period = "monthly", col_rename = "xlk.returns")
returns_combined <- left_join(fb_returns, xlk_returns, by = "date")
regr_fun <- function(data) {
coef(lm(fb.returns ˜ xlk.returns, data = as_data_frame(data)))
}
returns_combined %>%
tq_mutate(mutate_fun = rollapply,
width
= 6,
FUN
= regr_fun,
by.column = FALSE,
col_rename = c("coef.0", "coef.1"))
# Example 5: Non-standard evaluation:
# Programming with tq_mutate_() and tq_mutate_xy_()
col_name <- "adjusted"
mutate <- c("MACD", "SMA")
tq_mutate_xy_(fb_stock_prices, x = col_name, mutate_fun = mutate[[1]])

24

tq performance

tq performance

Computes a wide variety of summary performance metrics from
stock or portfolio returns

Description
Asset and portfolio performance analysis is a deep field with a wide range of theories and
methods for analyzing risk versus reward. The PerformanceAnalytics package consolidates
many of the most widely used performance metrics as functions that can be applied to stock
or portfolio returns. tq performance implements these performance analysis functions in a
tidy way, enabling scaling analysis using the split, apply, combine framework.
Usage
tq_performance(data, Ra, Rb = NULL, performance_fun, ...)
tq_performance_(data, Ra, Rb = NULL, performance_fun, ...)
tq_performance_fun_options()
Arguments
data

A tibble (tidy data frame) of returns in tidy format (i.e long format).

Ra

The column of asset returns

Rb

The column of baseline returns (for functions that require comparison to
a baseline)

performance fun
The performance function from PerformanceAnalytics. See tq performance fun options()
for a complete list of integrated functions.
...

Additional parameters passed to the PerformanceAnalytics function.

Details
Important concept: Performance is based on the statistical properties of returns, and as a
result this function uses stock or portfolio returns as opposed to stock prices.
tq performance is a wrapper for various PerformanceAnalytics functions that return portfolio statistics. The main advantage is the ability to scale with the tidyverse.
Ra and Rb are the columns containing asset and baseline returns, respectively. These
columns are mapped to the PerformanceAnalytics functions. Note that Rb is not always
required, and in these instances the argument defaults to Rb = NULL. The user can tell if
Rb is required by researching the underlying performance function.
... are additional arguments that are passed to the PerformanceAnalytics function.
Search the underlying function to see what arguments can be passed through.
tq performance fun options returns a list of compatible PerformanceAnalytics functions
that can be supplied to the performance fun argument.
Value
Returns data in the form of a tibble object.

tq portfolio

25

See Also
ˆ

ˆ

ˆ

tq transmute() which can be used to calculate period returns from a set of stock
prices. Use mutate fun = periodReturn with the appropriate periodicity such as
period = "monthly".
tq portfolio() which can be used to aggregate period returns from multiple stocks
to period returns for a portfolio.
The PerformanceAnalytics package, which contains the underlying functions for the
performance fun argument. Additional parameters can be passed via ....

Examples
# Load libraries
library(tidyquant)
# Use FANG data set
data(FANG)
# Get returns for individual stock components grouped by symbol
Ra <- FANG %>%
group_by(symbol) %>%
tq_transmute(adjusted, periodReturn, period = "monthly", col_rename = "Ra")
# Get returns for SP500 as baseline
Rb <- "ˆGSPC" %>%
tq_get(get = "stock.prices",
from = "2010-01-01",
to
= "2015-12-31") %>%
tq_transmute(adjusted, periodReturn, period = "monthly", col_rename = "Rb")
# Merge stock returns with baseline
RaRb <- left_join(Ra, Rb, by = c("date" = "date"))
##### Performance Metrics #####
# View options
tq_performance_fun_options()
# Get performance metrics
RaRb %>%
tq_performance(Ra = Ra, performance_fun = SharpeRatio, p = 0.95)
RaRb %>%
tq_performance(Ra = Ra, Rb = Rb, performance_fun = table.CAPM)

tq portfolio

Aggregates a group of returns by asset into portfolio returns

Description
Aggregates a group of returns by asset into portfolio returns

26

tq portfolio

Usage
tq_portfolio(data, assets_col, returns_col, weights = NULL,
col_rename = NULL, ...)
tq_portfolio_(data, assets_col, returns_col, weights = NULL,
col_rename = NULL, ...)
tq_repeat_df(data, n, index_col_name = "portfolio")
Arguments
data

A tibble (tidy data frame) of returns in tidy format (i.e long format).

assets col

The column with assets (securities)

returns col

The column with returns

weights

Optional parameter for the asset weights, which can be passed as a numeric vector the length of the number of assets or a two column tibble
with asset names in first column and weights in second column.

col rename

A string or character vector containing names that can be used to quickly
rename columns.

...

Additional parameters passed to PerformanceAnalytics::Returns.portfolio

n

Number of times to repeat a data frame row-wise.

index col name

A renaming function for the ”index” column, used when repeating data
frames.

Details
tq portfolio is a wrapper for PerformanceAnalytics::Returns.portfolio. The main advantage is the results are returned as a tibble and the function can be used with the
tidyverse.
assets col and returns col are columns within data that are used to compute returns for
a portfolio. The columns should be in ”long” format (or ”tidy” format) meaning there is
only one column containing all of the assets and one column containing all of the return
values (i.e. not in ”wide” format with returns spread by asset).
weights are the weights to be applied to the asset returns. Weights can be input in one of
three options:
ˆ

Single Portfolio: A numeric vector of weights that is the same length as unique number
of assets. The weights are applied in the order of the assets.

ˆ

Single Portfolio: A two column tibble with assets in the first column and weights in
the second column. The advantage to this method is the weights are mapped to the
assets and any unlisted assets default to a weight of zero.

ˆ

Multiple Portfolios: A three column tibble with portfolio index in the first column,
assets in the second column, and weights in the third column. The tibble must be
grouped by portfolio index.

tq repeat df is a simple function that repeats a data frame n times row-wise (long-wise),
and adds a new column for a portfolio index. The function is used to assist in Multiple
Portfolio analyses, and is a useful precursor to tq portfolio.

tq portfolio

27

Value
Returns data in the form of a tibble object.
See Also
ˆ
ˆ

tq transmute() which can be used to get period returns.
PerformanceAnalytics::Return.portfolio() which is the underlying function that
specifies which parameters can be passed via ...

Examples
# Load libraries
library(tidyquant)
# Use FANG data set
data(FANG)
# Get returns for individual stock components
monthly_returns_stocks <- FANG %>%
group_by(symbol) %>%
tq_transmute(adjusted, periodReturn, period = "monthly")
##### Portfolio Aggregation Methods #####
# Method 1: Use tq_portfolio with numeric vector of weights
weights <- c(0.50, 0.25, 0.25, 0)
tq_portfolio(data = monthly_returns_stocks,
assets_col = symbol,
returns_col = monthly.returns,
weights = weights,
col_rename = NULL,
wealth.index = FALSE)
# Method 2: Use tq_portfolio with two column tibble and map weights
# Note that GOOG's weighting is zero in Method 1. In Method 2,
# GOOG is not added and same result is achieved.
weights_df <- tibble(symbol = c("FB", "AMZN", "NFLX"),
weights = c(0.50, 0.25, 0.25))
tq_portfolio(data = monthly_returns_stocks,
assets_col = symbol,
returns_col = monthly.returns,
weights = weights_df,
col_rename = NULL,
wealth.index = FALSE)
# Method 3: Working with multiple portfolios
# 3A: Duplicate monthly_returns_stocks multiple times
mult_monthly_returns_stocks <- tq_repeat_df(monthly_returns_stocks, n = 4)
# 3B: Create weights table grouped by portfolio id
weights <- c(0.50, 0.25, 0.25, 0.00,
0.00, 0.50, 0.25, 0.25,
0.25, 0.00, 0.50, 0.25,

28

tq portfolio
0.25, 0.25, 0.00, 0.50)
stocks <- c("FB", "AMZN", "NFLX", "GOOG")
weights_table <- tibble(stocks) %>%
tq_repeat_df(n = 4) %>%
bind_cols(tibble(weights)) %>%
group_by(portfolio)
# 3C: Scale to multiple portfolios
tq_portfolio(data = mult_monthly_returns_stocks,
assets_col = symbol,
returns_col = monthly.returns,
weights = weights_table,
col_rename = NULL,
wealth.index = FALSE)

Index
scale
scale
scale
scale

∗Topic datasets
FANG, 5
av api key, 2
av api key(), 18, 19
coord x date, 3
coord x date(), 6, 8, 10–12
coord x datetime ( coord x date), 3
deprecated, 4
discrete scale(), 15
FANG, 5
geom barchart ( geom chart), 8
geom bbands, 6
geom bbands(), 10
geom bbands ( geom bbands), 6
geom candlestick ( geom chart), 8
geom chart, 8
geom ma, 11
geom ma(), 3, 10
geom ma ( geom ma), 11
ggplot2::aes(), 6, 9, 11
ggplot2::aes (), 6, 9, 11
ggplot2::borders(), 7, 9, 12
ggplot2::coord cartesian(), 3
ggplot2::fortify(), 6, 9, 11
ggplot2::ggplot(), 6, 9, 11
ggplot2::layer(), 7, 9, 12
palette dark ( palette tq), 13
palette green ( palette tq), 13
palette light ( palette tq), 13
palette tq, 13
PerformanceAnalytics::Return.portfolio(),
27
quandl api key, 14
quandl api key(), 18, 19
quandl search, 14
Rblpapi::blpConnect(), 19
scale color tq ( scale manual), 15
29

colour tq ( scale manual), 15
fill tq ( scale manual), 15
manual, 15
manual(), 16

theme tq, 16
theme tq(), 15
theme tq dark ( theme tq), 16
theme tq green ( theme tq), 16
tidyquant, 17
tidyquant-package ( tidyquant), 17
timetk::tk tbl(), 5
timetk::tk xts(), 5
tq exchange ( tq index), 20
tq exchange(), 19
tq exchange options ( tq index), 20
tq get, 18
tq get(), 2, 4, 14, 15, 17, 21–23
tq get options ( tq get), 18
tq get stock index options ( tq get), 18
tq index, 20
tq index(), 19
tq index options ( tq index), 20
tq mutate, 21
tq mutate(), 17
tq mutate ( tq mutate), 21
tq mutate fun options ( tq mutate), 21
tq mutate xy ( tq mutate), 21
tq mutate xy ( tq mutate), 21
tq performance, 24
tq performance(), 17
tq performance ( tq performance), 24
tq performance fun options
( tq performance), 24
tq portfolio, 25
tq portfolio(), 17, 25
tq portfolio ( tq portfolio), 25
tq repeat df ( tq portfolio), 25
tq transform ( deprecated), 4
tq transform xy ( deprecated), 4
tq transmute ( tq mutate), 21
tq transmute(), 5, 17, 25, 27
tq transmute ( tq mutate), 21
tq transmute fun options ( tq mutate), 21

30
tq transmute xy ( tq mutate), 21
tq transmute xy(), 5
tq transmute xy ( tq mutate), 21
TTR::DEMA(), 8, 12
TTR::EMA(), 8, 12
TTR::EVWMA(), 8, 12
TTR::SMA(), 6–8, 11, 12
TTR::VWMA(), 8, 12
TTR::WMA(), 8, 12
TTR::ZLEMA(), 8, 12

INDEX



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 30
Page Mode                       : UseOutlines
Author                          : 
Title                           : 
Subject                         : 
Creator                         : LaTeX with hyperref
Producer                        : pdfTeX-1.40.19
Create Date                     : 2019:02:11 10:04:58-05:00
Modify Date                     : 2019:02:11 10:04:58-05:00
Trapped                         : False
PTEX Fullbanner                 : This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) kpathsea version 6.3.0
EXIF Metadata provided by EXIF.tools

Navigation menu