#include <ored/portfolio/trade.hpp>
Public Member Functions | |
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 |
Serialisation | |
virtual void | fromXML (XMLNode *node) override |
virtual XMLNode * | toXML (XMLDocument &doc) const override |
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... | |
Setters | |
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... | |
Inspectors | |
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 |
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... | |
Utility | |
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_ |
string | id_ |
Envelope | envelope_ |
TradeActions | tradeActions_ |
void | validate () const |
Utility to validate that everything that needs to be set in this base class is actually set. More... | |
virtual bool | hasCashflows () const |
boost::timer::nanosecond_type | getCumulativePricingTime () const |
Get cumulative timing spent on pricing. More... | |
std::size_t | getNumberOfPricings () const |
Get number of pricings. More... | |
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) |
Trade base class.
Instrument interface to pricing and risk applications Derived classes should
Trade | ( | const string & | tradeType, |
const Envelope & | env = Envelope() , |
||
const TradeActions & | ta = TradeActions() |
||
) |
Base class constructor.
Definition at line 62 of file trade.hpp.
|
pure virtual |
Build QuantLib/QuantExt instrument, link pricing engine. If build() is called multiple times, reset() should be called between these calls.
Implemented in Accumulator, AsianOption, Autocallable_01, BasketOption, BasketVarianceSwap, BestEntryOption, Bond, BondOption, BondRepo, BondTRS, CapFloor, CBO, SyntheticCDO, CommodityForward, CompositeTrade, CreditDefaultSwap, CrossCurrencySwap, DoubleDigitalOption, EquityDigitalOption, EquityDoubleTouchOption, EquityEuropeanBarrierOption, EquityForward, EquityFutureOption, EquityOption, EquityOutperformanceOption, EquitySwap, EquityTouchOption, EuropeanOptionBarrier, ForwardBond, FxAverageForward, FxDigitalBarrierOption, FxDigitalOption, FxDoubleTouchOption, FxEuropeanBarrierOption, FxForward, FxKIKOBarrierOption, FxOption, FxSwap, FxTouchOption, GenericBarrierOption, IndexCreditDefaultSwap, IndexCreditDefaultSwapOption, InflationSwap, KnockOutSwap, MultiLegOption, PairwiseVarSwap, PerformanceOption_01, RainbowOption, ScriptedTrade, Swap, Swaption, TaRF, TRS, VanillaOptionTrade, WindowBarrierOption, WorstOfBasketSwap, CreditDefaultSwapOption, CommodityDigitalOption, CommodityOption, CreditLinkedSwap, and ForwardRateAgreement.
|
virtual |
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 in CompositeTrade.
Definition at line 85 of file trade.hpp.
const RequiredFixings & requiredFixings | ( | ) | const |
|
virtual |
Reimplemented in CompositeTrade, EquityGenericBarrierOption, Ascot, AsianOption, Bond, BondOption, BondPosition, BondRepo, BondTRS, CBO, CommodityAveragePriceOption, CommodityDigitalAveragePriceOption, CommodityDigitalOption, CommodityForward, CommodityOption, CommodityOptionStrip, CommodityPosition, CommoditySpreadOption, CommoditySwaption, ConvertibleBond, EquityForward, EquityFutureOption, EquityOption, EquityOptionPosition, EquityPosition, ForwardBond, EqPairwiseVarSwap, ScriptedTrade, Swap, Swaption, TRS, EqVarSwap, and ComVarSwap.
Definition at line 93 of file trade.hpp.
|
overridevirtual |
Implements XMLSerializable.
Reimplemented in BalanceGuaranteedSwap, BarrierOption, FxOptionWithBarrier, EquityOptionWithBarrier, CallableSwap, CliquetOption, CommodityAveragePriceOption, CommodityDigitalAveragePriceOption, CommodityOptionStrip, CommoditySwap, CommoditySwaption, FailedTrade, FlexiSwap, IndexCreditDefaultSwapOption, RiskParticipationAgreement, Accumulator, Ascot, AsianOption, Autocallable_01, BasketOption, BasketVarianceSwap, BestEntryOption, Bond, BondOption, BondPosition, BondRepo, BondTRS, CapFloor, CBO, SyntheticCDO, CommodityDigitalOption, CommodityForward, CommodityOption, CommodityPosition, CommoditySpreadOption, CompositeTrade, ConvertibleBond, CreditDefaultSwap, CreditDefaultSwapOption, CreditLinkedSwap, DoubleDigitalOption, EquityDigitalOption, EquityDoubleTouchOption, EquityEuropeanBarrierOption, EquityForward, EquityFutureOption, EquityOption, EquityOptionPosition, EquityOutperformanceOption, EquityPosition, EquityTouchOption, EuropeanOptionBarrier, ForwardBond, ForwardRateAgreement, FxAverageForward, FxDigitalBarrierOption, FxDigitalOption, FxDoubleTouchOption, FxEuropeanBarrierOption, FxForward, FxKIKOBarrierOption, FxOption, FxSwap, FxTouchOption, GenericBarrierOption, IndexCreditDefaultSwap, KnockOutSwap, MultiLegOption, PairwiseVarSwap, PerformanceOption_01, RainbowOption, ScriptedTrade, Swap, Swaption, TaRF, TRS, VarSwap, WindowBarrierOption, and WorstOfBasketSwap.
Definition at line 34 of file trade.cpp.
|
overridevirtual |
Implements XMLSerializable.
Reimplemented in BalanceGuaranteedSwap, BarrierOption, FxOptionWithBarrier, EquityOptionWithBarrier, CallableSwap, CliquetOption, CommodityAveragePriceOption, CommodityDigitalAveragePriceOption, CommodityOptionStrip, CommoditySwap, CommoditySwaption, CreditLinkedSwap, FailedTrade, FlexiSwap, IndexCreditDefaultSwap, IndexCreditDefaultSwapOption, RiskParticipationAgreement, ScriptedTrade, VarSwap, Accumulator, Ascot, AsianOption, Autocallable_01, BasketOption, BasketVarianceSwap, BestEntryOption, Bond, BondOption, BondPosition, BondRepo, BondTRS, CapFloor, CBO, SyntheticCDO, CommodityDigitalOption, CommodityForward, CommodityOption, CommodityPosition, CommoditySpreadOption, CompositeTrade, ConvertibleBond, CreditDefaultSwap, CreditDefaultSwapOption, DoubleDigitalOption, EquityDigitalOption, EquityDoubleTouchOption, EquityEuropeanBarrierOption, EquityForward, EquityFutureOption, EquityOption, EquityOptionPosition, EquityOutperformanceOption, EquityPosition, EquityTouchOption, EuropeanOptionBarrier, ForwardBond, ForwardRateAgreement, FxAverageForward, FxDigitalBarrierOption, FxDigitalOption, FxDoubleTouchOption, FxEuropeanBarrierOption, FxForward, FxKIKOBarrierOption, FxOption, FxSwap, FxTouchOption, GenericBarrierOption, KnockOutSwap, MultiLegOption, PairwiseVarSwap, PerformanceOption_01, RainbowOption, Swap, Swaption, TaRF, TRS, WindowBarrierOption, and WorstOfBasketSwap.
Definition at line 46 of file trade.cpp.
void reset | ( | ) |
Reset trade, clear all base class data. This does not reset accumulated timings for this trade.
Definition at line 130 of file trade.cpp.
void resetPricingStats | ( | const std::size_t | numberOfPricings = 0 , |
const boost::timer::nanosecond_type | cumulativePricingTime = 0 |
||
) |
Reset accumulated timings to given values.
Definition at line 107 of file trade.hpp.
string & id | ( | ) |
void setEnvelope | ( | const Envelope & | envelope | ) |
void setAdditionalData | ( | const std::map< std::string, boost::any > & | additionalData | ) |
Definition at line 126 of file trade.cpp.
TradeActions & tradeActions | ( | ) |
const string & tradeType | ( | ) | const |
const Envelope & envelope | ( | ) | const |
const set< string > & portfolioIds | ( | ) | const |
Definition at line 137 of file trade.hpp.
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 |
Return the current notional in npvCurrency. See individual sub-classes for the precise definition.
Reimplemented in PairwiseVarSwap, AsianOption, CBO, CommodityForward, CommoditySwap, CommoditySwaption, CompositeTrade, CreditDefaultSwap, CreditLinkedSwap, EquitySwap, FxForward, FxSwap, IndexCreditDefaultSwap, IndexCreditDefaultSwapOption, ScriptedTrade, Swap, Swaption, TRS, and VarSwap.
Definition at line 153 of file trade.hpp.
|
virtual |
Reimplemented in AsianOption, CBO, EquitySwap, FxForward, FxSwap, ScriptedTrade, and Swap.
Definition at line 155 of file trade.hpp.
const Date & maturity | ( | ) | const |
|
virtual |
T additionalDatum | ( | const std::string & | tag | ) | const |
returns any additional datum.
Definition at line 242 of file trade.hpp.
|
virtual |
returns all additional data returned by the trade once built
Reimplemented in CallableSwap, CapFloor, CommoditySwap, CompositeTrade, CreditDefaultSwap, FxAverageForward, IndexCreditDefaultSwap, Swap, and Swaption.
Definition at line 151 of file trade.cpp.
const std::string & sensitivityTemplate | ( | ) | const |
returns the sensi template, e.g. "IR_Analytical" for this trade, this is only available after build() has been called
Definition at line 305 of file trade.cpp.
void validate | ( | ) | const |
Utility to validate that everything that needs to be set in this base class is actually set.
Definition at line 104 of file trade.cpp.
|
virtual |
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 in CapFloor, CommodityAveragePriceOption, CommodityDigitalAveragePriceOption, CommodityDigitalOption, CommodityOption, CommodityOptionStrip, CommoditySwaption, and Swaption.
Definition at line 182 of file trade.hpp.
boost::timer::nanosecond_type getCumulativePricingTime | ( | ) | const |
Get cumulative timing spent on pricing.
Definition at line 186 of file trade.hpp.
std::size_t getNumberOfPricings | ( | ) | const |
Get number of pricings.
Definition at line 191 of file trade.hpp.
|
protected |
Definition at line 58 of file trade.cpp.
|
protected |
Definition at line 153 of file trade.cpp.
|
protected |
Definition at line 295 of file trade.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
private |