American Option Wrapper. More...
#include <ored/portfolio/optionwrapper.hpp>
Public Member Functions | |
| AmericanOptionWrapper (const QuantLib::ext::shared_ptr< QuantLib::Instrument > &inst, const bool isLongOption, const QuantLib::Date &exerciseDate, const QuantLib::Date &settlementDate, const bool isPhysicalDelivery, const 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 >()) | |
| bool | exercise () const override |
| Public Member Functions inherited from OptionWrapper | |
| OptionWrapper (const QuantLib::ext::shared_ptr< QuantLib::Instrument > &inst, const bool isLongOption, const std::vector< QuantLib::Date > &exerciseDate, const std::vector< QuantLib::Date > &settlementDate, 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. | |
| 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. | |
| QuantLib::Real | NPV () const override |
| Return the NPV of this instrument. | |
| Real | multiplier2 () const override |
| const std::map< std::string, QuantLib::ext::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< QuantLib::ext::shared_ptr< QuantLib::Instrument > > & | underlyingInstruments () const |
| return the underlying instruments | |
| 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 | |
| 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 | |
| Real | cachedExerciseValue () const |
| Public Member Functions inherited from 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 >()) | |
| QuantLib::Real | additionalInstrumentsNPV () const |
| QuantLib::ext::shared_ptr< QuantLib::Instrument > | qlInstrument (const bool calculate=false) const |
| Inspectors. | |
| Real | multiplier () 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. | |
| 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 QuantLib::ext::shared_ptr< QuantLib::Instrument > &instr) const |
| bool | isLong_ |
| bool | isPhysicalDelivery_ |
| std::vector< QuantLib::Date > | contractExerciseDates_ |
| std::vector< QuantLib::Date > | effectiveExerciseDates_ |
| std::vector< QuantLib::Date > | settlementDates_ |
| 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_ |
| QuantLib::Date | settlementDate_ |
| Real | cachedNpv_ |
| Real | cachedExerciseValue_ = QuantLib::Null<Real>() |
| 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 |
American Option Wrapper.
An American Option Wrapper will exercise whenever the underlying NPV is greater than the option NPV. On the last date it will exercise if the underlying is positive.
|
overridevirtual |
Implements OptionWrapper.