30#include <boost/optional.hpp>
132 "TRS: underlying size (" <<
underlying_.size() <<
") must match underlying derivative id size ("
136 void build(
const QuantLib::ext::shared_ptr<EngineFactory>&)
override;
152 std::map<AssetClass, std::set<std::string>>
153 underlyingIndices(
const QuantLib::ext::shared_ptr<ReferenceDataManager>& referenceDataManager =
nullptr)
const override;
154 QuantLib::Real
notional()
const override;
160 QuantLib::ext::shared_ptr<QuantExt::FxIndex>
161 getFxIndex(
const QuantLib::ext::shared_ptr<Market> market,
const std::string& configuration,
const std::string& domestic,
162 const std::string& foreign, std::map<std::string, QuantLib::ext::shared_ptr<QuantExt::FxIndex>>& fxIndices,
163 std::set<std::string>& missingFxIndexPairs)
const;
165 mutable std::vector<QuantLib::ext::shared_ptr<Trade>>
underlying_;
CFD(const Envelope &env, const std::vector< QuantLib::ext::shared_ptr< Trade > > &underlying, const std::vector< std::string > &underlyingDerivativeId, const ReturnData &returnData, const FundingData &fundingData, const AdditionalCashflowData &additionalCashflowData)
Serializable object holding generic trade data, reporting dimensions.
Serializable object holding leg data.
Serializable schedule data.
AdditionalCashflowData(const LegData &legData)
void fromXML(XMLNode *node) override
XMLNode * toXML(XMLDocument &doc) const override
const LegData & legData() const
FundingData(const std::vector< LegData > &legData, const std::vector< NotionalType > ¬ionalType={}, const Size fundingResetGracePeriod=0)
const std::vector< NotionalType > & notionalType() const
std::vector< LegData > legData_
void fromXML(XMLNode *node) override
std::vector< NotionalType > & notionalType()
XMLNode * toXML(XMLDocument &doc) const override
QuantLib::Size fundingResetGracePeriod_
const std::vector< LegData > & legData() const
std::vector< LegData > & legData()
QuantLib::Size & fundingResetGracePeriod()
std::vector< NotionalType > notionalType_
QuantLib::Size fundingResetGracePeriod() const
boost::optional< bool > payUnderlyingCashFlowsImmediately_
std::string observationConvention_
const std::string & observationConvention() const
std::vector< std::string > fxTerms_
const std::vector< std::string > & paymentDates() const
const std::string & currency() const
const std::vector< std::string > & fxTerms() const
const ScheduleData & scheduleData() const
const std::string & initialPriceCurrency() const
std::vector< std::string > paymentDates_
boost::optional< bool > payUnderlyingCashFlowsImmediately() const
const std::string & observationCalendar() const
void fromXML(XMLNode *node) override
XMLNode * toXML(XMLDocument &doc) const override
const std::string & paymentCalendar() const
std::string initialPriceCurrency_
const std::string & observationLag() const
std::string observationLag_
ScheduleData scheduleData_
std::string paymentCalendar_
const std::string & paymentLag() const
std::string observationCalendar_
const std::string & paymentConvention() const
ReturnData(const bool payer, const std::string ¤cy, const ScheduleData &scheduleData, const std::string &observationLag, const std::string &observationConvention, const std::string &observationCalendar, const std::string &paymentLag, const std::string &paymentConvention, const std::string &paymentCalendar, const std::vector< std::string > &paymentDates, const Real initialPrice, const std::string &initialPriceCurrency, const std::vector< std::string > &fxTerms, const boost::optional< bool > payUnderlyingCashFlowsImmediately)
Real initialPrice() const
std::string paymentConvention_
const std::string & creditRiskCurrency() const
std::map< std::string, SimmCreditQualifierMapping > creditQualifierMapping_
QuantLib::ext::shared_ptr< QuantExt::FxIndex > getFxIndex(const QuantLib::ext::shared_ptr< Market > market, const std::string &configuration, const std::string &domestic, const std::string &foreign, std::map< std::string, QuantLib::ext::shared_ptr< QuantExt::FxIndex > > &fxIndices, std::set< std::string > &missingFxIndexPairs) const
AdditionalCashflowData additionalCashflowData_
const std::vector< QuantLib::ext::shared_ptr< Trade > > & underlying() const
Inspectors.
std::map< AssetClass, std::set< std::string > > underlyingIndices(const QuantLib::ext::shared_ptr< ReferenceDataManager > &referenceDataManager=nullptr) const override
Interface.
std::vector< QuantLib::ext::shared_ptr< Trade > > underlying_
std::vector< std::string > underlyingDerivativeId_
TRS(const Envelope &env, const std::vector< QuantLib::ext::shared_ptr< Trade > > &underlying, const std::vector< std::string > &underlyingDerivativeId, const ReturnData &returnData, const FundingData &fundingData, const AdditionalCashflowData &additionalCashflowData)
QuantLib::Real notional() const override
Return the current notional in npvCurrency. See individual sub-classes for the precise definition.
void fromXML(XMLNode *node) override
XMLNode * toXML(XMLDocument &doc) const override
const AdditionalCashflowData & additionalCashflowData() const
const FundingData & fundingData() const
const ReturnData & returnData() const
const std::map< std::string, SimmCreditQualifierMapping > & creditQualifierMapping() const
void build(const QuantLib::ext::shared_ptr< EngineFactory > &) override
std::string creditRiskCurrency_
Small XML Document wrapper class.
Base class for all serializable classes.
std::ostream & operator<<(std::ostream &out, EquityReturnType t)
TRS::FundingData::NotionalType parseTrsFundingNotionalType(const std::string &s)
Serializable Credit Default Swap.
mapping of SIMM credit qualifiers
base trade data model and serialization