Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
Public Member Functions | List of all members
BarrierOption Class Referenceabstract

Serializable FX Barrier Option. More...

#include <ored/portfolio/barrieroption.hpp>

+ Inheritance diagram for BarrierOption:
+ Collaboration diagram for BarrierOption:

Public Member Functions

 BarrierOption ()
 Constructor. More...
 
 BarrierOption (ore::data::OptionData option, BarrierData barrier, QuantLib::Date startDate=QuantLib::Date(), const std::string &calendar=std::string())
 
void build (const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &) override
 Build QuantLib/QuantExt instrument, link pricing engine. More...
 
virtual void checkBarriers ()=0
 check validity of barriers More...
 
virtual QuantLib::ext::shared_ptr< QuantLib::Index > getIndex ()=0
 
virtual const QuantLib::Real strike ()=0
 
virtual QuantLib::Real tradeMultiplier ()=0
 
virtual Currency tradeCurrency ()=0
 
virtual QuantLib::ext::shared_ptr< QuantLib::PricingEngine > vanillaPricingEngine (const QuantLib::ext::shared_ptr< EngineFactory > &ef, const QuantLib::Date &expiryDate, const QuantLib::Date &paymentDate)=0
 
virtual QuantLib::ext::shared_ptr< QuantLib::PricingEngine > barrierPricingEngine (const QuantLib::ext::shared_ptr< EngineFactory > &ef, const QuantLib::Date &expiryDate, const QuantLib::Date &paymentDate)=0
 
virtual const QuantLib::Handle< QuantLib::Quote > & spotQuote ()=0
 
virtual void additionalFromXml (ore::data::XMLNode *node)=0
 
virtual void additionalToXml (ore::data::XMLDocument &doc, ore::data::XMLNode *node) const =0
 
virtual std::string indexFixingName ()=0
 
Inspectors
const ore::data::OptionDataoption () const
 
const BarrierDatabarrier () const
 
const QuantLib::Date & startDate () const
 
const QuantLib::Calendar & calendar () const
 
- 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::FixingDatesfixings (const QuantLib::Date &settlementDate=QuantLib::Date()) const
 
const RequiredFixingsrequiredFixings () 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)
 
TradeActionstradeActions ()
 Set the trade actions. More...
 
const string & id () const
 
const string & tradeType () const
 
const Envelopeenvelope () const
 
const set< string > & portfolioIds () const
 
