#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 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 |
virtual std::map< AssetClass, std::set< std::string > > | underlyingIndices (const boost::shared_ptr< ReferenceDataManager > &referenceDataManager=nullptr) const |
Serialisation | |
virtual void | fromXML (XMLNode *node) override |
virtual XMLNode * | toXML (XMLDocument &doc) 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. | |
Envelope & | envelope () |
Set the envelope with counterparty and portfolio info. | |
TradeActions & | tradeActions () |
Set the trade actions. | |
Inspectors | |
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 | |
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. | |
Utility | |
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_ |
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. | |
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 |
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 ForwardRateAgreement, CreditLinkedSwap, CommodityOption, CommodityDigitalOption, CreditDefaultSwapOption, WorstOfBasketSwap, WindowBarrierOption, VanillaOptionTrade, TRS, TaRF, Swaption, Swap, ScriptedTrade, RainbowOption, PerformanceOption_01, MultiLegOption, KnockOutSwap, InflationSwap, IndexCreditDefaultSwapOption, IndexCreditDefaultSwap, GenericBarrierOption, FxTouchOption, FxSwap, FxOption, FxKIKOBarrierOption, FxForward, FxEuropeanBarrierOption, FxDoubleTouchOption, FxDigitalOption, FxDigitalBarrierOption, FxAverageForward, ForwardBond, EuropeanOptionBarrier, EquityTouchOption, EquitySwap, EquityOption, EquityFutureOption, EquityForward, EquityEuropeanBarrierOption, EquityDoubleTouchOption, EquityDigitalOption, DoubleDigitalOption, CrossCurrencySwap, CreditDefaultSwap, CompositeTrade, CommodityForward, SyntheticCDO, CBO, CapFloor, BondTRS, BondRepo, BondOption, Bond, BestEntryOption, BasketVarianceSwap, BasketOption, Autocallable_01, AsianOption, and Accumulator.
|
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 |
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 Swaption, CommoditySwaption, CommodityOptionStrip, CommodityOption, CommodityDigitalOption, CommodityDigitalAveragePriceOption, CommodityAveragePriceOption, and CapFloor.