#include <ored/portfolio/commodityoptionstrip.hpp>
Public Member Functions | |
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 | build (const boost::shared_ptr< ore::data::EngineFactory > &engineFactory) override |
Implement the build method. | |
std::map< ore::data::AssetClass, std::set< std::string > > | underlyingIndices (const boost::shared_ptr< ReferenceDataManager > &referenceDataManager=nullptr) const override |
Add underlying Commodity names. | |
Inspectors | |
const ore::data::LegData & | legData () const |
const std::vector< QuantLib::Position::Type > & | callPositions () const |
const std::vector< QuantLib::Real > & | callStrikes () const |
const std::vector< QuantLib::Position::Type > & | putPositions () const |
const std::vector< QuantLib::Real > & | putStrikes () const |
QuantLib::Real | premium () const |
const std::string & | premiumCurrency () const |
const QuantLib::Date & | premiumPayDate () const |
const std::string & | style () const |
const std::string & | settlement () const |
const std::string & | fxIndex () const |
const BarrierData & | callBarrierData () const |
const BarrierData & | putBarrierData () const |
const bool | isDigital () const |
const Real | payoffPerUnit () const |
Serialisation | |
virtual void | fromXML (ore::data::XMLNode *node) override |
virtual ore::data::XMLNode * | toXML (ore::data::XMLDocument &doc) override |
Public Member Functions inherited from Trade | |
Trade () | |
Default constructor. | |
Trade (const string &tradeType, const Envelope &env=Envelope(), const TradeActions &ta=TradeActions()) | |
Base class constructor. | |
virtual | ~Trade () |
Default destructor. | |
virtual void | build (const boost::shared_ptr< EngineFactory > &)=0 |
virtual std::map< std::string, std::set< QuantLib::Date > > | fixings (const QuantLib::Date &settlementDate=QuantLib::Date()) const |
const RequiredFixings & | requiredFixings () const |
void | reset () |
Reset trade, clear all base class data. This does not reset accumulated timings for this trade. | |
void | resetPricingStats (const std::size_t numberOfPricings=0, const boost::timer::nanosecond_type cumulativePricingTime=0) |
Reset accumulated timings to given values. | |
string & | id () |
Set the trade id. | |
Envelope & | envelope () |
Set the envelope with counterparty and portfolio info. | |
TradeActions & | tradeActions () |
Set the trade actions. | |
const string & | id () const |
const string & | tradeType () const |
const Envelope & | envelope () const |
const set< string > & | portfolioIds () const |
const TradeActions & | tradeActions () const |
const boost::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. | |
virtual string | notionalCurrency () const |
const Date & | maturity () const |
const string & | issuer () const |
template<typename T > | |
T | additionalDatum (const std::string &tag) const |
returns any additional datum. | |
virtual const std::map< std::string, boost::any > & | additionalData () const |
returns all additional data returned by the trade once built | |
void | validate () const |
Utility to validate that everything that needs to be set in this base class is actually set. | |
boost::timer::nanosecond_type | getCumulativePricingTime () const |
Get cumulative timing spent on pricing. | |
std::size_t | getNumberOfPricings () const |
Get number of pricings. | |
Public Member Functions inherited from XMLSerializable | |
void | fromFile (const std::string &filename) |
void | toFile (const std::string &filename) |
void | fromXMLString (const std::string &xml) |
Parse from XML string. | |
std::string | toXMLString () |
Parse from XML string. | |
Trade | |
bool | hasCashflows () const override |
Additional Inherited Members | |
Protected Member Functions inherited from Trade | |
Date | addPremiums (std::vector< boost::shared_ptr< Instrument >> &instruments, std::vector< Real > &multipliers, const Real tradeMultiplier, const PremiumData &premiumData, const Real premiumMultiplier, const Currency &tradeCurrency, const boost::shared_ptr< EngineFactory > &factory, const string &configuration) |
void | setLegBasedAdditionalData (const Size legNo, Size resultLegId=Null< Size >()) const |
Protected Attributes inherited from Trade | |
string | tradeType_ |
boost::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_ |
std::size_t | savedNumberOfPricings_ = 0 |
boost::timer::nanosecond_type | savedCumulativePricingTime_ = 0 |
RequiredFixings | requiredFixings_ |
std::map< std::string, boost::any > | additionalData_ |
Serializable Commodity option strip
|
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.