const TradeActionstradeActions () 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 >
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 XMLNodetoXML (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

ore::data::OptionData option_
 
BarrierData barrier_
 
QuantLib::Date startDate_
 
QuantLib::Calendar calendar_
 
std::string calendarStr_
 
void fromXML (ore::data::XMLNode *node) override
 
ore::data::XMLNodetoXML (ore::data::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< InstrumentWrapperinstrument_
 
std::vector< QuantLib::Leg > legs_
 
std::vector< string > legCurrencies_
 
std::vector< boollegPayers_
 
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_
 

Detailed Description

Serializable FX Barrier Option.

Definition at line 40 of file barrieroption.hpp.

Constructor & Destructor Documentation

◆ BarrierOption() [1/2]

Constructor.

Definition at line 43 of file barrieroption.hpp.

43{}

◆ BarrierOption() [2/2]

BarrierOption ( ore::data::OptionData  option,
BarrierData  barrier,
QuantLib::Date  startDate = QuantLib::Date(),
const std::string &  calendar = std::string() 
)

Definition at line 45 of file barrieroption.hpp.

49 }
const BarrierData & barrier() const
const QuantLib::Date & startDate() const
const ore::data::OptionData & option() const
ore::data::OptionData option_
const QuantLib::Calendar & calendar() const
QuantLib::Calendar calendar_
Calendar parseCalendar(const string &s)
Convert text to QuantLib::Calendar.
Definition: parsers.cpp:157
+ Here is the call graph for this function:

Member Function Documentation

◆ build()

void build ( const QuantLib::ext::shared_ptr< ore::data::EngineFactory > &  )
override

Build QuantLib/QuantExt instrument, link pricing engine.

Definition at line 46 of file barrieroption.cpp.

46 {
47 QL_REQUIRE(tradeActions().empty(), "TradeActions not supported for FxBarrierOption");
48
50
51 QL_REQUIRE(barrier_.levels().size() > 0 && barrier_.levels().size() <= 2, "BarrierOption must have 1 or 2 levels");
52 QL_REQUIRE(option_.style() == "European", "Option Style unknown: " << option_.style());
53 QL_REQUIRE(option_.exerciseDates().size() == 1, "Invalid number of exercise dates");
54
55 // get the expiry date
56 Date expiryDate = parseDate(option_.exerciseDates().front());
57 Date payDate = expiryDate;
58 const boost::optional<OptionPaymentData>& opd = option_.paymentData();
59 if (opd) {
60 if (opd->rulesBased()) {
61 Calendar payCalendar = opd->calendar();
62 payDate = payCalendar.advance(expiryDate, opd->lag(), Days, opd->convention());
63 } else {
64 if (opd->dates().size() > 1)
66 "Found more than 1 payment date. The first one will be used.")
67 .log();
68 payDate = opd->dates().front();
69 }
70 }
71 QL_REQUIRE(payDate >= expiryDate, "Settlement date cannot be earlier than expiry date");
72
73 Real rebate = barrier_.rebate() / tradeMultiplier();
74 QL_REQUIRE(rebate >= 0, "rebate must be non-negative");
75
76
77 // set the maturity
78 maturity_ = std::max(option_.premiumData().latestPremiumDate(), payDate);
79
80 // fx base
81 // Payoff
82 Option::Type type = parseOptionType(option_.callPut());
83 QuantLib::ext::shared_ptr<StrikedTypePayoff> payoff(new PlainVanillaPayoff(type, strike()));
84
85 QuantLib::ext::shared_ptr<Exercise> exercise = QuantLib::ext::make_shared<EuropeanExercise>(expiryDate);
86 // QL does not have an FXBarrierOption, so we add a barrier option and a vanilla option here and wrap
87 // it in a composite to get the notional in.
88
89 std::vector<QuantLib::ext::shared_ptr<Instrument>> additionalInstruments;
90 std::vector<Real> additionalMultipliers;
91 Settlement::Type settleType = parseSettlementType(option_.settlement());
92 Position::Type positionType = parsePositionType(option_.longShort());
93
94 QuantLib::ext::shared_ptr<Instrument> vanilla;
95 QuantLib::ext::shared_ptr<Instrument> barrier;
96 QuantLib::ext::shared_ptr<InstrumentWrapper> instWrapper;
97
98 bool exercised = false;
99 Real exercisePrice = Null<Real>();
100
101 if (payDate > expiryDate) {
102 // Has the option been marked as exercised
103 const boost::optional<OptionExerciseData>& oed = option_.exerciseData();
104 if (oed) {
105 QL_REQUIRE(oed->date() == expiryDate, "The supplied exercise date ("
106 << io::iso_date(oed->date())
107 << ") should equal the option's expiry date ("
108 << io::iso_date(expiryDate) << ").");
109 exercised = true;
110 exercisePrice = oed->price();
111 }
112
113 QuantLib::ext::shared_ptr<Index> index;
115 index = getIndex();
116 QL_REQUIRE(index, "Barrier option trade with delayed payment "
117 << id() << ": the FXIndex node needs to be populated.");
118 requiredFixings_.addFixingDate(expiryDate, index->name(), payDate);
119 }
120 vanilla = QuantLib::ext::make_shared<CashSettledEuropeanOption>(payoff->optionType(), payoff->strike(), expiryDate,
121 payDate, option_.isAutomaticExercise(), index,
122 exercised, exercisePrice);
123 } else {
124 vanilla = QuantLib::ext::make_shared<VanillaOption>(payoff, exercise);
125 }
126
127 boost::variant<Barrier::Type, DoubleBarrier::Type> barrierType;
128 if (barrier_.levels().size() < 2) {
129 barrierType = parseBarrierType(barrier_.type());
130 barrier = QuantLib::ext::make_shared<QuantLib::BarrierOption>(QuantLib::ext::get<Barrier::Type>(barrierType), barrier_.levels()[0].value(),
131 rebate, payoff, exercise);
132 } else {
133 barrierType = parseDoubleBarrierType(barrier_.type());
134 barrier = QuantLib::ext::make_shared<QuantLib::DoubleBarrierOption>(QuantLib::ext::get<DoubleBarrier::Type>(barrierType),
135 barrier_.levels()[0].value(), barrier_.levels()[1].value(), rebate, payoff, exercise);
136 }
137
138 QuantLib::ext::shared_ptr<QuantLib::PricingEngine> barrierEngine = barrierPricingEngine(engineFactory, expiryDate, payDate);
139 QuantLib::ext::shared_ptr<QuantLib::PricingEngine> vanillaEngine = vanillaPricingEngine(engineFactory, expiryDate, payDate);
140
141 // set pricing engines
142 barrier->setPricingEngine(barrierEngine);
143 vanilla->setPricingEngine(vanillaEngine);
144
145 QuantLib::ext::shared_ptr<QuantLib::Index> index = getIndex();
146 const QuantLib::Handle<QuantLib::Quote>& spot = spotQuote();
147 if (barrier_.levels().size() < 2)
148 instWrapper = QuantLib::ext::make_shared<SingleBarrierOptionWrapper>(
149 barrier, positionType == Position::Long ? true : false, expiryDate,
150 settleType == Settlement::Physical ? true : false, vanilla, QuantLib::ext::get<Barrier::Type>(barrierType),
151 spot, barrier_.levels()[0].value(), rebate, tradeCurrency(), startDate_, index, calendar_,
152 tradeMultiplier(), tradeMultiplier(), additionalInstruments, additionalMultipliers);
153 else
154 instWrapper = QuantLib::ext::make_shared<DoubleBarrierOptionWrapper>(
155 barrier, positionType == Position::Long ? true : false, expiryDate,
156 settleType == Settlement::Physical ? true : false, vanilla, QuantLib::ext::get<DoubleBarrier::Type>(barrierType),
157 spot, barrier_.levels()[0].value(), barrier_.levels()[1].value(), rebate, tradeCurrency(), startDate_, index, calendar_,
158 tradeMultiplier(), tradeMultiplier(), additionalInstruments, additionalMultipliers);
159
160 instrument_ = instWrapper;
161
162 Calendar fixingCal = index ? index->fixingCalendar() : calendar_;
163 if (startDate_ != Null<Date>() && !indexFixingName().empty()) {
164 for (Date d = fixingCal.adjust(startDate_); d <= expiryDate; d = fixingCal.advance(d, 1 * Days)) {
166 }
167 }
168
169 // Add additional premium payments
170 Real bsInd = (positionType == QuantLib::Position::Long ? 1.0 : -1.0);
171 addPremiums(additionalInstruments, additionalMultipliers, bsInd * tradeMultiplier(), option_.premiumData(), -bsInd,
172 tradeCurrency(), engineFactory, engineFactory->configuration(MarketContext::pricing));
173}
const std::string & type() const
Definition: barrierdata.hpp:46
double rebate() const
Definition: barrierdata.hpp:47
std::vector< ore::data::TradeBarrier > levels() const
Definition: barrierdata.hpp:50
virtual QuantLib::ext::shared_ptr< QuantLib::PricingEngine > vanillaPricingEngine(const QuantLib::ext::shared_ptr< EngineFactory > &ef, const QuantLib::Date &expiryDate, const QuantLib::Date &paymentDate)=0
virtual std::string indexFixingName()=0
virtual QuantLib::Real tradeMultiplier()=0
virtual Currency tradeCurrency()=0
virtual void checkBarriers()=0
check validity of barriers
virtual QuantLib::ext::shared_ptr< QuantLib::PricingEngine > barrierPricingEngine(const QuantLib::ext::shared_ptr< EngineFactory > &ef, const QuantLib::Date &expiryDate, const QuantLib::Date &paymentDate)=0
virtual const QuantLib::Handle< QuantLib::Quote > & spotQuote()=0
virtual const QuantLib::Real strike()=0
virtual QuantLib::ext::shared_ptr< QuantLib::Index > getIndex()=0
void log() const
generate Boost log record to pass to corresponding sinks
Definition: log.cpp:491
const string & callPut() const
Definition: optiondata.hpp:71
const string & longShort() const
Definition: optiondata.hpp:70
const string & style() const
Definition: optiondata.hpp:74
const string & settlement() const
Definition: optiondata.hpp:81
bool isAutomaticExercise() const
Automatic exercise assumed false if not explicitly provided.
Definition: optiondata.hpp:117
const boost::optional< OptionPaymentData > & paymentData() const
Definition: optiondata.hpp:93
const boost::optional< OptionExerciseData > & exerciseData() const
Definition: optiondata.hpp:92
const PremiumData & premiumData() const
Definition: optiondata.hpp:83
const vector< string > & exerciseDates() const
Definition: optiondata.hpp:76
QuantLib::Date latestPremiumDate() const
Definition: premiumdata.cpp:28
void addFixingDate(const QuantLib::Date &fixingDate, const std::string &indexName, const QuantLib::Date &payDate=Date::maxDate(), const bool alwaysAddIfPaysOnSettlement=false, const bool mandatoryFixing=true)
Utility classes for Structured warnings, contains the Trade ID and Type.
TradeActions & tradeActions()
Set the trade actions.
Definition: trade.hpp:126
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)
Definition: trade.cpp:58
RequiredFixings requiredFixings_
Definition: trade.hpp:223
QuantLib::ext::shared_ptr< InstrumentWrapper > instrument_
Definition: trade.hpp:197
const string & tradeType() const
Definition: trade.hpp:133
DoubleBarrier::Type parseDoubleBarrierType(const std::string &s)
Convert std::string to QuantLib::DoubleBarrierType.
Definition: parsers.cpp:1061
Date parseDate(const string &s)
Convert std::string to QuantLib::Date.
Definition: parsers.cpp:51
Position::Type parsePositionType(const std::string &s)
Convert text to QuantLib::Position::Type.
Definition: parsers.cpp:404
Barrier::Type parseBarrierType(const std::string &s)
Convert std::string to QuantLib::BarrierType.
Definition: parsers.cpp:1042
Settlement::Type parseSettlementType(const std::string &s)
Convert text to QuantLib::Settlement::Type.
Definition: parsers.cpp:434
Option::Type parseOptionType(const std::string &s)
Convert text to QuantLib::Option::Type.
Definition: parsers.cpp:481
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkBarriers()

