Option Wrapper. More...
#include <ored/portfolio/optionwrapper.hpp>
Inheritance diagram for OptionWrapper:
Collaboration diagram for OptionWrapper: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.
Here is the call graph for this function:
|
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.
Here is the caller graph for this function:
|
overridevirtual |
Return the NPV of this instrument.
Implements InstrumentWrapper.
Definition at line 70 of file optionwrapper.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
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.
Here is the caller graph for this function:
|
overridevirtual |
Return the additional results of this instrument.
Implements InstrumentWrapper.
Definition at line 104 of file optionwrapper.cpp.
Here is the call graph for this function:
|
overridevirtual |
call update on enclosed instrument(s)
Reimplemented from InstrumentWrapper.
Definition at line 59 of file optionwrapper.hpp.
Here is the call graph for this function:
|
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.
Here is the call graph for this function:| 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.
Here is the caller graph for this function:| void enableExercise | ( | ) |
| void disableExercise | ( | ) |
|
pure virtual |
Implemented in SingleBarrierOptionWrapper, DoubleBarrierOptionWrapper, EuropeanOptionWrapper, AmericanOptionWrapper, and BermudanOptionWrapper.
Here is the caller graph for this function:
|
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.