PerformanceAnalytics (version 1.1.0)

chart.BarVaR: Periodic returns in a bar chart with risk metric overlay

Description

Plots the periodic returns as a bar chart overlayed with a risk metric calculation.

Usage

chart.BarVaR(R, width = 0, gap = 12,
    methods = c("none", "ModifiedVaR", "GaussianVaR", "HistoricalVaR", "StdDev", "ModifiedES", "GaussianES", "HistoricalES"),
    p = 0.95, clean = c("none", "boudt", "geltner"),
    all = FALSE, ..., show.clean = FALSE,
    show.horizontal = FALSE, show.symmetric = FALSE,
    show.endvalue = FALSE, show.greenredbars = FALSE,
    legend.loc = "bottomleft", ylim = NA, lwd = 2,
    colorset = 1:12, lty = c(1, 2, 4, 5, 6), ypad = 0,
    legend.cex = 0.8)

charts.BarVaR(R, main = "Returns", cex.legend = 0.8, colorset = 1:12, ylim = NA, ..., perpanel = NULL, show.yaxis = c("all", "firstonly", "alternating", "none"))

Arguments

R
an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns
width
periods specified for rolling-period calculations. Note that VaR, ES, and Std Dev with width=0 are calculated from the start of the timeseries
gap
numeric number of periods from start of series to use to train risk calculation
methods
Used to select the risk parameter of trailing width returns to use: May be any of:
  • none - does not add a risk line,
  • ModifiedVaR - uses Cornish-Fisher modified VaR,
  • GaussianVaR - uses traditional Value at Risk,
p
confidence level for VaR or ModifiedVaR calculation, default is .99
all
if TRUE, calculates risk lines for each column given in R. If FALSE, only calculates the risk line for the first column
clean
the method to use to clean outliers from return data prior to risk metric estimation. See Return.clean and VaR for more detail
show.clean
if TRUE and a method for 'clean' is specified, overlays the actual data with the "cleaned" data. See Return.clean for more detail
...
any other passthru parameters to chart.TimeSeries
show.horizontal
if TRUE, shows a line across the timeseries at the value of the most recent VaR estimate, to help the reader evaluate the number of exceptions thus far
show.symmetric
if TRUE and the metric is symmetric, this will show the metric's positive values as well as negative values, such as for method "StdDev".
show.endvalue
if TRUE, show the final (out of sample) value
show.greenredbars
if TRUE, show the per-period returns using green and red bars for positive and negative returns
show.yaxis
one of "all", "firstonly", "alternating", or "none" to control where y axis is plotted in multipanel charts
perpanel
default NULL, controls column display
ylim
set the y-axis limit, same as in plot
lwd
set the line width, same as in plot
lty
set the line type, same as in plot
legend.loc
legend location, such as in chart.TimeSeries
ypad
adds a numerical padding to the y-axis to keep the data away when legend.loc="bottom". See examples below.
legend.cex
sets the legend text size, such as in chart.TimeSeries
cex.legend
sets the legend text size, such as in chart.TimeSeries
main
sets the title text, such as in chart.TimeSeries
colorset
color palette to use, such as in chart.TimeSeries

Details

Note that StdDev and VaR are symmetric calculations, so a high and low measure will be plotted. ModifiedVaR, on the other hand, is assymetric and only a lower bound will be drawn.

Creates a plot of time on the x-axis and vertical lines for each period to indicate value on the y-axis. Overlays a line to indicate the value of a risk metric calculated at that time period.

charts.BarVaR places multile bar charts in a single graphic, with associated risk measures

See Also

chart.TimeSeries plot ES VaR Return.clean

Examples

Run this code
data(managers)
# plain
chart.BarVaR(managers[,1,drop=FALSE], main="Monthly Returns")

# with risk line
chart.BarVaR(managers[,1,drop=FALSE],
		methods="HistoricalVaR",
		main="... with Empirical VaR from Inception")

# with lines for all managers in the sample
chart.BarVaR(managers[,1:6],
		methods="GaussianVaR",
		all=TRUE, lty=1, lwd=2,
		colorset= c("red", rep("gray", 5)),
		main="... with Gaussian VaR and Estimates for Peers")

# with multiple methods
chart.BarVaR(managers[,1,drop=FALSE],
		methods=c("HistoricalVaR", "ModifiedVaR", "GaussianVaR"),
		main="... with Multiple Methods")

# cleaned up a bit
chart.BarVaR(managers[,1,drop=FALSE],
		methods=c("HistoricalVaR", "ModifiedVaR", "GaussianVaR"),
		lwd=2, ypad=.01,
		main="... with Padding for Bottom Legend")

# with 'cleaned' data for VaR estimates
chart.BarVaR(managers[,1,drop=FALSE],
		methods=c("HistoricalVaR", "ModifiedVaR"),
		lwd=2, ypad=.01, clean="boudt",
		main="... with Robust ModVaR Estimate")

# Cornish Fisher VaR estimated with cleaned data,
# with horizontal line to show exceptions
chart.BarVaR(managers[,1,drop=FALSE],
		methods="ModifiedVaR",
		lwd=2, ypad=.01, clean="boudt",
		show.horizontal=TRUE, lty=2,
		main="... with Robust ModVaR and Line for Identifying Exceptions")

Run the code above in your browser using DataLab