virtual void checkBarriers ( )
pure virtual

check validity of barriers

Implemented in EquityBarrierOption, EquityDoubleBarrierOption, FxBarrierOption, and FxDoubleBarrierOption.

+ Here is the caller graph for this function:

◆ getIndex()

virtual QuantLib::ext::shared_ptr< QuantLib::Index > getIndex ( )
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ strike()

virtual const QuantLib::Real strike ( )
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ tradeMultiplier()

virtual QuantLib::Real tradeMultiplier ( )
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ tradeCurrency()

virtual Currency tradeCurrency ( )
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ vanillaPricingEngine()

virtual QuantLib::ext::shared_ptr< QuantLib::PricingEngine > vanillaPricingEngine ( const QuantLib::ext::shared_ptr< EngineFactory > &  ef,
const QuantLib::Date &  expiryDate,
const QuantLib::Date &  paymentDate 
)
pure virtual

Implemented in EquityBarrierOption, EquityDoubleBarrierOption, FxBarrierOption, and FxDoubleBarrierOption.

+ Here is the caller graph for this function:

◆ barrierPricingEngine()

virtual QuantLib::ext::shared_ptr< QuantLib::PricingEngine > barrierPricingEngine ( const QuantLib::ext::shared_ptr< EngineFactory > &  ef,
const QuantLib::Date &  expiryDate,
const QuantLib::Date &  paymentDate 
)
pure virtual

