#include <ored/portfolio/fxswap.hpp>
Public Member Functions | |
FxSwap () | |
Default constructor. More... | |
FxSwap (const Envelope &env, const string &nearDate, const string &farDate, const string &nearBoughtCurrency, double nearBoughtAmount, const string &nearSoldCurrency, double nearSoldAmount, double farBoughtAmount, double farSoldAmount, const string &settlement="Physical") | |
Constructor. More... | |
void | build (const QuantLib::ext::shared_ptr< EngineFactory > &) override |
Build QuantLib/QuantExt instrument, link pricing engine. More... | |
QuantLib::Real | notional () const override |
Return the current notional in npvCurrency. See individual sub-classes for the precise definition. More... | |
std::string | notionalCurrency () const override |
Inspectors | |
const string & | nearDate () const |
const string & | farDate () const |
const string & | nearBoughtCurrency () const |
double | nearBoughtAmount () const |
const string & | nearSoldCurrency () const |
double | nearSoldAmount () const |
double | farBoughtAmount () const |
double | farSoldAmount () const |
const string & | settlement () const |
Settlement Type can be set to "Cash" for NDF. Default value is "Physical". More... | |
Public Member Functions inherited from Trade | |
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 |
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... | |
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... | |
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 |
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 |
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... | |
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... | |
Serialisation | |
string | nearDate_ |
string | farDate_ |
string | nearBoughtCurrency_ |
double | nearBoughtAmount_ |
string | nearSoldCurrency_ |
double | nearSoldAmount_ |
double | farBoughtAmount_ |
double | farSoldAmount_ |
string | settlement_ |
QuantLib::ext::shared_ptr< QuantLib::Instrument > | instNear_ |
QuantLib::ext::shared_ptr< QuantLib::Instrument > | instFar_ |
virtual void | fromXML (XMLNode *node) override |
virtual XMLNode * | toXML (XMLDocument &doc) const override |
Additional Inherited Members | |
Protected Member Functions inherited from Trade | |
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) |
Protected Attributes inherited from Trade | |
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_ |
Serializable FX Swap.
Definition at line 36 of file fxswap.hpp.
FxSwap | ( | ) |
Default constructor.
Definition at line 39 of file fxswap.hpp.
FxSwap | ( | const Envelope & | env, |
const string & | nearDate, | ||
const string & | farDate, | ||
const string & | nearBoughtCurrency, | ||
double | nearBoughtAmount, | ||
const string & | nearSoldCurrency, | ||
double | nearSoldAmount, | ||
double | farBoughtAmount, | ||
double | farSoldAmount, | ||
const string & | settlement = "Physical" |
||
) |
Constructor.
Definition at line 42 of file fxswap.hpp.
|
overridevirtual |
Build QuantLib/QuantExt instrument, link pricing engine.
Constructs a composite pricing engine of two FX forward pricing engines. One with the near amounts as notionals, the other with the far amounts. NPV is the total npv of these trades.
Implements Trade.
Definition at line 34 of file fxswap.cpp.
|
overridevirtual |
Return the current notional in npvCurrency. See individual sub-classes for the precise definition.
Reimplemented from Trade.
Definition at line 119 of file fxswap.cpp.
|
overridevirtual |
Reimplemented from Trade.
Definition at line 131 of file fxswap.cpp.
const string & nearDate | ( | ) | const |
const string & farDate | ( | ) | const |
const string & nearBoughtCurrency | ( | ) | const |
Definition at line 62 of file fxswap.hpp.
double nearBoughtAmount | ( | ) | const |
Definition at line 63 of file fxswap.hpp.
const string & nearSoldCurrency | ( | ) | const |
Definition at line 64 of file fxswap.hpp.
double nearSoldAmount | ( | ) | const |
Definition at line 65 of file fxswap.hpp.
double farBoughtAmount | ( | ) | const |
Definition at line 66 of file fxswap.hpp.
double farSoldAmount | ( | ) | const |
Definition at line 67 of file fxswap.hpp.
const string & settlement | ( | ) | const |
Settlement Type can be set to "Cash" for NDF. Default value is "Physical".
Definition at line 69 of file fxswap.hpp.
|
overridevirtual |
Reimplemented from Trade.
Definition at line 143 of file fxswap.cpp.
|
overridevirtual |
Reimplemented from Trade.
Definition at line 159 of file fxswap.cpp.
|
private |
Definition at line 78 of file fxswap.hpp.
|
private |
Definition at line 79 of file fxswap.hpp.
|
private |
Definition at line 80 of file fxswap.hpp.
|
private |
Definition at line 81 of file fxswap.hpp.
|
private |
Definition at line 82 of file fxswap.hpp.
|
private |
Definition at line 83 of file fxswap.hpp.
|
private |
Definition at line 84 of file fxswap.hpp.
|
private |
Definition at line 85 of file fxswap.hpp.
|
private |
Definition at line 86 of file fxswap.hpp.
|
private |
Definition at line 87 of file fxswap.hpp.
|
private |
Definition at line 87 of file fxswap.hpp.