File: group__shortrate.html

package info (click to toggle)
quantlib-refman-html 0.3.14-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 43,500 kB
  • ctags: 8,975
  • sloc: makefile: 31
file content (181 lines) | stat: -rw-r--r-- 13,219 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<meta name="robots" content="none">
<title>QuantLib: Short-rate modelling framework</title>
<link rel="stylesheet" href="quantlib.css" type="text/css">
<link rel="stylesheet" href="print.css" type="text/css" media="print">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
</head>
<body>

<div id="container">
<div id="header">
<img class="titleimage"
 src="QL-title.jpg" width="212" height="47" border="0"
 alt="QuantLib">
<br>
<h3 class="subtitle">A free/open-source library for quantitative finance</h3>
</div>
<div id="menu">

<h3 class="navbartitle">Version 0.3.14</h3>

<hr>

<h3 class="navbartitle">Getting started</h3>
<ul class="navbarlist">
<li class="navlink"><a href="index.html">Introduction</a></li>
<li class="navlink"><a href="overview.html">Project overview</a></li>
<li class="navlink"><a href="where.html">Where to get QuantLib</a></li>
<li class="navlink"><a href="install.html">Installation</a></li>
<li class="navlink"><a href="config.html">Configuration</a></li>
<li class="navlink"><a href="usage.html">Usage</a></li>
<li class="navlink"><a href="faq.html">Frequently asked questions</a></li>
<li class="navlink"><a href="history.html">Version history</a></li>
<li class="navlink"><a href="resources.html">Additional resources</a></li>
<li class="navlink"><a href="group.html">The QuantLib group</a></li>
<li class="navlink"><a href="license.html">Copyright and license</a></li>
</ul>

<hr>

<h3 class="navbartitle">Reference manual</h3>
<ul class="navbarlist">
<li class="navlink"><a href="modules.html">Modules</a></li>
<li class="navlink"><a href="hierarchy.html">Class Hierarchy</a></li>
<li class="navlink"><a href="annotated.html">Compound List</a></li>
<li class="navlink"><a href="files.html">File List</a></li>
<li class="navlink"><a href="functions.html">Compound Members</a></li>
<li class="navlink"><a href="globals.html">File Members</a></li>
<li class="navlink"><a href="todo.html">Todo List</a></li>
<li class="navlink"><a href="bug.html">Known Bugs</a></li>
<li class="navlink"><a href="caveats.html">Caveats</a></li>
<li class="navlink"><a href="test.html">Test Suite</a></li>
<li class="navlink"><a href="deprecated.html">Deprecated Features</a></li>
<li class="navlink"><a href="examples.html">Examples</a></li>
</ul>
</div>

<div id="content">
<!--Doxygen-generated content-->

<!-- Generated by Doxygen 1.5.1 -->
<h1>Short-rate modelling framework</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This framework (corresponding to the ql/ShortRateModels directory) implements some single-factor and two-factor short rate models. The models implemented in this library are widely used by practitionners. For the moment, the ShortRateModels::Model class defines the short-rate dynamics with stochastic equations of the type <p class="formulaDsp">
<img class="formulaDsp" alt="\[ dx_i = \mu(t,x_i) dt + \sigma(t,x_i) dW_t \]" src="form_0.png">
<p>
 where <img class="formulaInl" alt="$ r = f(t,x) $" src="form_1.png">. If the model is affine (i.e. derived from the <a class="el" href="class_quant_lib_1_1_affine_model.html">QuantLib::AffineModel</a> class), analytical formulas for discount bonds and discount bond options are given (useful for calibration).<h2><a class="anchor" name="singlefactormodels">
Single-factor models</a></h2>
<dl class="user" compact><dt><b>The Hull &amp; White model</b></dt><dd><p class="formulaDsp">
<img class="formulaDsp" alt="\[ dr_t = (\theta(t) - \alpha(t) r_t)dt + \sigma(t) dW_t \]" src="form_2.png">
<p>
 When <img class="formulaInl" alt="$ \alpha $" src="form_3.png"> and <img class="formulaInl" alt="$ \sigma $" src="form_4.png"> are constants, this model has analytical formulas for discount bonds and discount bond options.</dd></dl>
<dl class="user" compact><dt><b>The Black-Karasinski model</b></dt><dd><p class="formulaDsp">
<img class="formulaDsp" alt="\[ d\ln{r_t} = (\theta(t) - \alpha \ln{r_t})dt + \sigma dW_t \]" src="form_5.png">
<p>
 No analytical tractability here.</dd></dl>
<dl class="user" compact><dt><b>The extended Cox-Ingersoll-Ross model</b></dt><dd><p class="formulaDsp">
<img class="formulaDsp" alt="\[ dr_t = (\theta(t) - k r_t)dt + \sigma \sqrt{r_t} dW_t \]" src="form_6.png">
<p>
 There are analytical formulas for discount bonds (and soon for discount bond options).</dd></dl>
