The pricing of a financial derivative relies on a model
that describes the underlying processes. Commonly used interest
rate models include the Black-Karasinski model and the Libor Market Model. The
models depend on one or more parameters that need to be determined by matching
the model predictions to available market data. This is the process of
calibration.
A calibrated model is therefore
a model whose parameters have values that are consistent with market observations.
Calibration involves finding values of the parameters such that the model is
able to reproduce (as close as possible) the prices of calibration instruments
observed in the market. For example, values of the Libor Market Model
parameters (forward rate volatilities and correlations) are found by
calibrating the model to market-quoted Black volatilities of caplets and
European-style swaptions. FINCAD provides functions for the calibration of the
following interest rate models:
·
One-Factor Short Rate Models: Hull-White,
Ho-Lee, Black-Karasinski, Black-Derman-Toy (BDT, also: Lognormal Short Rate)[1]
·
Two-Factor Short Rate Models: Hull-White,
Two-Additive-Factor Gaussian
·
Libor Market Model: standard log-normal, as well
as enhanced LMM with Constant Elasticity of Variance (CEV) and Displaced
Diffusion (DD) local volatility processes
For all of
these interest rate models, the calibration instruments (the market data) are
interest rate caplets/floorlets and European-style swaptions. The functional
forms of the modeled processes and the parameters associated with each model
are shown in Table
1. The Two-Factor Models and the LMM are
described in more detail in the FINCAD Math Reference documents Multi-Factor Short Rate Models and
Libor
Market Model respectively. For additional information on all interest
rate models, see Reference [1].
Table
1: Models that are supported by FINCAD
calibration functions
Model |
Process model(s) |
FINCAD calibration parameters |
Comments |
|
One-Factor Short Rate |
Hull-White |
|
Short rate mean
reversion and volatility: |
|
Ho-Lee |
|
Short rate volatility: |
Same as Hull-White with
|
|
Black-Karasinski |
|
Short rate mean
reversion and volatility: |
|
|
BDT (lognormal) |
|
Short rate volatility: |
Same as
Black-Karasinski with |
|
Two-Factor Short Rate |
Hull-White |
|
Reversions and
volatilities: |
|
Two-Additive-Factor
Gaussian |
|
Reversions and
volatilities: |
Deterministic shift, |
|
Libor Market Model |
Standard lognormal |
|
|
Instantaneous lognormal
volatility and correlation are sub-parameterized. |
CEV |
|
|
Instantaneous local
volatility and correlation are sub-parameterized. |
|
DD |
|
|
Instantaneous local
volatility and correlation are sub-parameterized. |
In the calibration of a model to market data, a minimization
algorithm seeks to find parameter values that minimize the differences between
the model predictions and the market data. The overall difference between the
model and the market data can be quantified with an error metric, which is a
function of the differences of each model prediction to the corresponding
calibration instrument, and the uncertainties associated with these instruments.
The FINCAD calibration functions provide three different possibilities to
define this error metric:
The most commonly used error metric is the statistic (a weighted
L-2 norm), which is defined as
.
where
is the total number of
calibration instruments,
is the market observation of the
-th calibration instrument with weight
, and
is the corresponding model prediction with the parameter
values given by
. The positive weights
are usually related to
the data uncertainties
via
, but as discussed below these weights may also be defined
differently.
The definition of the weighted L-1 norm
is similar to the statistic, This error
metric is the weighted sum of the absolute difference between the model
predictions and the market data.
The third error metric defined in the FINCAD calibration
functions is the weighted L-∞ norm or Kolmogorov-Smirnov statistic:
This statistic is the value of the largest
deviation between the model predictions and the market data. The weighted
L-∞ norm therefore measures the most significant deviation of the model
prediction from the market data. In contrast, the weighted L-2 and L-1 norms
measure the sum of all deviations of the model predictions from the market
data.
Note that all three error metrics are always larger or
equal to zero.
The FINCAD interest rate calibration functions define the
market observation as the instrument’s price
and analogously the model prediction
is the price of the
corresponding instrument. In the market, however, quotations of caplet and
European swaption prices are available as implied Black volatilities, so the
FINCAD calibration functions convert Black volatility to price before
calculating the error metric.
The calibration algorithm finds model parameters that
minimize the error metrics discussed above. There are a large variety of
minimization algorithms available. The FINCAD calibration functions implement
the well-known Levenberg-Marquardt and downhill simplex algorithms [2]
as well as the differential evolution algorithm [3].
The Levenberg-Marquardt algorithm is an iterative algorithm that navigates
parameter space in an intelligent way to find the minimum of the error metric.
This navigation requires the calculation of partial derivatives of the error
metric with respect to the model parameters.
The downhill simplex algorithm is an iterative algorithm
that does a simple search of parameter space. It does not require the
calculation of partial derivatives but needs more iterations to find an error
metric minimum. For more information on
the Levenberg-Marquardt and downhill simplex algorithms see Reference [2].
The differential evolution algorithm starts out with many
random sets of trial parameter values [3]. These parameter sets are then iteratively combined
to form new sets such that the new parameter sets result in smaller error
metrics. This iteration (or evolution) of the parameter sets thus finds the
parameter values that minimize the error metric. While differential evolution
is computationally more intensive than Levenberg-Marquardt and downhill
simplex, it is more likely to find the global minimum.
In all three algorithms the search for the best parameter
values requires many evaluations of the error metric. It is thus important that
the calculations of model-predicted prices (the above) be fast. For this reason, closed-form expressions for
the prices of caplets and European swaptions are used when calibrating all
models, except in the case of the One-Factor Short Rate Black-Karasinski and
Lognormal models that require the use of trinomial interest rate trees.
In order to perform a calibration, the user must choose
appropriate market data with regards to the specific pricing application. These
market data should be chosen such that the data span a time period that is
similar to the time period of the pricing application and such that the
instruments are similar. For example, if the user wishes to price a 10-year
semi-annual Bermudan swaption effective today, then he would calibrate the
model using market quotes for the 0.5×9.5, 1×9, 1.5×8.5,…, 9.5×0.5 European
swaptions.
In addition to the market-quoted Black volatilities of the
calibration instruments, the user may also enter estimated uncertainties in the
quotes. The uncertainty is inversely proportional to the weight that the
instrument has in the calibration. The larger the weight (or the smaller the
uncertainty) the closer the prediction must be to the market data. For example,
a relatively illiquid swaption may be temporarily misaligned with other
swaptions in the swaption matrix [1].
This illiquid swaption represents poor quality data which should be de-weighted
with respect to the good quality liquid data. In this case, one would assign a
larger uncertainty (a smaller weight) to the illiquid swaption than to the
liquid swaptions, so that the model parameters are primarily calibrated with
respect to the good quality data.
If estimates of the uncertainties are not available, the
user may choose constant weights or vega-weights for the instrument prices. The
former choice means that all instruments have the same weight in the
calibration.[2]
Constant weighting is useful when all calibration data is similarly liquid, for
example a set of at-the-money swaptions with close but different expiry dates.
In the case of vega-weighting the instruments are
weighted by their corresponding values of vega.[3]
Therefore an instrument that is out-of-the-money will have a smaller weight
than at-the-money instruments that are more liquid.
The user must also enter upper and lower boundaries for
the model parameters. These inputs represent the search constraints for finding
the error metric minimum. For example, if the value of the correlation parameter
in the Libor Market Model has a lower bound of 0.0 and an upper bound of 0.2,
then the minimization algorithm will attempt to find a value for this parameter
within this interval. If the user enters the same value for the upper and lower
boundaries of a parameter, then the parameter is held fixed at this value
during the calibration process. The user
can thus constrain the calibration to intervals of reasonable parameter values.
Conversely it is possible to vary the upper and lower boundaries of the model
parameters in a number of calibrations in order to search different ranges of
parameter values for the best-fit values.
The FINCAD functions require that the user specify initial
parameter values for the minimization. These inputs specify where the Levenberg
Marquardt and downhill simplex minimization algorithms start their search for
the error metric minimum. These initial guesses are ideally close to the
parameter values that minimize the error metric. The user may also confirm a
calibration result by re-running a calibration with the calibrated parameters
found in a previous calibration. The initial values have to be within the
boundaries of the parameter ranges. Note that the differential evolution
algorithm does not use the initial parameter values.
The minimization parameter table specifies the maximum
number of iteration steps and the tolerance at the error metric minimum. The
Levenberg Marquardt and downhill simplex algorithms often converge in less than
200 iteration steps, whereas differential evolution may require a larger number
of steps. The tolerance provides a threshold for the convergence or stopping
condition. In the Levenberg Marquardt and downhill simplex algorithms the
minimization is stopped when the error metric is decreasing from one iteration
step to the next by less than the value given by the tolerance. In the
differential evolution algorithm the stopping condition is based on the
distribution of error metrics of the set of parameter vectors, see Reference [4] for a discussion of similar stopping criteria.
The FINCAD functions can provide an order of magnitude estimate
of the time required for the calibration. This can be useful when using the
differential evolution algorithm which is computationally very intensive and
can thus take a long time. The time estimate is returned in seconds.
The error metric is a function of the market data and the
model parameters. The error metric
therefore defines a surface in parameter space. The three minimization
algorithms find the error metric minimum if the surface is smooth and if there
is only a single (a global) minimum. Depending on the complexity of the model
and the amount of noise in the data, however, the error metric surface will
have local minima in addition to the global minimum. For such surfaces, it is
possible for the Levenberg-Marquardt and downhill simplex algorithms to terminate
at a local minimum. In such cases the differential evolution algorithm provides
a more reliable method for minimization.
A successful calibration is indicated by
·
convergence flag = 0 (indicating convergence of
the error minimization algorithm).
·
fitted model parameter values that are well
inside the parameter ranges entered by the user (indicating that the error
minimization algorithm was able to find an error minimum in parameter space
without getting stuck at a boundary).
Even if the above conditions are met, it is
recommended that the user enter the calibrated parameters into the FINCAD
pricing functions in order to re-price the calibration instruments and compare
with the original market data. In general, for a good calibration, the
calculated model errors (the difference between the model prediction of the
prices and the market prices) should be both positive and negative and
distributed evenly about zero (i.e., there
should be no positive or negative bias in the model errors).
It is also recommended that the user attempt the
calibration with various sets of initial parameter values and parameter ranges
so that the calibration is performed with several different sets of initial
parameter values and different allowed ranges. The user should select the
calibration with the smallest error metric, because in the obtained sample this
error metric is the most likely to correspond to a global minimum and therefore
the best calibration.
If the calibration has to be redone often with only small
changes in the market data, the user could carry out the calibration using
differential evolution initially. Subsequent incremental calibrations can then
be done with Levenberg-Marquardt or downhill simplex using the calibration
result from the differential evolution as initial parameters. Occasionally the
user should re-calibrate with differential evolution to confirm the parameter
values found with one of the other algorithms.
aaCalibrateCaplets_BK(d_v,
blvol_tbl, acc, df_crv, intrp, param_rng, param_ini, min_method, min_param,
error_metric, weighting, table_type)
Calibrates the Black-Karasinski (or Lognormal) one-factor
term structure model to a given set of quoted market caplet and/or floorlet Black
volatilities. Black volatilities are converted to price prior to calibration.
The calibration can be done with the Levenberg-Marquardt, downhill simplex, or
differential evolution algorithms.
aaCalibrateCaplets_HW(d_v,
blvol_tbl, acc, df_crv, intrp, param_rng, param_ini, min_method, min_param,
error_metric, weighting, table_type)
Calibrates the parameters of the Hull-White (or Ho-Lee)
one-factor term structure model to a given set of market caplet and/or floorlet
Black volatilities. Black volatilities are converted to price prior to
calibration. The calibration can be done with the Levenberg-Marquardt, downhill
simplex, or differential evolution algorithms.
aaCalibrateCaplets_LMM(d_v,
blvol_tbl, acc, df_crv, intrp, model_vol, param_rng, param_ini, min_method,
min_param, error_metric, weighting, table_type)
Calibrates the parameters of the Hull-White (or Ho-Lee)
one-factor term structure model to a given set of market caplet and/or floorlet
Black volatilities. Black volatilities are converted to price prior to
calibration. The calibration can be done with the Levenberg-Marquardt, downhill
simplex, or differential evolution algorithms.
aaCalibrateCaplets_MF(d_v,
blvol_tbl, acc, df_crv, intrp, model_type,
Calibrates the parameters of a functional form for the
instantaneous volatilities in the Libor Market Model to a given set of market
caplet and/or floorlet Black volatilities.
The Libor Market Model can be enhanced with a local volatility process. Black volatilities are converted to price
prior to calibration. The calibration can be done with the Levenberg-Marquardt,
downhill simplex, or differential evolution algorithms.
aaCalibrateSwaptions_BK(d_v,
blvol_tbl, freq, acc, df_crv, intrp, d_rul, hl, iter_year, param_rng,
param_ini, min_method, min_param, error_metric, weighting, table_type)
Calibrates the parameters of the Black-Karasinski (or
Lognormal) one-factor term structure model to a given set of market swaption
Black volatilities. Black volatilities are converted to price prior to
calibration. The calibration can be done with the Levenberg-Marquardt, downhill
simplex, or differential evolution algorithms.
aaCalibrateSwaptions_HW(d_v,
blvol_tbl, freq, acc, df_crv, intrp, d_rul, hl, param_rng, param_ini,
min_method, min_param, error_metric, weighting, table_type)
Calibrates the parameters of the Hull-White (or Ho-Lee)
one-factor term structure model to a given set of market swaption Black
volatilities. Black volatilities are converted to price prior to calibration.
The calibration can be done with the Levenberg-Marquardt, downhill simplex, or
differential evolution algorithms.
aaCalibrateSwaptions_LMM(d_v,
blvol_tbl, freq, acc, df_crv, intrp, d_rul, hl, approx, model_vol, model_corr,
param_rng, param_ini, min_method, min_param, error_metric, weighting,
table_type)
Calibrates the parameters of functional forms for the
instantaneous volatilities and correlations in the Libor Market Model to a
given set of market swaption Black volatilities. The Libor Market Model can be
enhanced with a local volatility process.
Black volatilities are converted to price prior to calibration. The
calibration can be done with the Levenberg-Marquardt, downhill simplex, or
differential evolution algorithms.
aaCalibrateSwaptions_MF(d_v,
blvol_tbl, freq, acc, df_crv, intrp, d_rul, hl, model_type, param_rng,
param_ini, min_method, min_param, error_metric, weighting, table_type)
Calibrates the parameters of a multi-factor term structure
model to a given set of market swaption Black volatilities. Black volatilities
are converted to price prior to calibration. The calibration can be done with the
Levenberg-Marquardt, downhill simplex, or differential evolution algorithms.
Input Argument |
Type |
Description |
d_v |
Date |
Value (settlement) date |
blvol_tbl |
Table |
Black volatility table.
This table can have 5 or 6 columns.
The first 5 columns are: option
type, effective date, terminating date, Black volatility, and exercise rate. In the case of the aaCalibrateCaplets* functions,
the option type corresponds to switch 20: 1 = caplet, 2 = floorlet In the case of the aaCalibrateSwaptions* functions,
the option type corresponds to switch 95: 1 = right to receive fixed, 2 =
right to pay fixed In the case of the aaCalibrateSwaptions* functions,
if the exercise rate is 0 then the swaption is assumed to be at-the-money (i.e., the exercise rate is set to the par swap
rate). An optional 6th column may be included which specifies the
uncertainty (standard deviation) in each Black volatility. If this column is missing, or if the data
in this column is <= 0%, then the standard deviation is set to a default
value of 1%. The uncertainty handling is also driven by the weighting
switch 2063, see below. If the switch is set to 2 or 3 the 6th column is
ignored and the weighting of the data is computed internally. |
freq |
Number |
Fixed and floating leg payment (and reset) frequency for
the underlying swap of each swaption in blvol_tbl. |
acc |
Number |
Accrual method for valuation of options in blvol_tbl. |
df_crv |
Table |
Discount factor curve. |
intrp |
Number |
Interpolation method for discount factors. |
d_rul |
Number |
Business day convention for valuation of swaptions in
blvol_tbl. |
hl |
Table |
Holiday list for valuation of swaptions in blvol_tbl. |
iter_year |
Number |
Number of time steps per year when building a One-Factor
Short Rate Black-Karasinski or Lognormal trinomial interest rate tree. |
model_type |
Number |
Multi-factor short rate model type. |
approx |
Number |
Approximate closed-form expression for swap rate
volatility in terms of forward rate volatility in the Libor Market Model. |
model_vol |
Number |
Parameterization of instantaneous lognormal or local volatility
in the Libor Market Model. |
model_cor |
Table |
Parameterization of instantaneous correlation in the Libor
Market Model. |
param_rng |
Table |
Model parameter range table. This is a 2×M table where M is the number
of model parameters. For the
one-factor short rate models, M = 2 ( |
param_ini(*) |
Table |
Initial parameter range table. This is a 1xM table where M
is the number of model parameters. This table sets the initial parameter
values for calibration with the Levenberg-Marquardt or downhill simplex
algorithms. The table is ignored if the error minimization method is differential
evolution. |
min_method |
Number |
Error minimization algorithm. |
min_param |
Table |
Minimization parameter table. This one-row table has at
least two columns, the maximum number of iteration steps and the tolerance
for the minimization. In the case of differential evolution a fractional
number of iteration steps seeds the random number generator with a fixed
seed. Three additional columns are optional for differential evolution: The
number of population members per parameter (NP), the amplification factor
(F), and the crossover probability (CR). |
error_metric |
Number |
Error metric used in the calibration. |
weighting |
Number |
Weighting of market data in error metric. |
table_type |
Number |
Type of output table. |
If the table_type input is equal to ‘time estimate for
calibration’, the output is a single cell with an order-of-magnitude estimate
of the time in seconds required for the calibration.
Otherwise, the output of the calibration functions is a
1-row table with the following columns:
Col |
Output Statistic |
Type |
Description |
1 |
time |
Number |
Time for fit |
2 |
number of internal function calls |
Number |
Number of iterations used by the iterative calibration
algorithm. |
3 |
calibration converged |
Number |
Convergence flag that indicates whether or not the
calibration converged on a solution for the model parameters. |
4 |
error metric |
Number |
Error metric for
the calibrated model parameter values. |
5 to M+4 |
model parameters |
Number/Rate |
Calibrated values of the M model parameters. |
Suppose we are interested in calculating the price and
risk statistics of a 10-year semi-annual Bermudan swaption using the Libor
Market Model. To get accurate price and
risk statistics for the Bermudan, we should calibrate the Libor Market Model to
the semi-annual caplets and/or European swaptions that have the same exercise
dates as the Bermudan. Suppose we have
access to a number of market quotes for the Black volatilities of the 1×9, 1.5×8.5, …., 9.5×0.5 European swaptions
struck at the money, where time zero corresponds to the effective date of the
Bermudan (22-May-2000). (Note
that the last 9.5×0.5 European swaption
is actually a caplet.) From the
various quotes for each swaption, we can estimate an uncertainty in each Black
volatility. The Black volatility table is constructed as below, with exercise
rate = 0% to indicate “at the money”:
Black Volatility Table
option type |
effective date |
terminating date |
Black volatility |
exercise rate |
uncertainty |
1 |
22-May-2001 |
22-May-2010 |
15.170729% |
0.000% |
0.70% |
1 |
22-Nov-2001 |
22-May-2010 |
15.331810% |
0.000% |
0.60% |
1 |
22-May-2002 |
22-May-2010 |
15.415442% |
0.000% |
0.60% |
1 |
22-Nov-2002 |
22-May-2010 |
15.468907% |
0.000% |
0.50% |
1 |
22-May-2003 |
22-May-2010 |
15.510277% |
0.000% |
0.50% |
1 |
22-Nov-2003 |
22-May-2010 |
15.501956% |
0.000% |
0.50% |
1 |
22-May-2004 |
22-May-2010 |
15.539473% |
0.000% |
0.50% |
1 |
22-Nov-2004 |
22-May-2010 |
15.621364% |
0.000% |
0.50% |
1 |
22-May-2005 |
22-May-2010 |
15.643770% |
0.000% |
0.40% |
1 |
22-Nov-2005 |
22-May-2010 |
15.713499% |
0.000% |
0.40% |
1 |
22-May-2006 |
22-May-2010 |
15.766221% |
0.000% |
0.40% |
1 |
22-Nov-2006 |
22-May-2010 |
15.824947% |
0.000% |
0.40% |
1 |
22-May-2007 |
22-May-2010 |
15.886927% |
0.000% |
0.40% |
1 |
22-Nov-2007 |
22-May-2010 |
15.955530% |
0.000% |
0.40% |
1 |
22-May-2008 |
22-May-2010 |
16.024347% |
0.000% |
0.40% |
1 |
22-Nov-2008 |
22-May-2010 |
16.013255% |
0.000% |
0.40% |
1 |
22-May-2009 |
22-May-2010 |
16.176638% |
0.000% |
0.40% |
1 |
22-Nov-2009 |
22-May-2010 |
16.114566% |
0.000% |
0.50% |
We choose the standard LMM with a 4-parameter
linear-exponential form for instantaneous lognormal volatility and a 2-parameter
exponential form for instantaneous correlation. Based on observations of
historical correlation, we choose to retain the correlation structure by
freezing the exponential parameter of instantaneous correlation () at a value of 0.1 (see
the Libor
Market Model FINCAD Math Reference document). The model parameter range table is set up as follows:
Model Parameter Range Table
a |
b |
c |
d |
beta1 |
beta2 |
-1.0 |
0.0 |
0.0 |
0.0 |
0.0 |
0.1 |
1.0 |
0.5 |
5.0 |
0.5 |
1.0 |
0.1 |
The initial parameters are set up such that they are
at the midpoints of these intervals. The fixed parameter is set to 0.1:
Initial Model Parameter Table
a |
b |
c |
d |
beta1 |
beta2 |
0 |
0.25 |
2.5 |
0.25 |
0.5 |
0.1 |
Note that this table is ignored by the differential evolution
algorithm.
We wish to value the Bermudan swaption on
14-Feb-2000. The day count is 30/360 and
the business day convention is modified following adjusted. We choose the Rebonato approximation for calculation
of swap rate volatility in terms of forward rate volatility in the Libor Market
Model (see the Libor Market Model FINCAD Math Reference document), and we
choose the statistic as our error metric with an error
tolerance of 0.001. We fix the maximum number of iteration steps at 500:
Minimization Parameter Table
max iteration steps |
tolerance |
500 |
0.001 |
We use differential
evolution to reduce the possibility of terminating the calibration in a local
minimum.
All inputs to the aaCalibrateSwaptions_LMM
function are summarized below.
aaCalibrateSwaptions_LMM
Argument |
Description |
Example Data |
Switch |
d_v |
Value (settlement) date |
14-Feb-2000 |
|
blvol_tbl |
Black volatility table |
Black volatility table shown above |
|
freq |
Fixed and floating leg payment (and reset) frequency for
the underlying swap of each swaption in blvol_tbl. |
2 |
semi-annual |
acc |
Accrual method for valuation of options in blvol_tbl. |
4 |
30/360 |
df_crv |
Discount factor curve. |
Discount factor curve, shown below |
|
intrp |
Interpolation method for discount factors. |
1 |
linear |
d_rul |
Business day convention for valuation of swaptions in
blvol_tbl. |
4 |
modified following business day |
hl |
Holiday list for valuation of swaptions in blvol_tbl. |
Holiday list, shown below |
|
approx |
Approximate closed-form expression for swap rate
volatility in terms of forward rate volatility in the Libor Market Model. |
1 |
Rebonato |
model_vol |
Parameterization of instantaneous volatility in the Libor
Market Model. |
1 |
4 parameters: linear-exponential lognormal volatility |
model_cor |
Parameterization of instantaneous correlation in the Libor
Market Model. |
1 |
Type 1 – 2 parameter exponential |
param_rng |
Model parameter range table. |
shown above |
|
param_ini |
Initial model parameter table |
shown above |
|
min_method |
Error minimization algorithm. |
3 |
Differential evolution |
min_param |
Minimization parameters table |
shown above |
|
error_metric |
Error metric |
1 |
|
weighting |
Weighting of Black volatilities |
1 |
user input of
volatility uncertainties |
table_type |
Output table type |
1 |
time estimate for calibration |
t_43_6 –
Discount Factor Curve |
|
t_26_3 –
Holiday List |
Grid Date |
Discount Factor |
|
Date |
14-Feb-2000 |
1.00000000 |
|
25-Dec-2005 |
15-Feb-2000 |
0.99986634 |
|
1-Jan-2006 |
15-Aug-2000 |
0.97583485 |
|
25-Dec-2006 |
15-Feb-2001 |
0.95212637 |
|
1-Jan-2007 |
15-Aug-2001 |
0.92936652 |
|
25-Dec-2007 |
15-Feb-2002 |
0.90678702 |
|
1-Jan-2008 |
15-Aug-2002 |
0.88511098 |
|
25-Dec-2008 |
15-Feb-2003 |
0.86360669 |
|
1-Jan-2009 |
15-Aug-2003 |
0.84296283 |
|
|
15-Feb-2004 |
0.82248256 |
|
|
15-Aug-2004 |
0.80271444 |
|
|
15-Feb-2005 |
0.78321202 |
|
|
15-Aug-2005 |
0.76448994 |
|
|
15-Feb-2006 |
0.74591621 |
|
|
15-Aug-2006 |
0.72808566 |
|
|
15-Feb-2007 |
0.71039639 |
|
|
15-Aug-2007 |
0.69341491 |
|
|
15-Feb-2008 |
0.67656799 |
|
|
15-Aug-2008 |
0.66030689 |
|
|
15-Feb-2009 |
0.64426435 |
|
|
15-Aug-2009 |
0.62886370 |
|
|
15-Feb-2010 |
0.61358509 |
|
|
15-Aug-2010 |
0.59891781 |
|
|
14-Feb-2011 |
0.58439810 |
|
|
14-Feb-2012 |
0.55648080 |
|
|
14-Feb-2013 |
0.52982607 |
|
|
14-Feb-2014 |
0.50451573 |
|
|
14-Feb-2015 |
0.48041449 |
|
|
Before the calibration we estimate the required
time. In the first call to the function we set the table_type input to ‘time
estimate for calibration’. The function output is
time estimate for calibration |
2203 |
given in seconds or about 36 minutes. We then run the
calibration (we change the table_type input to ‘calibration’). The results from
the calibration
are given below. The parameter remains frozen at 0.1,
and the fitted values of all other parameters are between the lower and upper
bounds as specified in the model parameter range table. The convergence flag is
0, which indicates that the calibration converged. None of the parameter values are close to the
initial boundaries in the model parameter range table, which provides further
indication that the algorithm found the function minimum in parameter
space. Therefore, this calibration was
successful.
time for fit |
no. iter |
conv. flag |
error metric |
a |
b |
c |
d |
beta1 |
beta2 |
694.6 |
314 |
0 |
0.093 |
-0.143 |
0.267 |
2.764 |
0.162 |
0.528 |
0.1 |
These parameter values can be input into the Libor
Market Model European swaption pricing function, aaSwaption2_eu_LMM_ff,
to verify the quality of the calibration.
As expected, the differences between the model-predicted Black
volatilities and the input Black volatilities (column 3) are within the input
uncertainties in Black volatilities (column 4).
The differences do not seem to be biased in the positive or negative
direction, again indicating that this is a successful calibration.
Market Black volatility (see Black volatility table above) |
Model-predicted Black volatility using aaSwaption2_eu_LMM_ff |
Difference between model and market |
Input uncertainty in Black volatility (see Black volatility table
above) |
15.170729% |
15.263% |
0.092% |
0.70% |
15.331810% |
15.326% |
-0.006% |
0.60% |
15.415442% |
15.375% |
-0.041% |
0.60% |
15.468907% |
15.423% |
-0.046% |
0.50% |
15.510277% |
15.469% |
-0.041% |
0.50% |
15.501956% |
15.509% |
0.007% |
0.50% |
15.539473% |
15.560% |
0.020% |
0.50% |
15.621364% |
15.619% |
-0.003% |
0.50% |
15.643770% |
15.667% |
0.023% |
0.40% |
15.713499% |
15.723% |
0.010% |
0.40% |
15.766221% |
15.777% |
0.010% |
0.40% |
15.824947% |
15.833% |
0.008% |
0.40% |
15.886927% |
15.889% |
0.002% |
0.40% |
15.955530% |
15.949% |
-0.007% |
0.40% |
16.024347% |
16.007% |
-0.018% |
0.40% |
16.013255% |
16.067% |
0.053% |
0.40% |
16.176638% |
16.113% |
-0.063% |
0.40% |
16.114566% |
16.133% |
0.019% |
0.50% |
In subsequent calibrations to market data where
for example the Black volatilities are updated, we could use the parameter
values found in this calibration as initial parameters and carry out the fit
with the less time consuming Levenberg-Marquardt algorithm.
aaCaplet_HW,
aaCaplet_BK,
aaCaplet_MF,
aaCaplet_LMM
Values a caplet using a Hull-White/Ho-Lee or
Black-Karasinski/Lognormal One-Factor Short Rate Model, or a Multi-Factor Short
Rate Model, or the Libor Market Model.
aaSwaption_eu_HW,
aaSwaption_eu_BK,
aaSwaption_eu_MF,
aaSwaption2_eu_LMM_ff
Values a European swaption using a Hull-White/Ho-Lee or
Black-Karasinski/Lognormal One-Factor Short Rate Model, or a Multi-Factor Short
Rate Model, or the Libor Market Model.
[1]
Brigo, D. and Mercurio, F. (2001) Interest Rate Models Theory and Practice, Berlin:
Springer.
Disclaimer
With respect to this document,
FinancialCAD Corporation (“FINCAD”) makes no warranty either express or
implied, including, but not limited to, any implied warranty of merchantability
or fitness for a particular purpose. In no event shall FINCAD be liable to
anyone for special, collateral, incidental, or consequential damages in
connection with or arising out of the use of this document or the information
contained in it. This document should not be relied on as a substitute for your
own independent research or the advice of your professional financial,
accounting or other advisors.
This information is subject to change
without notice. FINCAD assumes no responsibility for any errors in this
document or their consequences and reserves the right to make changes to this
document without notice.
Copyright
Copyright ©
FinancialCAD Corporation 2008. All rights reserved.
[1]
The Ho-Lee and the Black-Derman-Toy Model can be calibrated using the Hull
White and the Black-Karasinski Models respectively and fixing the parameter a at zero.
[2]
The FINCAD functions compute the weights as the inverse of the average of the
input prices.
[3]
The vega weights are scaled such that the weights represent prices.