Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
indexcdstrancheengine.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2020 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file qle/pricingengines/indexcdstrancheengine.hpp
20 \brief Index CDS tranche pricing engine
21*/
22
23#ifndef quantext_index_cds_tranche_engine_hpp
24#define quantext_index_cds_tranche_engine_hpp
25
26#include <ql/qldefines.hpp>
27
28#ifndef QL_PATCH_SOLARIS
29
30#include <ql/termstructures/yieldtermstructure.hpp>
32
33namespace QuantExt {
34
35/*! Index tranche pricing engine
36
37 The engine obtains the index CDS reference basket from its arguments and it is expecting it to have a default
38 model assigned.
39
40 This engine prices standard index CDS tranches. The mechanics of such tranches is outlined in <em>Markit Credit
41 Indices A Primer, 2014</em> for example available on the Markit website.
42
43 \warning We do not cover the possibility that recovery amounts decrease the tranche notional on which the premium
44 is paid. For tranche detachment points met in practice, it is rare that recovery amounts exceed the
45 notional of the super-senior tranche and thus erode the notional of the other tranches. If we want to
46 cover this possibility we would need to extend the basket loss model algorithms so that they account for
47 losses on a tranche notional due to recovery amounts in addition to the losses due to default. In
48 summary, do not expect this pricing engine to work well for tranches with high detachment points which
49 are likely to be breached by the sum of recovered amounts as the premium leg will be over-estimated in
50 those situations.
51*/
53public:
54 IndexCdsTrancheEngine(const QuantLib::Handle<QuantLib::YieldTermStructure>& discountCurve,
55 boost::optional<bool> includeSettlementDateFlows = boost::none);
56
57 void calculate() const override;
58
59protected:
60 QuantLib::Handle<QuantLib::YieldTermStructure> discountCurve_;
61 boost::optional<bool> includeSettlementDateFlows_;
62};
63
64}
65
66#endif
67
68#endif
boost::optional< bool > includeSettlementDateFlows_
QuantLib::Handle< QuantLib::YieldTermStructure > discountCurve_
Synthetic Collateralized Debt Obligation and pricing engines.