30#include <ql/position.hpp>
45 const std::vector<QuantLib::Position::Type>&
putPositions,
46 const std::vector<QuantLib::Real>&
putStrikes, QuantLib::Real premium = 0.0,
47 const std::string& premiumCurrency =
"",
48 const QuantLib::Date& premiumPayDate = QuantLib::Date(),
const std::string&
style =
"",
51 const std::string&
fxIndex =
"",
56 void build(
const QuantLib::ext::shared_ptr<ore::data::EngineFactory>& engineFactory)
override;
59 std::map<ore::data::AssetClass, std::set<std::string>>
60 underlyingIndices(
const QuantLib::ext::shared_ptr<ReferenceDataManager>& referenceDataManager =
nullptr)
const override;
108 void buildAPOs(
const QuantLib::Leg& leg,
const QuantLib::ext::shared_ptr<ore::data::EngineFactory>& engineFactory);
112 const QuantLib::ext::shared_ptr<ore::data::EngineFactory>& engineFactory);
115 void check(QuantLib::Size numberPeriods)
const;
Serializable obejct holding barrier data.
const std::string & settlement() const
const BarrierData & putBarrierData() const
std::vector< QuantLib::Real > putStrikes_
const BarrierData & callBarrierData() const
const std::vector< QuantLib::Real > & callStrikes() const
ore::data::LegData legData_
virtual void fromXML(ore::data::XMLNode *node) override
CommodityOptionStrip(const ore::data::Envelope &envelope, const ore::data::LegData &legData, const std::vector< QuantLib::Position::Type > &callPositions, const std::vector< QuantLib::Real > &callStrikes, const std::vector< QuantLib::Position::Type > &putPositions, const std::vector< QuantLib::Real > &putStrikes, QuantLib::Real premium=0.0, const std::string &premiumCurrency="", const QuantLib::Date &premiumPayDate=QuantLib::Date(), const std::string &style="", const std::string &settlement="", const BarrierData &callBarrierData={}, const BarrierData &putBarrierData={}, const std::string &fxIndex="", const bool isDigital=false, Real payoffPerUnit=0.0)
void buildAPOs(const QuantLib::Leg &leg, const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory)
Build an average price option strip.
std::map< ore::data::AssetClass, std::set< std::string > > underlyingIndices(const QuantLib::ext::shared_ptr< ReferenceDataManager > &referenceDataManager=nullptr) const override
Add underlying Commodity names.
void build(const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory) override
Implement the build method.
const PremiumData & premiumDate() const
QuantLib::ext::shared_ptr< CommodityFloatingLegData > commLegData_
std::vector< QuantLib::Position::Type > callPositions_
const bool isDigital() const
virtual ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const std::vector< QuantLib::Real > & putStrikes() const
const std::vector< QuantLib::Position::Type > & callPositions() const
std::vector< QuantLib::Position::Type > putPositions_
std::vector< QuantLib::Real > callStrikes_
const Real payoffPerUnit() const
const std::vector< QuantLib::Position::Type > & putPositions() const
const std::string & style() const
void buildStandardOptions(const QuantLib::Leg &leg, const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory)
Build a standard option strip.
bool hasCashflows() const override
const std::string & fxIndex() const
BarrierData callBarrierData_
BarrierData putBarrierData_
const ore::data::LegData & legData() const
Serializable object holding generic trade data, reporting dimensions.
Serializable object holding leg data.
Serializable object holding premium data.
const Envelope & envelope() const
Small XML Document wrapper class.
leg data for commodity leg types
Serializable Credit Default Swap.
trade option data model and serialization
base trade data model and serialization