Description Usage Arguments Details Value Note Author(s) References Examples
Implements the following volatility strategy: Each day, hold XIV if contango is
greater than xiv.cutpoint
, hold VXX if contango is less than
vxx.cutpoint
, and hold cash otherwise.
1 2 3 4 5 6 | contango.simple(contango,
xiv.gains = NULL,
vxx.gains = NULL,
xiv.cutpoint = 0,
vxx.cutpoint = -Inf,
initial = 10000)
|
contango |
Numeric vector of contango values at the end of each trading day (or week, month, etc.). |
xiv.gains |
Numeric vector of gains for XIV. Should be same length as |
vxx.gains |
Numeric vector of gains for VXX. Should be same length as |
xiv.cutpoint |
Numeric value giving the contango cutpoint for XIV. For example, if
|
vxx.cutpoint |
Numeric value giving the contango cutpoint for VXX. For example, if
|
initial |
Numeric value giving the initial value of the portfolio. |
You can find historical contango values from The Intelligent Investor Blog. You can click the first link at http://investing.kuchita.com/2012/06/28/xiv-data-and-pricing-model-since-vix-futures-available-2004/ to download a zip file containing an Excel spreadsheet. Then, you will need to calculate whatever version of "contango" you prefer. I typically define contango as what percent higher the second-month VIX futures are acompared to the first- month futures, i.e. dividing the "2nd mth" column by the "1st mth" column, subtracting 1, and then multiplying by 100.
I think the most common approach for contango-based volatility strategies is
holding XIV (inverse volatility) when contango is above some value (e.g. 0%,
5%, or 10%), and holding cash otherwise. You can do that with this function by
leaving vxx.cutpoint
as -Inf
. However, you may also want to hold
VXX (volatility) when contango is below some value (e.g. 0%, -5%, -10%), also
known as "backwardation". You can implement an XIV-only, VXX-only, or XIV and
VXX strategy with this function.
To load daily gains for XIV and/or VXX, you can use load.gains
,
which uses the quantmod package [1] to load data from Yahoo! Finance. You
will have to specify the from
and to
inputs to match the date
range for your contango values.
A 4-element list containing the following: (1) A character vector named
holdings
indicating what fund was held each day (XIV, VXX, or cash); (2)
a numeric vector named port.gains
giving the portfolio gain for each day,
which will be 0 for days that cash was held and the XIV or VXX gain for days
that XIV or VXX was held; (3) a numeric vector named port.balances
giving
the portfolio balance each day; and (4) a numeric value named trades
giving the total number of trades that were executed.
NA
Dane R. Van Domelen
1. Jeffrey A. Ryan (2016). quantmod: Quantitative Financial Modelling Framework. R package version 0.4-6, https://cran.r-project.org/package=quantmod.
Acknowledgment: This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE-0940903.
1 |
Loading required package: rbenchmark
[1] NA
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.