Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
commoditylegbuilder.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2019 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/commoditylegbuilder.hpp
20 \brief Commodity fixed and floating leg builders
21 \ingroup portfolio
22*/
23
24#pragma once
25
28#include <ql/cashflow.hpp>
29
30namespace ore {
31namespace data {
32
34public:
35 CommodityFixedLegBuilder() : LegBuilder("CommodityFixed") {}
36
37 QuantLib::Leg buildLeg(const ore::data::LegData& data,
38 const QuantLib::ext::shared_ptr<ore::data::EngineFactory>& engineFactory,
39 RequiredFixings& requiredFixings, const std::string& configuration,
40 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
41 const bool useXbsCurves = false) const override;
42};
43
45public:
47 : LegBuilder("CommodityFloating"), allAveraging_(false) {}
48
49 QuantLib::Leg buildLeg(const ore::data::LegData& data,
50 const QuantLib::ext::shared_ptr<ore::data::EngineFactory>& engineFactory,
51 RequiredFixings& requiredFixings, const std::string& configuration,
52 const QuantLib::Date& openEndDateReplacement = Null<Date>(),
53 const bool useXbsCurves = false) const override;
54
55 //! Inspect the \c allAveraging_ flag
56 bool allAveraging() const { return allAveraging_; }
57
58private:
59 /*! A flag that is set if the leg is averaging and the conventions indicate that the commodity contract itself
60 on which the leg is based is averaging. This flag is false in all other circumstances.
61 */
62 mutable bool allAveraging_;
63};
64
65} // namespace data
66} // namespace ore
QuantLib::Leg buildLeg(const ore::data::LegData &data, const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const std::string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
QuantLib::Leg buildLeg(const ore::data::LegData &data, const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory, RequiredFixings &requiredFixings, const std::string &configuration, const QuantLib::Date &openEndDateReplacement=Null< Date >(), const bool useXbsCurves=false) const override
bool allAveraging() const
Inspect the allAveraging_ flag.
Serializable object holding leg data.
Definition: legdata.hpp:844
Currency and instrument specific conventions/defaults.
Pricing Engine Factory.
@ data
Definition: log.hpp:77
Serializable Credit Default Swap.
Definition: namespaces.docs:23