|
3 | 3 | <head> |
4 | 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
5 | 5 | <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
6 | | -<meta name="generator" content="Doxygen 1.14.0"/> |
| 6 | +<meta name="generator" content="Doxygen 1.15.0"/> |
7 | 7 | <meta name="viewport" content="width=device-width, initial-scale=1"/> |
8 | 8 | <title>QuantLib: CVAIRS.cpp</title> |
9 | 9 | <link rel="stylesheet" href="/styles/fonts.css" type="text/css"> |
|
32 | 32 | <tr style="height: 56px;"> |
33 | 33 | <td id="projectalign" style="padding-left: 0.5em;"> |
34 | 34 | <div id="projectname"><a href="https://www.quantlib.org">QuantLib</a>: a free/open-source library for quantitative finance |
35 | | - <div id="projectnumber">Reference manual - version 1.40</div> |
| 35 | + <div id="projectnumber">Reference manual - version 1.41</div> |
36 | 36 | </div> |
37 | 37 | </td> |
38 | 38 | </tr> |
39 | 39 | </tbody> |
40 | 40 | </table> |
41 | 41 | </div> |
42 | 42 | <!-- end header part --> |
43 | | -<!-- Generated by Doxygen 1.14.0 --> |
| 43 | +<!-- Generated by Doxygen 1.15.0 --> |
44 | 44 | <script type="text/javascript"> |
45 | 45 | var searchBox = new SearchBox("searchBox", "search/",'.html'); |
46 | 46 | </script> |
|
150 | 150 | <div class="line"> Size tenorsSwapMkt[] = {5, 10, 15, 20, 25, 30};</div> |
151 | 151 | <div class="line"> </div> |
152 | 152 | <div class="line"> <span class="comment">// rates ignoring counterparty risk:</span></div> |
153 | | -<div class="line"> <a id="_a5" name="_a5"></a><a class="code hl_typedef" href="group__types.html#gaede435af51236692b1107d7639581d39" title="interest rates">Rate</a> ratesSwapmkt[] = {.03249, .04074, .04463, .04675, .04775, .04811};</div> |
| 153 | +<div class="line"> Rate ratesSwapmkt[] = {.03249, .04074, .04463, .04675, .04775, .04811};</div> |
154 | 154 | <div class="line"> </div> |
155 | 155 | <div class="line"> vector<ext::shared_ptr<RateHelper>> swapHelpers;</div> |
156 | 156 | <div class="line"> swapHelpers.reserve(<span class="keyword">sizeof</span>(tenorsSwapMkt)/<span class="keyword">sizeof</span>(Size));</div> |
|
159 | 159 | <div class="line"> makeQuoteHandle(ratesSwapmkt[i]),</div> |
160 | 160 | <div class="line"> tenorsSwapMkt[i] * Years,</div> |
161 | 161 | <div class="line"> <a class="code hl_class" href="class_quant_lib_1_1_t_a_r_g_e_t.html" title="TARGET calendar">TARGET</a>(),</div> |
162 | | -<div class="line"> <a id="_a6" name="_a6"></a><a class="code hl_enumvalue" href="group__datetime.html#gga6d41db8ba0ea90d22df35889df452adaab4fce358383d1822f7596659e00b07f7" title="every third month">Quarterly</a>,</div> |
163 | | -<div class="line"> <a id="_a7" name="_a7"></a><a class="code hl_enumvalue" href="group__datetime.html#ggaff46c5ae9385d20709bedade86edd368a013e092c359f6031cc0563fd413ce707">ModifiedFollowing</a>,</div> |
164 | | -<div class="line"> <a id="_a8" name="_a8"></a><a class="code hl_class" href="class_quant_lib_1_1_actual_actual.html" title="Actual/Actual day count.">ActualActual</a>(ActualActual::ISDA),</div> |
| 162 | +<div class="line"> <a id="_a5" name="_a5"></a><a class="code hl_enumvalue" href="group__datetime.html#gga6d41db8ba0ea90d22df35889df452adaab4fce358383d1822f7596659e00b07f7" title="every third month">Quarterly</a>,</div> |
| 163 | +<div class="line"> <a id="_a6" name="_a6"></a><a class="code hl_enumvalue" href="group__datetime.html#ggaff46c5ae9385d20709bedade86edd368a013e092c359f6031cc0563fd413ce707">ModifiedFollowing</a>,</div> |
| 164 | +<div class="line"> <a id="_a7" name="_a7"></a><a class="code hl_class" href="class_quant_lib_1_1_actual_actual.html" title="Actual/Actual day count.">ActualActual</a>(ActualActual::ISDA),</div> |
165 | 165 | <div class="line"> yieldIndx));</div> |
166 | 166 | <div class="line"> </div> |
167 | 167 | <div class="line"> <span class="keyword">auto</span> swapTS = ext::make_shared<PiecewiseYieldCurve<Discount, LogLinear>>(</div> |
168 | 168 | <div class="line"> 2, <a class="code hl_class" href="class_quant_lib_1_1_t_a_r_g_e_t.html" title="TARGET calendar">TARGET</a>(), swapHelpers, <a class="code hl_class" href="class_quant_lib_1_1_actual_actual.html" title="Actual/Actual day count.">ActualActual</a>(ActualActual::ISDA));</div> |
169 | 169 | <div class="line"> swapTS->enableExtrapolation();</div> |
170 | 170 | <div class="line"> </div> |
171 | 171 | <div class="line"> <span class="keyword">auto</span> riskFreeEngine = ext::make_shared<DiscountingSwapEngine>(</div> |
172 | | -<div class="line"> <a id="_a9" name="_a9"></a><a class="code hl_class" href="class_quant_lib_1_1_handle.html" title="Shared handle to an observable.">Handle<YieldTermStructure></a>(swapTS));</div> |
| 172 | +<div class="line"> <a id="_a8" name="_a8"></a><a class="code hl_class" href="class_quant_lib_1_1_handle.html" title="Shared handle to an observable.">Handle<YieldTermStructure></a>(swapTS));</div> |
173 | 173 | <div class="line"> </div> |
174 | 174 | <div class="line"> std::vector<Handle<DefaultProbabilityTermStructure>></div> |
175 | 175 | <div class="line"> defaultIntensityTS;</div> |
|
193 | 193 | <div class="line"> </div> |
194 | 194 | <div class="line"> <span class="keywordflow">for</span>(Size i=0; i<<span class="keyword">sizeof</span>(defaultTenors)/<span class="keyword">sizeof</span>(Size); i++) {</div> |
195 | 195 | <div class="line"> defaultTSDates.push_back(<a class="code hl_class" href="class_quant_lib_1_1_t_a_r_g_e_t.html" title="TARGET calendar">TARGET</a>().advance(todaysDate, </div> |
196 | | -<div class="line"> <a id="_a10" name="_a10"></a><a class="code hl_class" href="class_quant_lib_1_1_period.html">Period</a>(defaultTenors[i], Months)));</div> |
| 196 | +<div class="line"> <a id="_a9" name="_a9"></a><a class="code hl_class" href="class_quant_lib_1_1_period.html">Period</a>(defaultTenors[i], Months)));</div> |
197 | 197 | <div class="line"> intesitiesVLow.push_back(intensitiesLow[i]);</div> |
198 | 198 | <div class="line"> intesitiesVMedium.push_back(intensitiesMedium[i]);</div> |
199 | 199 | <div class="line"> intesitiesVHigh.push_back(intensitiesHigh[i]);</div> |
200 | 200 | <div class="line"> }</div> |
201 | 201 | <div class="line"> </div> |
202 | 202 | <div class="line"> defaultIntensityTS.emplace_back(</div> |
203 | | -<div class="line"> ext::make_shared<<a id="_a11" name="_a11"></a><a class="code hl_class" href="class_quant_lib_1_1_interpolated_hazard_rate_curve.html" title="DefaultProbabilityTermStructure based on interpolation of hazard rates.">InterpolatedHazardRateCurve<BackwardFlat></a>>(defaultTSDates, intesitiesVLow,</div> |
204 | | -<div class="line"> <a id="_a12" name="_a12"></a><a class="code hl_class" href="class_quant_lib_1_1_actual360.html" title="Actual/360 day count convention.">Actual360</a>(), <a class="code hl_class" href="class_quant_lib_1_1_t_a_r_g_e_t.html" title="TARGET calendar">TARGET</a>()));</div> |
| 203 | +<div class="line"> ext::make_shared<<a id="_a10" name="_a10"></a><a class="code hl_class" href="class_quant_lib_1_1_interpolated_hazard_rate_curve.html" title="DefaultProbabilityTermStructure based on interpolation of hazard rates.">InterpolatedHazardRateCurve<BackwardFlat></a>>(defaultTSDates, intesitiesVLow,</div> |
| 204 | +<div class="line"> <a id="_a11" name="_a11"></a><a class="code hl_class" href="class_quant_lib_1_1_actual360.html" title="Actual/360 day count convention.">Actual360</a>(), <a class="code hl_class" href="class_quant_lib_1_1_t_a_r_g_e_t.html" title="TARGET calendar">TARGET</a>()));</div> |
205 | 205 | <div class="line"> defaultIntensityTS.emplace_back(</div> |
206 | 206 | <div class="line"> ext::make_shared<<a class="code hl_class" href="class_quant_lib_1_1_interpolated_hazard_rate_curve.html" title="DefaultProbabilityTermStructure based on interpolation of hazard rates.">InterpolatedHazardRateCurve<BackwardFlat></a>>(defaultTSDates, intesitiesVMedium,</div> |
207 | 207 | <div class="line"> <a class="code hl_class" href="class_quant_lib_1_1_actual360.html" title="Actual/360 day count convention.">Actual360</a>(), <a class="code hl_class" href="class_quant_lib_1_1_t_a_r_g_e_t.html" title="TARGET calendar">TARGET</a>()));</div> |
208 | 208 | <div class="line"> defaultIntensityTS.emplace_back(</div> |
209 | 209 | <div class="line"> ext::make_shared<<a class="code hl_class" href="class_quant_lib_1_1_interpolated_hazard_rate_curve.html" title="DefaultProbabilityTermStructure based on interpolation of hazard rates.">InterpolatedHazardRateCurve<BackwardFlat></a>>(defaultTSDates, intesitiesVHigh,</div> |
210 | 210 | <div class="line"> <a class="code hl_class" href="class_quant_lib_1_1_actual360.html" title="Actual/360 day count convention.">Actual360</a>(), <a class="code hl_class" href="class_quant_lib_1_1_t_a_r_g_e_t.html" title="TARGET calendar">TARGET</a>()));</div> |
211 | 211 | <div class="line"> </div> |
212 | | -<div class="line"> <a id="_a13" name="_a13"></a><a class="code hl_typedef" href="group__types.html#gaaa95ab7fe66935e3f7535413fad2a7d3" title="volatility">Volatility</a> blackVol = 0.15; </div> |
| 212 | +<div class="line"> Volatility blackVol = 0.15; </div> |
213 | 213 | <div class="line"> <span class="keyword">auto</span> ctptySwapCvaLow = ext::make_shared<CounterpartyAdjSwapEngine>(</div> |
214 | 214 | <div class="line"> <a class="code hl_class" href="class_quant_lib_1_1_handle.html" title="Shared handle to an observable.">Handle<YieldTermStructure></a>(swapTS), </div> |
215 | 215 | <div class="line"> blackVol,</div> |
|
236 | 236 | <div class="line"> <span class="comment">// fixed leg</span></div> |
237 | 237 | <div class="line"> Frequency fixedLegFrequency = <a class="code hl_enumvalue" href="group__datetime.html#gga6d41db8ba0ea90d22df35889df452adaab4fce358383d1822f7596659e00b07f7" title="every third month">Quarterly</a>;</div> |
238 | 238 | <div class="line"> BusinessDayConvention fixedLegConvention = <a class="code hl_enumvalue" href="group__datetime.html#ggaff46c5ae9385d20709bedade86edd368a013e092c359f6031cc0563fd413ce707">ModifiedFollowing</a>;</div> |
239 | | -<div class="line"> <a id="_a14" name="_a14"></a><a class="code hl_class" href="class_quant_lib_1_1_day_counter.html" title="day counter class">DayCounter</a> fixedLegDayCounter = <a class="code hl_class" href="class_quant_lib_1_1_actual_actual.html" title="Actual/Actual day count.">ActualActual</a>(ActualActual::ISDA);</div> |
| 239 | +<div class="line"> <a id="_a12" name="_a12"></a><a class="code hl_class" href="class_quant_lib_1_1_day_counter.html" title="day counter class">DayCounter</a> fixedLegDayCounter = <a class="code hl_class" href="class_quant_lib_1_1_actual_actual.html" title="Actual/Actual day count.">ActualActual</a>(ActualActual::ISDA);</div> |
240 | 240 | <div class="line"> <a class="code hl_class" href="class_quant_lib_1_1_day_counter.html" title="day counter class">DayCounter</a> floatingLegDayCounter = <a class="code hl_class" href="class_quant_lib_1_1_actual_actual.html" title="Actual/Actual day count.">ActualActual</a>(ActualActual::ISDA);</div> |
241 | 241 | <div class="line"> </div> |
242 | | -<div class="line"> <a id="_a15" name="_a15"></a><a class="code hl_enumeration" href="class_quant_lib_1_1_swap.html#a1d1cfd8ffb84e947f82999c682b666a7">Swap::Type</a> swapType = Swap::Payer;</div> |
| 242 | +<div class="line"> <a id="_a13" name="_a13"></a><a class="code hl_enumeration" href="class_quant_lib_1_1_swap.html#a1d1cfd8ffb84e947f82999c682b666a7">Swap::Type</a> swapType = Swap::Payer;</div> |
243 | 243 | <div class="line"> <span class="keyword">auto</span> yieldIndxS = ext::make_shared<Euribor3M>(<a class="code hl_class" href="class_quant_lib_1_1_handle.html" title="Shared handle to an observable.">Handle<YieldTermStructure></a>(swapTS));</div> |
244 | 244 | <div class="line"> std::vector<VanillaSwap> riskySwaps;</div> |
245 | 245 | <div class="line"> riskySwaps.reserve(<span class="keyword">sizeof</span>(tenorsSwapMkt)/<span class="keyword">sizeof</span>(Size));</div> |
246 | 246 | <div class="line"> <span class="keywordflow">for</span>(Size i=0; i<<span class="keyword">sizeof</span>(tenorsSwapMkt)/<span class="keyword">sizeof</span>(Size); i++) </div> |
247 | | -<div class="line"> riskySwaps.push_back(<a id="_a16" name="_a16"></a><a class="code hl_class" href="class_quant_lib_1_1_make_vanilla_swap.html" title="helper class">MakeVanillaSwap</a>(tenorsSwapMkt[i]*Years,</div> |
| 247 | +<div class="line"> riskySwaps.push_back(<a id="_a14" name="_a14"></a><a class="code hl_class" href="class_quant_lib_1_1_make_vanilla_swap.html" title="helper class">MakeVanillaSwap</a>(tenorsSwapMkt[i]*Years,</div> |
248 | 248 | <div class="line"> yieldIndxS,</div> |
249 | 249 | <div class="line"> ratesSwapmkt[i], </div> |
250 | 250 | <div class="line"> 0*Days)</div> |
|
271 | 271 | <div class="line"> cout << tenorsSwapMkt[i];</div> |
272 | 272 | <div class="line"> cout << setw(5);</div> |
273 | 273 | <div class="line"> </div> |
274 | | -<div class="line"> cout << <span class="stringliteral">" | "</span> << <a id="_a17" name="_a17"></a><a class="code hl_function" href="group__manips.html#gac63ea3dad10259db3764c7d15a61cde5" title="output rates and spreads as percentages">io::rate</a>(nonRiskyFair);</div> |
| 274 | +<div class="line"> cout << <span class="stringliteral">" | "</span> << <a id="_a15" name="_a15"></a><a class="code hl_function" href="group__manips.html#gac63ea3dad10259db3764c7d15a61cde5" title="output rates and spreads as percentages">io::rate</a>(nonRiskyFair);</div> |
275 | 275 | <div class="line"> cout << fixed << setprecision(2);</div> |
276 | 276 | <div class="line"> cout << setw(5);</div> |
277 | 277 | <div class="line"> <span class="comment">// Low Risk:</span></div> |
|
311 | 311 | <!-- start footer part --> |
312 | 312 | <hr class="footer"/><address class="footer"><small> |
313 | 313 | Generated by <a href="http://www.doxygen.org/index.html">Doxygen</a> |
314 | | -1.14.0 |
| 314 | +1.15.0 |
315 | 315 | </small></address> |
316 | 316 | </body> |
317 | 317 | </html> |
0 commit comments