Option Wrapper. More...
#include <ored/portfolio/optionwrapper.hpp>
Public Member Functions | |
OptionWrapper (const QuantLib::ext::shared_ptr< QuantLib::Instrument > &inst, const bool isLongOption, const std::vector< QuantLib::Date > &exerciseDate, const bool isPhysicalDelivery, const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > &undInst, const Real multiplier=1.0, const Real undMultiplier=1.0, const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > &additionalInstruments=std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > >(), const std::vector< Real > &additionalMultipliers=std::vector< Real >()) | |
Constructor. More... | |
Public Member Functions inherited from InstrumentWrapper | |
InstrumentWrapper () | |
InstrumentWrapper (const QuantLib::ext::shared_ptr< QuantLib::Instrument > &inst, const Real multiplier=1.0, const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > &additionalInstruments=std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > >(), const std::vector< Real > &additionalMultipliers=std::vector< Real >()) | |
virtual | ~InstrumentWrapper () |
virtual void | initialise (const std::vector< QuantLib::Date > &dates)=0 |
Initialise with the given date grid. More... | |
virtual void | reset ()=0 |
reset is called every time a new path is about to be priced. More... | |
virtual QuantLib::Real | NPV () const =0 |
Return the NPV of this instrument. More... | |
virtual const std::map< std::string, boost::any > & | additionalResults () const =0 |
Return the additional results of this instrument. More... | |
QuantLib::Real | additionalInstrumentsNPV () const |
virtual void | updateQlInstruments () |
call update on enclosed instrument(s) More... | |
virtual bool | isOption () |
is it an Option? More... | |
QuantLib::ext::shared_ptr< QuantLib::Instrument > | qlInstrument (const bool calculate=false) const |
Inspectors. More... | |
Real | multiplier () const |
virtual Real | multiplier2 () const |
const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > & | additionalInstruments () const |
const std::vector< Real > & | additionalMultipliers () const |
boost::timer::nanosecond_type | getCumulativePricingTime () const |
Get cumulative timing spent on pricing. More... | |
std::size_t | getNumberOfPricings () const |
Get number of pricings. More... | |
void | resetPricingStats () const |
Reset pricing statistics. More... | |
InstrumentWrapper interface | |
bool | isLong_ |
bool | isPhysicalDelivery_ |
std::vector< QuantLib::Date > | contractExerciseDates_ |
std::vector< QuantLib::Date > | effectiveExerciseDates_ |
std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > | underlyingInstruments_ |
QuantLib::ext::shared_ptr< QuantLib::Instrument > | activeUnderlyingInstrument_ |
Real | undMultiplier_ |
bool | exercised_ |
bool | exercisable_ |
QuantLib::Date | exerciseDate_ |
void | initialise (const std::vector< QuantLib::Date > &dates) override |
Initialise with the given date grid. More... | |
void | reset () override |
reset is called every time a new path is about to be priced. More... | |
QuantLib::Real | NPV () const override |
Return the NPV of this instrument. More... | |
Real | multiplier2 () const override |
const std::map< std::string, boost::any > & | additionalResults () const override |
Return the additional results of this instrument. More... | |
void | updateQlInstruments () override |
call update on enclosed instrument(s) More... | |
bool | isOption () override |
is it an Option? More... | |
const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > & | underlyingInstruments () const |
return the underlying instruments More... | |
const QuantLib::ext::shared_ptr< QuantLib::Instrument > & | activeUnderlyingInstrument (const bool calculate=false) const |
bool | isLong () const |
return true if option is long, false if option is short More... | |
bool | isExercised () const |
return true if option is exercised More... | |
bool | isPhysicalDelivery () const |
return true for physical delivery, false for cash settlement More... | |
Real | underlyingMultiplier () const |
the underlying multiplier More... | |
const QuantLib::Date & | exerciseDate () const |
the (actual) date the option was exercised More... | |
void | enableExercise () |
disable exercise decisions More... | |
void | disableExercise () |
enable exercise decisions More... | |
virtual bool | exercise () const =0 |
Additional Inherited Members | |
Protected Member Functions inherited from InstrumentWrapper | |
Real | getTimedNPV (const QuantLib::ext::shared_ptr< QuantLib::Instrument > &instr) const |
Protected Attributes inherited from InstrumentWrapper | |
QuantLib::ext::shared_ptr< QuantLib::Instrument > | instrument_ |
Real | multiplier_ |
std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > | additionalInstruments_ |
std::vector< Real > | additionalMultipliers_ |
std::size_t | numberOfPricings_ = 0 |
boost::timer::nanosecond_type | cumulativePricingTime_ = 0 |
Option Wrapper.
Wrapper Class for Options Prices underlying instrument if option has been exercised Handles Physical and Cash Settlement
Definition at line 39 of file optionwrapper.hpp.
OptionWrapper | ( | const QuantLib::ext::shared_ptr< QuantLib::Instrument > & | inst, |
const bool | isLongOption, | ||
const std::vector< QuantLib::Date > & | exerciseDate, | ||
const bool | isPhysicalDelivery, | ||
const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > & | undInst, | ||
const Real | multiplier = 1.0 , |
||
const Real | undMultiplier = 1.0 , |
||
const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > & | additionalInstruments = std::vector<QuantLib::ext::shared_ptr<QuantLib::Instrument>>() , |
||
const std::vector< Real > & | additionalMultipliers = std::vector<Real>() |
||
) |
Constructor.
Definition at line 29 of file optionwrapper.cpp.
|
overridevirtual |
Initialise with the given date grid.
Implements InstrumentWrapper.
Definition at line 46 of file optionwrapper.cpp.
|
overridevirtual |
reset is called every time a new path is about to be priced.
For path dependent Wrappers, this is when internal state should be reset
Implements InstrumentWrapper.
Definition at line 65 of file optionwrapper.cpp.
|
overridevirtual |
Return the NPV of this instrument.
Implements InstrumentWrapper.
Definition at line 70 of file optionwrapper.cpp.
|
overridevirtual |
multiplier to be applied on top of multiplier(), e.g. -1 for short options
Reimplemented from InstrumentWrapper.
Definition at line 57 of file optionwrapper.hpp.
|
overridevirtual |
Return the additional results of this instrument.
Implements InstrumentWrapper.
Definition at line 104 of file optionwrapper.cpp.
|
overridevirtual |
call update on enclosed instrument(s)
Reimplemented from InstrumentWrapper.
Definition at line 59 of file optionwrapper.hpp.
|
overridevirtual |
is it an Option?
Reimplemented from InstrumentWrapper.
Definition at line 64 of file optionwrapper.hpp.
const std::vector< QuantLib::ext::shared_ptr< QuantLib::Instrument > > & underlyingInstruments | ( | ) | const |
return the underlying instruments
Definition at line 68 of file optionwrapper.hpp.
const QuantLib::ext::shared_ptr< QuantLib::Instrument > & activeUnderlyingInstrument | ( | const bool | calculate = false | ) | const |
return the active underlying instrument Pass true if you trigger a calculation on the returned instrument and want to record the timing for that calculation. If in doubt whether a calculation is triggered, pass false.
Definition at line 75 of file optionwrapper.hpp.
bool isLong | ( | ) | const |
return true if option is long, false if option is short
Definition at line 83 of file optionwrapper.hpp.
bool isExercised | ( | ) | const |
bool isPhysicalDelivery | ( | ) | const |
return true for physical delivery, false for cash settlement
Definition at line 89 of file optionwrapper.hpp.
Real underlyingMultiplier | ( | ) | const |
const QuantLib::Date & exerciseDate | ( | ) | const |
the (actual) date the option was exercised
Definition at line 95 of file optionwrapper.hpp.
void enableExercise | ( | ) |
void disableExercise | ( | ) |
|
pure virtual |
Implemented in SingleBarrierOptionWrapper, DoubleBarrierOptionWrapper, EuropeanOptionWrapper, AmericanOptionWrapper, and BermudanOptionWrapper.
|
protected |
Definition at line 106 of file optionwrapper.hpp.
|
protected |
Definition at line 107 of file optionwrapper.hpp.
|
protected |
Definition at line 108 of file optionwrapper.hpp.
|
protected |
Definition at line 109 of file optionwrapper.hpp.
|
protected |
Definition at line 110 of file optionwrapper.hpp.
|
mutableprotected |
Definition at line 111 of file optionwrapper.hpp.
|
protected |
Definition at line 112 of file optionwrapper.hpp.
|
mutableprotected |
Definition at line 113 of file optionwrapper.hpp.
|
protected |
Definition at line 114 of file optionwrapper.hpp.
|
mutableprotected |
Definition at line 115 of file optionwrapper.hpp.