#include <ored/portfolio/trade.hpp>
Public Member Functions | |
| 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 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. | |
| void | resetPricingStats (const std::size_t numberOfPricings=0, const boost::timer::nanosecond_type cumulativePricingTime=0) |
| Reset accumulated timings to given values. | |
Setters | |
| string & | id () |
| Set the trade id. | |
| void | setId (const std::string &id) |
| void | setEnvelope (const Envelope &envelope) |
| Set the envelope with counterparty and portfolio info. | |
| void | setAdditionalData (const std::map< std::string, QuantLib::ext::any > &additionalData) |
| TradeActions & | tradeActions () |
| Set the trade actions. | |
| Public Member Functions inherited from XMLSerializable | |
| void | fromFile (const std::string &filename) |
| void | toFile (const std::string &filename) const |
| void | fromXMLString (const std::string &xml) |
| Parse from XML string. | |
| std::string | toXMLString () const |
| Parse from XML string. | |
| std::string | toXMLStringUnformatted () const |
Inspectors | |
| enum class | LegCashflowInclusion { IfNoEngineCashflows , Never , Always } |
| 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 std::map< size_t, LegCashflowInclusion > & | legCashflowInclusion () 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 & | maturityType () const |
| virtual bool | isExpired (const Date &d) 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, QuantLib::ext::any > & | additionalData () const |
| returns all additional data returned by the trade once built | |
| const std::string & | sensitivityTemplate () const |
| const std::set< std::tuple< std::set< std::string >, std::string, std::string > > & | productModelEngine () const |
Utility | |
| string | tradeType_ |
| QuantLib::ext::shared_ptr< InstrumentWrapper > | instrument_ |
| std::vector< QuantLib::Leg > | legs_ |
| std::vector< string > | legCurrencies_ |
| std::vector< bool > | legPayers_ |
| std::map< std::size_t, LegCashflowInclusion > | legCashflowInclusion_ |
| string | npvCurrency_ |
| QuantLib::Real | notional_ |
| string | notionalCurrency_ |
| Date | maturity_ |
| string | maturityType_ |
| string | issuer_ |
| string | sensitivityTemplate_ |
| bool | sensitivityTemplateSet_ = false |
| std::set< std::tuple< std::set< std::string >, std::string, std::string > > | productModelEngine_ |
| Date | lastRelevantDate_ = Null<Date>() |
| std::size_t | savedNumberOfPricings_ = 0 |
| boost::timer::nanosecond_type | savedCumulativePricingTime_ = 0 |
| RequiredFixings | requiredFixings_ |
| std::map< std::string, QuantLib::ext::any > | additionalData_ |
| 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. | |
| void | addProductModelEngine (const EngineBuilder &builder) |
| void | addProductModelEngine (const std::set< std::tuple< std::set< std::string >, std::string, std::string > > &productModelEngine) |
| void | setSensitivityTemplate (const EngineBuilder &builder) |
| void | setSensitivityTemplate (const std::string &id) |
| virtual std::vector< TradeCashflowReportData > | cashflows (const std::string &baseCurrency, const QuantLib::ext::shared_ptr< ore::data::Market > &market, const std::string &configuration, const bool includePastCashflows) const |
| 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 string &discountCurve, const QuantLib::ext::shared_ptr< EngineFactory > &factory, const string &configuration) |
| void | setLegBasedAdditionalData (const Size legNo, Size resultLegId=Null< Size >()) const |
| void | updateProductModelEngineAdditionalData () |
Trade base class.
Instrument interface to pricing and risk applications Derived classes should
|
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, BondFuture, BondOption, BondRepo, BondTRS, CapFloor, CashPosition, CBO, CommodityDigitalOption, CommodityForward, CommodityOption, CompositeTrade, CreditDefaultSwap, CreditDefaultSwapOption, CreditLinkedSwap, CrossCurrencySwap, DoubleDigitalOption, EquityDigitalOption, EquityDoubleTouchOption, EquityEuropeanBarrierOption, EquityForward, EquityFutureOption, EquityOption, EquityOutperformanceOption, EquitySwap, EquityTouchOption, EuropeanOptionBarrier, ForwardBond, ForwardRateAgreement, FxAverageForward, FxDigitalBarrierOption, FxDigitalOption, FxDoubleTouchOption, FxEuropeanBarrierOption, FxForward, FxKIKOBarrierOption, FxOption, FxSwap, FxTouchOption, GenericBarrierOption, IndexCreditDefaultSwap, IndexCreditDefaultSwapOption, InflationSwap, KnockOutSwap, MultiLegOption, PairwiseVarSwap, PerformanceOption_01, RainbowOption, ScriptedTrade, StrikeResettableOption, Swap, Swaption, SyntheticCDO, TaRF, TRS, VanillaOptionTrade, WindowBarrierOption, and WorstOfBasketSwap.
|
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.
| const RequiredFixings & requiredFixings | ( | ) | const |
Return the full required fixing information
|
virtual |
Reimplemented in Bond, BondFuture, BondOption, BondRepo, BondTRS, CBO, CommodityAveragePriceOption, CommodityDigitalAveragePriceOption, CommodityDigitalOption, CommodityForward, CommodityOption, CommodityOptionStrip, CommoditySpreadOption, CommoditySwaption, ComVarSwap, ConvertibleBond, EqPairwiseVarSwap, EquityDigitalOption, EquityDoubleTouchOption, EquityForward, EquityFutureOption, EquityOption, EquityOptionWithBarrier, EquityTouchOption, EqVarSwap, ForwardBond, ForwardRateAgreement, Swap, and TRS.
|
overridevirtual |
Implements XMLSerializable.
Reimplemented in Bond.
|
overridevirtual |
Implements XMLSerializable.
|
virtual |
Return the current notional in npvCurrency. See individual sub-classes for the precise definition.
Reimplemented in AsianOption, CashPosition, CBO, CommoditySwap, CommoditySwaption, CompositeTrade, CreditDefaultSwap, CreditLinkedSwap, EquitySwap, FxForward, FxSwap, IndexCreditDefaultSwap, IndexCreditDefaultSwapOption, PairwiseVarSwap, ScriptedTrade, Swap, Swaption, TRS, VanillaOptionTrade, and VarSwap.
|
virtual |
returns all additional data returned by the trade once built
Reimplemented in CallableSwap, CapFloor, CommoditySwap, CompositeTrade, CreditDefaultSwap, ForwardRateAgreement, FxAverageForward, IndexCreditDefaultSwap, Swap, and Swaption.
| 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
| const std::set< std::tuple< std::set< std::string >, std::string, std::string > > & productModelEngine | ( | ) | const |
return the product(s),model,engine triplet(s) of the engine builders of this trade, this is only available after build() has been called