File: class_quant_lib_1_1_multiplicative_price_seasonality.html

package info (click to toggle)
quantlib-refman-html 1.20-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 103,140 kB
  • sloc: javascript: 13,408; makefile: 35
file content (196 lines) | stat: -rw-r--r-- 17,611 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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>QuantLib: MultiplicativePriceSeasonality Class Reference</title>
<link href='https://fonts.googleapis.com/css?family=Merriweather+Sans:800' rel='stylesheet' type='text/css'>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="quantlibextra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://quantlib.org">
       <img alt="QuantLib" src="QL-title.jpg"></a>
   <div id="projectbrief">A free/open-source library for quantitative finance</div>
   <div id="projectnumber">Reference manual - version 1.20</div>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespace_quant_lib.html">QuantLib</a></li><li class="navelem"><a class="el" href="class_quant_lib_1_1_multiplicative_price_seasonality.html">MultiplicativePriceSeasonality</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_quant_lib_1_1_multiplicative_price_seasonality-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">MultiplicativePriceSeasonality Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Multiplicative seasonality in the price index (CPI/RPI/HICP/etc).  
 <a href="class_quant_lib_1_1_multiplicative_price_seasonality.html#details">More...</a></p>

<p><code>#include &lt;ql/termstructures/inflation/seasonality.hpp&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for MultiplicativePriceSeasonality:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_quant_lib_1_1_multiplicative_price_seasonality__inherit__graph.png" border="0" usemap="#a_multiplicative_price_seasonality_inherit__map" alt="Inheritance graph"/></div>
<map name="_multiplicative_price_seasonality_inherit__map" id="a_multiplicative_price_seasonality_inherit__map">
<area shape="rect" title="Multiplicative seasonality in the price index (CPI/RPI/HICP/etc)." alt="" coords="5,80,201,107"/>
<area shape="rect" href="class_quant_lib_1_1_seasonality.html" title="A transformation of an existing inflation swap rate." alt="" coords="58,5,149,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a05d48bde281c2896ef9194bafbe22c03"><td class="memItemLeft" align="right" valign="top"><a id="a05d48bde281c2896ef9194bafbe22c03"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>MultiplicativePriceSeasonality</b> (const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &amp;<a class="el" href="class_quant_lib_1_1_multiplicative_price_seasonality.html#a156d69d7cdb0b71815a384efbf4b01e0">seasonalityBaseDate</a>, <a class="el" href="group__datetime.html#ga6d41db8ba0ea90d22df35889df452ada">Frequency</a> frequency, const std::vector&lt; <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a> &gt; &amp;seasonalityFactors)</td></tr>
<tr class="separator:a05d48bde281c2896ef9194bafbe22c03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9d89cb0bb4475fd8e07d3fe2eaf653a"><td class="memItemLeft" align="right" valign="top"><a id="ab9d89cb0bb4475fd8e07d3fe2eaf653a"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &amp;<a class="el" href="class_quant_lib_1_1_multiplicative_price_seasonality.html#a156d69d7cdb0b71815a384efbf4b01e0">seasonalityBaseDate</a>, <a class="el" href="group__datetime.html#ga6d41db8ba0ea90d22df35889df452ada">Frequency</a> frequency, const std::vector&lt; <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a> &gt; &amp;seasonalityFactors)</td></tr>
<tr class="separator:ab9d89cb0bb4475fd8e07d3fe2eaf653a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a156d69d7cdb0b71815a384efbf4b01e0"><td class="memItemLeft" align="right" valign="top"><a id="a156d69d7cdb0b71815a384efbf4b01e0"></a>
virtual <a class="el" href="class_quant_lib_1_1_date.html">Date</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_multiplicative_price_seasonality.html#a156d69d7cdb0b71815a384efbf4b01e0">seasonalityBaseDate</a> () const</td></tr>
<tr class="memdesc:a156d69d7cdb0b71815a384efbf4b01e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">inspectors <br /></td></tr>
<tr class="separator:a156d69d7cdb0b71815a384efbf4b01e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f519cb95da5e7f9e508b3518f1b1d43"><td class="memItemLeft" align="right" valign="top"><a id="a8f519cb95da5e7f9e508b3518f1b1d43"></a>
virtual <a class="el" href="group__datetime.html#ga6d41db8ba0ea90d22df35889df452ada">Frequency</a>&#160;</td><td class="memItemRight" valign="bottom"><b>frequency</b> () const</td></tr>
<tr class="separator:a8f519cb95da5e7f9e508b3518f1b1d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a465bd129087e385ad4f9b12989694bcd"><td class="memItemLeft" align="right" valign="top"><a id="a465bd129087e385ad4f9b12989694bcd"></a>
virtual std::vector&lt; <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>seasonalityFactors</b> () const</td></tr>
<tr class="separator:a465bd129087e385ad4f9b12989694bcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9c865560eb6351556c548f336bfe08c"><td class="memItemLeft" align="right" valign="top"><a id="ab9c865560eb6351556c548f336bfe08c"></a>
virtual <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_multiplicative_price_seasonality.html#ab9c865560eb6351556c548f336bfe08c">seasonalityFactor</a> (const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &amp;d) const</td></tr>
<tr class="memdesc:ab9c865560eb6351556c548f336bfe08c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The factor returned is NOT normalized relative to ANYTHING. <br /></td></tr>
<tr class="separator:ab9c865560eb6351556c548f336bfe08c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_quant_lib_1_1_seasonality"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_quant_lib_1_1_seasonality')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_quant_lib_1_1_seasonality.html">Seasonality</a></td></tr>
<tr class="memitem:a047e624db01a253658360c259176e7bf inherit pub_methods_class_quant_lib_1_1_seasonality"><td class="memItemLeft" align="right" valign="top"><a id="a047e624db01a253658360c259176e7bf"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><b>~Seasonality</b> ()</td></tr>
<tr class="separator:a047e624db01a253658360c259176e7bf inherit pub_methods_class_quant_lib_1_1_seasonality"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Seasonality interface</h2></td></tr>
<tr class="memitem:a5bc68a6105219147dbb32e25fc30ec70"><td class="memItemLeft" align="right" valign="top"><a id="a5bc68a6105219147dbb32e25fc30ec70"></a>
virtual <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a>&#160;</td><td class="memItemRight" valign="bottom"><b>correctZeroRate</b> (const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &amp;d, <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a> r, const <a class="el" href="class_quant_lib_1_1_inflation_term_structure.html">InflationTermStructure</a> &amp;iTS) const</td></tr>
<tr class="separator:a5bc68a6105219147dbb32e25fc30ec70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab392693c6ab2ee5b3e198d1ab49df894"><td class="memItemLeft" align="right" valign="top"><a id="ab392693c6ab2ee5b3e198d1ab49df894"></a>
virtual <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a>&#160;</td><td class="memItemRight" valign="bottom"><b>correctYoYRate</b> (const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &amp;d, <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a> r, const <a class="el" href="class_quant_lib_1_1_inflation_term_structure.html">InflationTermStructure</a> &amp;iTS) const</td></tr>
<tr class="separator:ab392693c6ab2ee5b3e198d1ab49df894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32d31854a0596d482c100c6c63448213"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_quant_lib_1_1_multiplicative_price_seasonality.html#a32d31854a0596d482c100c6c63448213">isConsistent</a> (const <a class="el" href="class_quant_lib_1_1_inflation_term_structure.html">InflationTermStructure</a> &amp;iTS) const</td></tr>
<tr class="separator:a32d31854a0596d482c100c6c63448213"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b4e0a5a27ef7c1fcc907dc4ce7f37a0"><td class="memItemLeft" align="right" valign="top"><a id="a4b4e0a5a27ef7c1fcc907dc4ce7f37a0"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><b>~MultiplicativePriceSeasonality</b> ()</td></tr>
<tr class="separator:a4b4e0a5a27ef7c1fcc907dc4ce7f37a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a599b3847ecb8510586c516d2110c0501"><td class="memItemLeft" align="right" valign="top"><a id="a599b3847ecb8510586c516d2110c0501"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>validate</b> () const</td></tr>
<tr class="separator:a599b3847ecb8510586c516d2110c0501"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af621352447a2bbc838985080aac99bd5"><td class="memItemLeft" align="right" valign="top"><a id="af621352447a2bbc838985080aac99bd5"></a>
virtual <a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a>&#160;</td><td class="memItemRight" valign="bottom"><b>seasonalityCorrection</b> (<a class="el" href="group__types.html#gaede435af51236692b1107d7639581d39">Rate</a> r, const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &amp;d, const <a class="el" href="class_quant_lib_1_1_day_counter.html">DayCounter</a> &amp;dc, const <a class="el" href="class_quant_lib_1_1_date.html">Date</a> &amp;curveBaseDate, bool isZeroRate) const</td></tr>
<tr class="separator:af621352447a2bbc838985080aac99bd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Multiplicative seasonality in the price index (CPI/RPI/HICP/etc). </p>
<p>Stationary multiplicative seasonality in CPI/RPI/HICP (i.e. in price) implies that zero inflation swap rates are affected, but that year-on-year inflation swap rates show no effect. Of course, if the seasonality in CPI/RPI/HICP is non-stationary then both swap rates will be affected.</p>
<p>Factors must be in multiples of the minimum required for one year, e.g. 12 for monthly, and these factors are reused for as long as is required, i.e. they wrap around. So, for example, if 24 factors are given this repeats every two years. True stationary seasonality can be obtained by giving the same number of factors as the frequency dictates e.g. 12 for monthly seasonality.</p>
<dl class="caveats"><dt><b><a class="el" href="caveats.html#_caveats000161">Warning:</a></b></dt><dd>Multi-year seasonality (i.e. non-stationary) is fragile: the user <b>must</b> ensure that corrections at whole years before and after the inflation term structure base date are the same. Otherwise there can be an inconsistency with quoted rates. This is enforced if the frequency is lower than daily. This is not enforced for daily seasonality because this will always be inconsistent due to weekends, holidays, leap years, etc. If you use multi-year daily seasonality it is up to you to check.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Factors are normalized relative to their appropriate reference dates. For zero inflation this is the inflation curve true base date: since you have a fixing for that date the seasonality factor must be one. For YoY inflation the reference is always one year earlier.</dd></dl>
<p><a class="el" href="class_quant_lib_1_1_seasonality.html" title="A transformation of an existing inflation swap rate.">Seasonality</a> is treated as piecewise constant, hence it works correctly with uninterpolated indices if the seasonality correction factor frequency is the same as the index frequency (or less). </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a32d31854a0596d482c100c6c63448213"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32d31854a0596d482c100c6c63448213">&#9670;&nbsp;</a></span>isConsistent()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool isConsistent </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_quant_lib_1_1_inflation_term_structure.html">InflationTermStructure</a> &amp;&#160;</td>
          <td class="paramname"><em>iTS</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>It is possible for multi-year seasonalities to be inconsistent with the inflation term structure they are given to. This method enables testing - but programmers are not required to implement it. E.g. for price seasonality the corrections at whole years after the inflation curve base date should be the same or else there can be an inconsistency with quoted instruments. Alternatively, the seasonality can be set <em>before</em> the inflation curve is bootstrapped. </p>

<p>Reimplemented from <a class="el" href="class_quant_lib_1_1_seasonality.html#a32d31854a0596d482c100c6c63448213">Seasonality</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.9.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html">Doxygen</a>
1.8.20
</small></address>
</body>
</html>