Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
legbuilders.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2018 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 ored/portfolio/legbuilders.hpp
20 \brief Leg Builders
21 \ingroup portfolio
22*/
23
24#pragma once
25
28
30
31namespace ore {
32namespace data {
33
35public:
37 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
38 RequiredFixings& requiredFixings, const string& configuration,
39 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
40 const bool useXbsCurves = false) const override;
41};
42
44public:
45 ZeroCouponFixedLegBuilder() : LegBuilder("ZeroCouponFixed") {}
46 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
47 RequiredFixings& requiredFixings, const string& configuration,
48 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
49 const bool useXbsCurves = false) const override;
50};
51
53public:
54 FloatingLegBuilder() : LegBuilder("Floating") {}
55 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
56 RequiredFixings& requiredFixings, const string& configuration,
57 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
58 const bool useXbsCurves = false) const override;
59};
60
62public:
63 CashflowLegBuilder() : LegBuilder("Cashflow") {}
64 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
65 RequiredFixings& requiredFixings, const string& configuration,
66 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
67 const bool useXbsCurves = false) const override;
68};
69
70class CPILegBuilder : public LegBuilder {
71public:
73 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
74 RequiredFixings& requiredFixings, const string& configuration,
75 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
76 const bool useXbsCurves = false) const override;
77};
78
79class YYLegBuilder : public LegBuilder {
80public:
82 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
83 RequiredFixings& requiredFixings, const string& configuration,
84 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
85 const bool useXbsCurves = false) const override;
86};
87
88class CMSLegBuilder : public LegBuilder {
89public:
91 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
92 RequiredFixings& requiredFixings, const string& configuration,
93 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
94 const bool useXbsCurves = false) const override;
95};
96
97class CMBLegBuilder : public LegBuilder {
98public:
100 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
101 RequiredFixings& requiredFixings, const string& configuration,
102 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
103 const bool useXbsCurves = false) const override;
104};
105
107public:
108 DigitalCMSLegBuilder() : LegBuilder("DigitalCMS") {}
109 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
110 RequiredFixings& requiredFixings, const string& configuration,
111 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
112 const bool useXbsCurves = false) const override;
113};
114
116public:
117 CMSSpreadLegBuilder() : LegBuilder("CMSSpread") {}
118 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
119 RequiredFixings& requiredFixings, const string& configuration,
120 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
121 const bool useXbsCurves = false) const override;
122};
123
125public:
126 DigitalCMSSpreadLegBuilder() : LegBuilder("DigitalCMSSpread") {}
127 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
128 RequiredFixings& requiredFixings, const string& configuration,
129 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
130 const bool useXbsCurves = false) const override;
131};
132
134public:
136 Leg buildLeg(const LegData& data, const QuantLib::ext::shared_ptr<EngineFactory>& engineFactory,
137 RequiredFixings& requiredFixings, const string& configuration,
138 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
139 const bool useXbsCurves = false) const override;
140};
141
142} // namespace data
143} // namespace ore
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Definition: legbuilders.cpp:33
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Definition: legbuilders.cpp:79
Serializable object holding leg data.
Definition: legdata.hpp:844
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Leg buildLeg(const LegData &data, const QuantLib::ext::shared_ptr< EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
Definition: legbuilders.cpp:70
Pricing Engine Factory.
Logic for calculating required fixing dates on legs.
@ data
Definition: log.hpp:77
Serializable Credit Default Swap.
Definition: namespaces.docs:23