Implemented in EquityDoubleBarrierOption, EquityBarrierOption, FxBarrierOption, and FxDoubleBarrierOption.

+ Here is the caller graph for this function:

◆ spotQuote()

virtual const QuantLib::Handle< QuantLib::Quote > & spotQuote ( )
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ additionalFromXml()

virtual void additionalFromXml ( ore::data::XMLNode node)
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ additionalToXml()

virtual void additionalToXml ( ore::data::XMLDocument doc,
ore::data::XMLNode node 
) const
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ indexFixingName()

virtual std::string indexFixingName ( )
pure virtual

Implemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

+ Here is the caller graph for this function:

◆ option()

const ore::data::OptionData & option ( ) const

Definition at line 79 of file barrieroption.hpp.

79{ return option_; }
+ Here is the caller graph for this function:

◆ barrier()

const BarrierData & barrier ( ) const

Definition at line 80 of file barrieroption.hpp.

80{ return barrier_; }
+ Here is the caller graph for this function:

◆ startDate()

const QuantLib::Date & startDate ( ) const

Definition at line 81 of file barrieroption.hpp.

81{ return startDate_; }

◆ calendar()

const QuantLib::Calendar & calendar ( ) const

Definition at line 82 of file barrieroption.hpp.

82{ return calendar_; }

