Logo
Reference manual - version ored_version
Public Member Functions | List of all members
BermudanOptionWrapper Class Reference

Bermudan Option Wrapper. More...

#include <ored/portfolio/optionwrapper.hpp>

+ Inheritance diagram for BermudanOptionWrapper:

Public Member Functions

 BermudanOptionWrapper (const boost::shared_ptr< QuantLib::Instrument > &inst, const bool isLongOption, const std::vector< QuantLib::Date > &exerciseDates, const bool isPhysicalDelivery, const std::vector< boost::shared_ptr< QuantLib::Instrument >> &undInsts, const Real multiplier=1.0, const Real undMultiplier=1.0, const std::vector< boost::shared_ptr< QuantLib::Instrument >> &additionalInstruments=std::vector< boost::shared_ptr< QuantLib::Instrument >>(), const std::vector< Real > &additionalMultipliers=std::vector< Real >())
 
bool exercise () const override
 
- Public Member Functions inherited from OptionWrapper
 OptionWrapper (const boost::shared_ptr< QuantLib::Instrument > &inst, const bool isLongOption, const std::vector< QuantLib::Date > &exerciseDate, const bool isPhysicalDelivery, const std::vector< boost::shared_ptr< QuantLib::Instrument >> &undInst, const Real multiplier=1.0, const Real undMultiplier=1.0, const std::vector< boost::shared_ptr< QuantLib::Instrument >> &additionalInstruments=std::vector< boost::shared_ptr< QuantLib::Instrument >>(), const std::vector< Real > &additionalMultipliers=std::vector< Real >())
 Constructor.
 
void initialise (const std::vector< QuantLib::Date > &dates) override
 Initialise with the given date grid.
 
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.
 
Real multiplier2 () const override
 
const std::map< std::string, boost::any > & additionalResults () const override
 Return the additional results of this instrument.
 
void updateQlInstruments () override
 call update on enclosed instrument(s)
 
bool isOption () override
 is it an Option?
 
const std::vector< boost::shared_ptr< QuantLib::Instrument > > & underlyingInstruments () const
 return the underlying instruments
 
const boost::shared_ptr< QuantLib::Instrument > & activeUnderlyingInstrument (const bool calculate=false) const
 
bool isLong () const
 return true if option is long, false if option is short
 
bool isExercised () const
 return true if option is exercised
 
bool isPhysicalDelivery () const
 return true for physical delivery, false for cash settlement
 
Real underlyingMultiplier () const
 the underlying multiplier
 
const QuantLib::Date & exerciseDate () const
 the (actual) date the option was exercised
 
void enableExercise ()
 disable exercise decisions
 
void disableExercise ()
 enable exercise decisions
 
- Public Member Functions inherited from InstrumentWrapper
 InstrumentWrapper (const boost::shared_ptr< QuantLib::Instrument > &inst, const Real multiplier=1.0, const std::vector< boost::shared_ptr< QuantLib::Instrument >> &additionalInstruments=std::vector< boost::shared_ptr< QuantLib::Instrument >>(), const std::vector< Real > &additionalMultipliers=std::vector< Real >())
 
QuantLib::Real additionalInstrumentsNPV () const
 
boost::shared_ptr< QuantLib::Instrument > qlInstrument (const bool calculate=false) const
 Inspectors. More...
 
Real multiplier () const
 
const std::vector< boost::shared_ptr< QuantLib::Instrument > > & additionalInstruments () const
 
const std::vector< Real > & additionalMultipliers () const
 
boost::timer::nanosecond_type getCumulativePricingTime () const
 Get cumulative timing spent on pricing.
 
std::size_t getNumberOfPricings () const
 Get number of pricings.
 
void resetPricingStats () const
 Reset pricing statistics.
 

Additional Inherited Members

- Protected Member Functions inherited from InstrumentWrapper
Real getTimedNPV (const boost::shared_ptr< QuantLib::Instrument > &instr) const
 
- Protected Attributes inherited from OptionWrapper
bool isLong_
 
bool isPhysicalDelivery_
 
std::vector< QuantLib::Date > contractExerciseDates_
 
std::vector< QuantLib::Date > effectiveExerciseDates_
 
std::vector< boost::shared_ptr< QuantLib::Instrument > > underlyingInstruments_
 
boost::shared_ptr< QuantLib::Instrument > activeUnderlyingInstrument_
 
Real undMultiplier_
 
bool exercised_
 
bool exercisable_
 
QuantLib::Date exerciseDate_
 
- Protected Attributes inherited from InstrumentWrapper
boost::shared_ptr< QuantLib::Instrument > instrument_
 
Real multiplier_
 
std::vector< boost::shared_ptr< QuantLib::Instrument > > additionalInstruments_
 
std::vector< Real > additionalMultipliers_
 
std::size_t numberOfPricings_ = 0
 
boost::timer::nanosecond_type cumulativePricingTime_ = 0
 

Detailed Description

Bermudan Option Wrapper.

A Bermudan Option Wrapper will exercise when the relevant underlying's NPV exceeds the option NPV. If only one exercise date is remaining, an analytic European pricing engine is used.