Composite Trade class. More...
#include <ored/portfolio/compositetrade.hpp>
Public Types | |
enum class | NotionalCalculation { Sum , Mean , First , Last , Min , Max , Override } |
This enum decalres how the notional of the CompositeTrade should be calculated. More... | |
Public Member Functions | |
CompositeTrade (const Envelope &env=Envelope(), const TradeActions &ta=TradeActions()) | |
Constructor requires a trade factory so that subtrades can be built. | |
CompositeTrade (const string currency, const vector< boost::shared_ptr< Trade >> &trades, const string notionalCalculation="", const Real notionalOverride=0.0, const Envelope &env=Envelope(), const TradeActions &ta=TradeActions()) | |
Fully-specified Constructor. | |
virtual void | build (const boost::shared_ptr< EngineFactory > &) override |
Build QuantLib/QuantExt instrument, link pricing engine. | |
QuantLib::Real | notional () const override |
Return the current notional in npvCurrency. See individual sub-classes for the precise definition. | |
Inspectors | |
const string & | currency () const |
const string & | notionalCalculation () const |
const vector< boost::shared_ptr< Trade > > & | trades () const |
Utility functions | |
Size | size () const |
returns the number of subtrades in the strategy | |
Real | calculateNotional (const vector< Real > &tradeNotionals) const |
calculates the CompositeTrade notional, when supplied with the notionals of the subtrades | |
Serialisation | |
virtual void | fromXML (XMLNode *node) override |
virtual XMLNode * | toXML (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. | |
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 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. | |
void | validate () const |
Utility to validate that everything that needs to be set in this base class is actually set. | |
virtual bool | hasCashflows () const |
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 overrides | |
std::map< std::string, std::set< QuantLib::Date > > | fixings (const QuantLib::Date &settlementDate) const override |
std::map< AssetClass, std::set< std::string > > | underlyingIndices (const boost::shared_ptr< ReferenceDataManager > &referenceDataManager) const override |
const std::map< std::string, boost::any > & | additionalData () const override |
returns all additional data returned by the trade once built | |
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_ |
Composite Trade class.
CompositeTrades are single currency strategies consisting of independent financial instruments but regarded as a single position n the portfolio. Examples include straddles, butterflies, iron condors. The class can also be used to create representations of single contracts which can be replicated by linear combinations of other positions. E.g. Bond
|
strong |
This enum decalres how the notional of the CompositeTrade should be calculated.
|
overridevirtual |
Return the fixings that will be requested in order to price this Trade given the settlementDate
.
If the settlementDate
is not provided, the current evaluation date is taken as the settlement date. If a Trade does not have any fixings, this method will return an empty map. The map key is the ORE name of the index and the map value is the set of fixing dates.
Reimplemented from Trade.