◆ fromXML()

void fromXML ( ore::data::XMLNode node)
overridevirtual

Reimplemented from Trade.

Reimplemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

Definition at line 176 of file barrieroption.cpp.

176 {
177 Trade::fromXML(node);
178 XMLNode* dataNode = XMLUtils::getChildNode(node, tradeType_ + "Data");
179 QL_REQUIRE(dataNode, "No " + tradeType_ + " Node");
180 option_.fromXML(XMLUtils::getChildNode(dataNode, "OptionData"));
181 barrier_.fromXML(XMLUtils::getChildNode(dataNode, "BarrierData"));
182 startDate_ = ore::data::parseDate(XMLUtils::getChildValue(dataNode, "StartDate", false));
183 calendarStr_ = XMLUtils::getChildValue(dataNode, "Calendar", false);
185
186 additionalFromXml(dataNode);
187}
virtual void fromXML(ore::data::XMLNode *node) override
Definition: barrierdata.cpp:25
virtual void additionalFromXml(ore::data::XMLNode *node)=0
virtual void fromXML(XMLNode *node) override
Definition: optiondata.cpp:32
virtual void fromXML(XMLNode *node) override
Definition: trade.cpp:34
string tradeType_
Definition: trade.hpp:196
static string getChildValue(XMLNode *node, const string &name, bool mandatory=false, const string &defaultValue=string())
Definition: xmlutils.cpp:277
static XMLNode * getChildNode(XMLNode *n, const string &name="")
Definition: xmlutils.cpp:387
rapidxml::xml_node< char > XMLNode
Definition: xmlutils.hpp:60
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ toXML()

XMLNode * toXML ( ore::data::XMLDocument doc) const
overridevirtual

Reimplemented from Trade.

Reimplemented in FxOptionWithBarrier, and EquityOptionWithBarrier.

Definition at line 189 of file barrieroption.cpp.

189 {
190 XMLNode* node = Trade::toXML(doc);
191 XMLNode* barNode = doc.allocNode(tradeType_ + "Data");
192 XMLUtils::appendNode(node, barNode);
193
194 XMLUtils::appendNode(barNode, option_.toXML(doc));
195 XMLUtils::appendNode(barNode, barrier_.toXML(doc));
196 if (startDate_ != Date())
197 XMLUtils::addChild(doc, barNode, "StartDate", to_string(startDate_));
198 if (!calendarStr_.empty())
199 XMLUtils::addChild(doc, barNode, "Calendar", calendarStr_);
200 additionalToXml(doc, barNode);
201
202 return node;
203}
virtual ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
Definition: barrierdata.cpp:49
virtual void additionalToXml(ore::data::XMLDocument &doc, ore::data::XMLNode *node) const =0
virtual XMLNode * toXML(XMLDocument &doc) const override
Definition: optiondata.cpp:86
virtual XMLNode * toXML(XMLDocument &doc) const override
Definition: trade.cpp:46
XMLNode * allocNode(const string &nodeName)
util functions that wrap rapidxml
Definition: xmlutils.cpp:132
static XMLNode * addChild(XMLDocument &doc, XMLNode *n, const string &name)
Definition: xmlutils.cpp:181
static void appendNode(XMLNode *parent, XMLNode *child)
Definition: xmlutils.cpp:406
std::string to_string(const LocationInfo &l)
Definition: ast.cpp:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ option_

ore::data::OptionData option_
private

Definition at line 92 of file barrieroption.hpp.

◆ barrier_

BarrierData barrier_
private

Definition at line 93 of file barrieroption.hpp.

◆ startDate_

QuantLib::Date startDate_
private

Definition at line 94 of file barrieroption.hpp.

◆ calendar_

QuantLib::Calendar calendar_
private

Definition at line 95 of file barrieroption.hpp.

◆ calendarStr_

std::string calendarStr_
protected

Definition at line 98 of file barrieroption.hpp.