Create varbacktest
object to run suite of value-at-risk
(VaR) backtests
The general workflow is:
Load or generate the data for the VaR backtesting analysis.
Create a varbacktest
object. For more information, see
Create varbacktest.
Use the summary
function to generate a
summary report for the given data on the number of observations and the
number of failures.
Use the runtests
function to run all
tests at once.
For additional test details, run the following individual tests:
For more information, see VaR Backtesting Workflow.
creates a vbt
= varbacktest(PortfolioData
,VaRData
)varbacktest
(vbt
) object
using portfolio outcomes data and corresponding value-at-risk (VaR) data.
The vbt
object has the following properties:
PortfolioData
— NumRows
-by-1
numeric array containing a copy of the
PortfolioData
VaRData —
NumRows
-by-NumVaRs
numeric array containing a copy of the
VaRData
PortfolioID
— String containing the
PortfolioID
VaRID —
1
-by-NumVaRs
string
vector containing the VaRID
s for the
corresponding columns in VaRData
VaRLevel —
1
-by-NumVaRs
numeric
array containing the VaRLevel
s for the
corresponding columns in VaRData
.
Note
The required input arguments for
PortfolioData
and
VaRData
must all be in the same
units. These arguments can be expressed as returns or as
profits and losses. There are no validations in the
varbacktest
object regarding the
units of these arguments.
If there are missing values (NaN
s) in
the data for PortfolioData
or
VaRData
, the row of data is
discarded before applying the tests. Therefore, a different
number of observations are reported for models with
different number of missing values. The reported number of
observations equals the original number of rows minus the
number of missing values. To determine if there are
discarded rows, use the 'Missing'
column
of the summary
report.
sets Properties using name-value
pairs and any of the arguments in the previous syntax. For example,
vbt
= varbacktest(___,Name,Value
)vbt =
varbacktest(PortfolioData,VaRData,'PortfolioID','Equity100','VaRID','TotalVaR','VaRLevel',.99)
.
You can specify multiple name-value pairs as optional name-value pair
arguments.
tl | Traffic light test for value-at-risk (VaR) backtesting |
bin | Binomial test for value-at-risk (VaR) backtesting |
pof | Proportion of failures test for value-at-risk (VaR) backtesting |
tuff | Time until first failure test for value-at-risk (VaR) backtesting |
cc | Conditional coverage mixed test for value-at-risk (VaR) backtesting |
cci | Conditional coverage independence test for value-at-risk (VaR) backtesting |
tbf | Time between failures mixed test for value-at-risk (VaR) backtesting |
tbfi | Time between failures independence test for value-at-risk (VaR) backtesting |
summary | Report on varbacktest data |
runtests | Run all tests in varbacktest |
[1] Basel Committee on Banking Supervision, Supervisory Framework for the Use of 'Backtesting' in Conjunction with the Internal Models Approach to Market Risk Capital Requirements. January, 1996, https://www.bis.org/publ/bcbs22.htm.
[2] Christoffersen, P. "Evaluating Interval Forecasts." International Economic Review. Vol. 39, 1998, pp. 841–862.
[3] Cogneau, Ph. “Backtesting Value-at-Risk: How Good is the Model?" Intelligent Risk, PRMIA, July, 2015.
[4] Haas, M. "New Methods in Backtesting." Financial Engineering, Research Center Caesar, Bonn, 2001.
[5] Jorion, Ph. Financial Risk Manager Handbook. 6th Edition. Wiley Finance, 2011.
[6] Kupiec, P. "Techniques for Verifying the Accuracy of Risk Management Models." Journal of Derivatives. Vol. 3, 1995, pp. 73–84.
[7] McNeil, A., Frey, R., and Embrechts, P. Quantitative Risk Management. Princeton University Press, 2005.
[8] Nieppola, O. “Backtesting Value-at-Risk Models.” Master's Thesis, Helsinki School of Economics, 2009.
bin
| cc
| cci
| esbacktest
| esbacktestbysim
| pof
| runtests
| summary
| table
| tbf
| tbfi
| tl
| tuff