#include <ored/portfolio/commodityapo.hpp>
Public Member Functions | |
CommodityAveragePriceOption () | |
CommodityAveragePriceOption (const ore::data::Envelope &envelope, const ore::data::OptionData &optionData, QuantLib::Real quantity, QuantLib::Real strike, const std::string ¤cy, const std::string &name, CommodityPriceType priceType, const std::string &startDate, const std::string &endDate, const std::string &paymentCalendar, const std::string &paymentLag, const std::string &paymentConvention, const std::string &pricingCalendar, const std::string &paymentDate="", QuantLib::Real gearing=1.0, QuantLib::Spread spread=0.0, QuantExt::CommodityQuantityFrequency commodityQuantityFrequency=QuantExt::CommodityQuantityFrequency::PerCalculationPeriod, CommodityPayRelativeTo commodityPayRelativeTo=CommodityPayRelativeTo::CalculationPeriodEndDate, QuantLib::Natural futureMonthOffset=0, QuantLib::Natural deliveryRollDays=0, bool includePeriodEnd=true, const BarrierData &barrierData={}, const std::string &fxIndex="") | |
void | build (const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory) override |
std::map< AssetClass, std::set< std::string > > | underlyingIndices (const QuantLib::ext::shared_ptr< ReferenceDataManager > &referenceDataManager=nullptr) const override |
Add underlying Commodity names. More... | |
Inspectors | |
const ore::data::OptionData & | optionData () |
const ore::data::BarrierData & | barrierData () |
QuantLib::Real | quantity () const |
QuantLib::Real | strike () const |
const std::string & | currency () const |
const std::string & | name () const |
CommodityPriceType | priceType () const |
const std::string & | startDate () const |
const std::string & | endDate () const |
const std::string & | paymentCalendar () const |
const std::string & | paymentLag () const |
const std::string & | paymentConvention () const |
const std::string & | pricingCalendar () const |
const std::string & | paymentDate () const |
QuantLib::Real | gearing () const |
QuantLib::Spread | spread () const |
QuantExt::CommodityQuantityFrequency | commodityQuantityFrequency () const |
CommodityPayRelativeTo | commodityPayRelativeTo () const |
QuantLib::Natural | futureMonthOffset () const |
QuantLib::Natural | deliveryRollDays () const |
bool | includePeriodEnd () const |
const std::string & | fxIndex () const |
Serialisation | |
virtual void | fromXML (ore::data::XMLNode *node) override |
virtual ore::data::XMLNode * | toXML (ore::data::XMLDocument &doc) const override |
Public Member Functions inherited from Trade | |
Trade () | |
Default constructor. More... | |
Trade (const string &tradeType, const Envelope &env=Envelope(), const TradeActions &ta=TradeActions()) | |
Base class constructor. More... | |
virtual | ~Trade () |
Default destructor. More... | |
virtual void | build (const QuantLib::ext::shared_ptr< EngineFactory > &)=0 |
virtual std::map< std::string, RequiredFixings::FixingDates > | fixings (const QuantLib::Date &settlementDate=QuantLib::Date()) const |
const RequiredFixings & | requiredFixings () const |
virtual std::map< AssetClass, std::set< std::string > > | underlyingIndices (const QuantLib::ext::shared_ptr< ReferenceDataManager > &referenceDataManager=nullptr) const |
void | reset () |
Reset trade, clear all base class data. This does not reset accumulated timings for this trade. More... | |
void | resetPricingStats (const std::size_t numberOfPricings=0, const boost::timer::nanosecond_type cumulativePricingTime=0) |
Reset accumulated timings to given values. More... | |
string & | id () |
Set the trade id. More... | |
void | setEnvelope (const Envelope &envelope) |
Set the envelope with counterparty and portfolio info. More... | |
void | setAdditionalData (const std::map< std::string, boost::any > &additionalData) |
TradeActions & | tradeActions () |
Set the trade actions. More... | |
const string & | id () const |
const string & | tradeType () const |
const Envelope & | envelope () const |
const set< string > & | portfolioIds () const |
const TradeActions & | tradeActions () const |
const QuantLib::ext::shared_ptr< InstrumentWrapper > & | instrument () const |
const std::vector< QuantLib::Leg > & | legs () const |
const std::vector< string > & | legCurrencies () const |
const std::vector< bool > & | legPayers () const |
const string & | npvCurrency () const |
virtual QuantLib::Real | notional () const |
Return the current notional in npvCurrency. See individual sub-classes for the precise definition. More... | |
virtual string | notionalCurrency () const |
const Date & | maturity () const |
virtual bool | isExpired (const Date &d) |
const string & | issuer () const |
template<typename T > | |
T | additionalDatum (const std::string &tag) const |
returns any additional datum. More... | |
virtual const std::map< std::string, boost::any > & | additionalData () const |
returns all additional data returned by the trade once built More... | |
const std::string & | sensitivityTemplate () const |
void | validate () const |
Utility to validate that everything that needs to be set in this base class is actually set. More... | |
boost::timer::nanosecond_type | getCumulativePricingTime () const |
Get cumulative timing spent on pricing. More... | |
std::size_t | getNumberOfPricings () const |
Get number of pricings. More... | |
Public Member Functions inherited from XMLSerializable | |
virtual | ~XMLSerializable () |
virtual void | fromXML (XMLNode *node)=0 |
virtual XMLNode * | toXML (XMLDocument &doc) const =0 |
void | fromFile (const std::string &filename) |
void | toFile (const std::string &filename) const |
void | fromXMLString (const std::string &xml) |
Parse from XML string. More... | |
std::string | toXMLString () const |
Parse from XML string. More... | |
Trade | |
ore::data::OptionData | optionData_ |
ore::data::BarrierData | barrierData_ |
QuantLib::Real | quantity_ |
QuantLib::Real | strike_ |
std::string | currency_ |
std::string | name_ |
CommodityPriceType | priceType_ |
std::string | startDate_ |
std::string | endDate_ |
std::string | paymentCalendar_ |
std::string | paymentLag_ |
std::string | paymentConvention_ |
std::string | pricingCalendar_ |
std::string | paymentDate_ |
QuantLib::Real | gearing_ |
QuantLib::Spread | spread_ |
QuantExt::CommodityQuantityFrequency | commodityQuantityFrequency_ |
CommodityPayRelativeTo | commodityPayRelativeTo_ |
QuantLib::Natural | futureMonthOffset_ |
QuantLib::Natural | deliveryRollDays_ |
bool | includePeriodEnd_ |
std::string | fxIndex_ |
bool | allAveraging_ |
bool | hasCashflows () const override |
QuantLib::Leg | buildLeg (const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory, const std::string &configuration) |
void | buildStandardOption (const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory, const QuantLib::Leg &leg, QuantLib::Date exerciseDate) |
Build a standard option. More... | |
void | buildApo (const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &engineFactory, const QuantLib::Leg &leg, QuantLib::Date exerciseDate, const QuantLib::ext::shared_ptr< ore::data::EngineBuilder > &builder) |
Build an average price option. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Trade | |
Date | addPremiums (std::vector< QuantLib::ext::shared_ptr< Instrument > > &instruments, std::vector< Real > &multipliers, const Real tradeMultiplier, const PremiumData &premiumData, const Real premiumMultiplier, const Currency &tradeCurrency, const QuantLib::ext::shared_ptr< EngineFactory > &factory, const string &configuration) |
void | setLegBasedAdditionalData (const Size legNo, Size resultLegId=Null< Size >()) const |
void | setSensitivityTemplate (const EngineBuilder &builder) |
void | setSensitivityTemplate (const std::string &id) |
Protected Attributes inherited from Trade | |
string | tradeType_ |
QuantLib::ext::shared_ptr< InstrumentWrapper > | instrument_ |
std::vector< QuantLib::Leg > | legs_ |
std::vector< string > | legCurrencies_ |
std::vector< bool > | legPayers_ |
string | npvCurrency_ |
QuantLib::Real | notional_ |
string | notionalCurrency_ |
Date | maturity_ |
string | issuer_ |
string | sensitivityTemplate_ |
bool | sensitivityTemplateSet_ = false |
std::size_t | savedNumberOfPricings_ = 0 |
boost::timer::nanosecond_type | savedCumulativePricingTime_ = 0 |
RequiredFixings | requiredFixings_ |
std::map< std::string, boost::any > | additionalData_ |
Serializable Commodity Average Price Option
Definition at line 40 of file commodityapo.hpp.
Definition at line 42 of file commodityapo.hpp.
CommodityAveragePriceOption | ( | const ore::data::Envelope & | envelope, |
const ore::data::OptionData & | optionData, | ||
QuantLib::Real | quantity, | ||
QuantLib::Real | strike, | ||
const std::string & | currency, | ||
const std::string & | name, | ||
CommodityPriceType | priceType, | ||
const std::string & | startDate, | ||
const std::string & | endDate, | ||
const std::string & | paymentCalendar, | ||
const std::string & | paymentLag, | ||
const std::string & | paymentConvention, | ||
const std::string & | pricingCalendar, | ||
const std::string & | paymentDate = "" , |
||
QuantLib::Real | gearing = 1.0 , |
||
QuantLib::Spread | spread = 0.0 , |
||
QuantExt::CommodityQuantityFrequency | commodityQuantityFrequency = QuantExt::CommodityQuantityFrequency::PerCalculationPeriod , |
||
CommodityPayRelativeTo | commodityPayRelativeTo = CommodityPayRelativeTo::CalculationPeriodEndDate , |
||
QuantLib::Natural | futureMonthOffset = 0 , |
||
QuantLib::Natural | deliveryRollDays = 0 , |
||
bool | includePeriodEnd = true , |
||
const BarrierData & | barrierData = {} , |
||
const std::string & | fxIndex = "" |
||
) |
|
override |
Definition at line 63 of file commodityapo.cpp.
|
overridevirtual |
Add underlying Commodity names.
Reimplemented from Trade.
Definition at line 119 of file commodityapo.cpp.
const ore::data::OptionData & optionData | ( | ) |
Definition at line 64 of file commodityapo.hpp.
const ore::data::BarrierData & barrierData | ( | ) |
Definition at line 65 of file commodityapo.hpp.
QuantLib::Real quantity | ( | ) | const |
Definition at line 66 of file commodityapo.hpp.
QuantLib::Real strike | ( | ) | const |
Definition at line 67 of file commodityapo.hpp.
const std::string & currency | ( | ) | const |
Definition at line 68 of file commodityapo.hpp.
const std::string & name | ( | ) | const |
Definition at line 69 of file commodityapo.hpp.
CommodityPriceType priceType | ( | ) | const |
Definition at line 70 of file commodityapo.hpp.
const std::string & startDate | ( | ) | const |
Definition at line 71 of file commodityapo.hpp.
const std::string & endDate | ( | ) | const |
Definition at line 72 of file commodityapo.hpp.
const std::string & paymentCalendar | ( | ) | const |
Definition at line 73 of file commodityapo.hpp.
const std::string & paymentLag | ( | ) | const |
Definition at line 74 of file commodityapo.hpp.
const std::string & paymentConvention | ( | ) | const |
Definition at line 75 of file commodityapo.hpp.
const std::string & pricingCalendar | ( | ) | const |
Definition at line 76 of file commodityapo.hpp.
const std::string & paymentDate | ( | ) | const |
Definition at line 77 of file commodityapo.hpp.
QuantLib::Real gearing | ( | ) | const |
Definition at line 78 of file commodityapo.hpp.
QuantLib::Spread spread | ( | ) | const |
Definition at line 79 of file commodityapo.hpp.
QuantExt::CommodityQuantityFrequency commodityQuantityFrequency | ( | ) | const |
Definition at line 80 of file commodityapo.hpp.
CommodityPayRelativeTo commodityPayRelativeTo | ( | ) | const |
Definition at line 81 of file commodityapo.hpp.
QuantLib::Natural futureMonthOffset | ( | ) | const |
Definition at line 82 of file commodityapo.hpp.
QuantLib::Natural deliveryRollDays | ( | ) | const |
Definition at line 83 of file commodityapo.hpp.
bool includePeriodEnd | ( | ) | const |
Definition at line 84 of file commodityapo.hpp.
const std::string & fxIndex | ( | ) | const |
Definition at line 85 of file commodityapo.hpp.
|
overridevirtual |
Reimplemented from Trade.
Definition at line 124 of file commodityapo.cpp.
|
overridevirtual |
Reimplemented from Trade.
Definition at line 179 of file commodityapo.cpp.
|
overridevirtual |
Utility method indicating if the trade has cashflows for the cashflow report. The default implementation returns true
so that a trade is automatically considered when cashflows are being written. To prevent a trade from being asked for its cashflows, the method can be overridden to return false
.
Reimplemented from Trade.
Definition at line 96 of file commodityapo.hpp.
|
private |
Build a commodity floating leg to extract the single commodity averaging flow
Definition at line 215 of file commodityapo.cpp.
|
private |
Build a standard option.
Definition at line 255 of file commodityapo.cpp.
|
private |
Build an average price option.
Definition at line 307 of file commodityapo.cpp.
|
private |
Definition at line 100 of file commodityapo.hpp.
|
private |
Definition at line 101 of file commodityapo.hpp.
|
private |
Definition at line 102 of file commodityapo.hpp.
|
private |
Definition at line 103 of file commodityapo.hpp.
|
private |
Definition at line 104 of file commodityapo.hpp.
|
private |
Definition at line 105 of file commodityapo.hpp.
|
private |
Definition at line 106 of file commodityapo.hpp.
|
private |
Definition at line 107 of file commodityapo.hpp.
|
private |
Definition at line 108 of file commodityapo.hpp.
|
private |
Definition at line 109 of file commodityapo.hpp.
|
private |
Definition at line 110 of file commodityapo.hpp.
|
private |
Definition at line 111 of file commodityapo.hpp.
|
private |
Definition at line 112 of file commodityapo.hpp.
|
private |
Definition at line 113 of file commodityapo.hpp.
|
private |
Definition at line 114 of file commodityapo.hpp.
|
private |
Definition at line 115 of file commodityapo.hpp.
|
private |
Definition at line 116 of file commodityapo.hpp.
|
private |
Definition at line 117 of file commodityapo.hpp.
|
private |
Definition at line 118 of file commodityapo.hpp.
|
private |
Definition at line 119 of file commodityapo.hpp.
|
private |
Definition at line 120 of file commodityapo.hpp.
|
private |
Definition at line 121 of file commodityapo.hpp.
|
private |
Flag indicating if the commodity contract itself is averaging. This is used to decide if we build a standard non-averaging commodity option or an averaging commodity option.
Definition at line 126 of file commodityapo.hpp.