<h2><a class="anchor" name="calibration">
Calibration</a></h2>
The class CalibrationHelper is a base class that facilitates the instanciation of market instruments used for calibration. It has a method marketValue() that gives the market price using a Black formula, and a modelValue() method that gives the price according to a model<p>
Derived classed are <a class="el" href="class_quant_lib_1_1_cap_helper.html">QuantLib::CapHelper</a> and <a class="el" href="class_quant_lib_1_1_swaption_helper.html">QuantLib::SwaptionHelper</a>.<p>
For the calibration itself, you must choose an optimization method that will find constant parameters such that the value: <p class="formulaDsp">
<img class="formulaDsp" alt="\[ V = \sqrt{\sum_{i=1}^{n} \frac{(T_i - M_i)^2}{M_i}}, \]" src="form_7.png">
<p>
 where <img class="formulaInl" alt="$ T_i $" src="form_8.png"> is the price given by the model and <img class="formulaInl" alt="$ M_i $" src="form_9.png"> is the market price, is minimized. A few optimization methods are available in the ql/Optimization directory.<h2><a class="anchor" name="twofactormodels">
Two-factor models</a></h2>
<h2><a class="anchor" name="pricers">
Pricers</a></h2>
<dl class="user" compact><dt><b>Analytical pricers</b></dt><dd></dd></dl>
If the model is affine, i.e. discount bond options formulas exist, caps are easily priced since they are a portfolio of discount bond options. Such a pricer is implemented in QuantLib::AnalyticalCapFloor. In the case of single-factor affine models, swaptions can be priced using the Jamshidian decomposition, implemented in QuantLib::JamshidianSwaption.<p>
<dl class="user" compact><dt><b>Using Finite Differences</b></dt><dd></dd></dl>
(Doesn't work for the moment) For the moment, this is only available for single-factor affine models. If <img class="formulaInl" alt="$ x = x(t, r) $" src="form_10.png"> is the state variable and follows this stochastic process: <p class="formulaDsp">
<img class="formulaDsp" alt="\[ dx_t = \mu(t,x)dt + \sigma(t,x)dW_t \]" src="form_11.png">
<p>
 any european-style instrument will follow the following PDE:<p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ \frac{\partial P}{\partial t} + \mu \frac{\partial P}{\partial x} + \frac{1}{2} \sigma^2 \frac{\partial^2 P}{\partial x^2} = r(t,x)P \]" src="form_12.png">
<p>
<p>
The adequate operator to feed a Finite Difference Model instance is defined in the QuantLib::OneFactorOperator class.<p>
<dl class="user" compact><dt><b>Using Trees</b></dt><dd></dd></dl>
Each model derived from the single-factor model class has the ability to return a trinomial tree. For yield-curve consistent models, the fitting parameter can be determined either analytically (when possible) or numerically. When a tree is built, it is then pretty straightforward to implement a pricer for any path-independant derivative. Just implement a class derived from NumericalDerivative (see QuantLib::NumericalSwaption for example) and roll it back until the present time... Just look at QuantLib::TreeCapFloor and QuantLib::TreeSwaption for working pricers. 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_affine_model.html">AffineModel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Affine model class.  <a href="class_quant_lib_1_1_affine_model.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_term_structure_consistent_model.html">TermStructureConsistentModel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Term-structure consistent model class.  <a href="class_quant_lib_1_1_term_structure_consistent_model.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_short_rate_model.html">ShortRateModel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract short-rate model class.  <a href="class_quant_lib_1_1_short_rate_model.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_one_factor_model.html">OneFactorModel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Single-factor short-rate model abstract class.  <a href="class_quant_lib_1_1_one_factor_model.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_one_factor_affine_model.html">OneFactorAffineModel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Single-factor affine base class.  <a href="class_quant_lib_1_1_one_factor_affine_model.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_black_karasinski.html">BlackKarasinski</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Standard Black-Karasinski model class.  <a href="class_quant_lib_1_1_black_karasinski.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_cox_ingersoll_ross.html">CoxIngersollRoss</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cox-Ingersoll-Ross model class.  <a href="class_quant_lib_1_1_cox_ingersoll_ross.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_extended_cox_ingersoll_ross.html">ExtendedCoxIngersollRoss</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extended Cox-Ingersoll-Ross model class.  <a href="class_quant_lib_1_1_extended_cox_ingersoll_ross.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_hull_white.html">HullWhite</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Single-factor Hull-White (extended Vasicek) model class.  <a href="class_quant_lib_1_1_hull_white.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_vasicek.html">Vasicek</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Vasicek model class  <a href="class_quant_lib_1_1_vasicek.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_two_factor_model.html">TwoFactorModel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract base-class for two-factor models.  <a href="class_quant_lib_1_1_two_factor_model.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_g2.html">G2</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Two-additive-factor gaussian model class.  <a href="class_quant_lib_1_1_g2.html#_details">More...</a><br></td></tr>
</table>

</div>

<div class="footer">

<table align="top" width="100%">
<tr>
<td align="middle" width="33%">
<strong>QuantLib.org</strong><br>
<a href="http://quantlib.org/">
<img src="QL-small.jpg" alt="QuantLib" align="middle" border=0>
</a>
</td>
<td align="middle" width="33%">
<strong>Hosted by</strong><br>
<a href="http://sourceforge.net"><img src=
"sfnetlogo.png" width="88" height="31"
border="0" alt="SourceForge.net Logo"></a>
</td>
<td align="middle" width="33%">
<strong>Documentation generated by</strong><br>
<a href="http://www.doxygen.org">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53>
</a></td>
</tr>
</table>
</div>

</div>

</body>
</html>