Himalaya option. More...
#include <ql/experimental/exoticoptions/himalayaoption.hpp>
Public Member Functions | |
HimalayaOption (const std::vector< Date > &fixingDates, Real strike) | |
void | setupArguments (PricingEngine::arguments *) const |
![]() | |
MultiAssetOption (const boost::shared_ptr< Payoff > &, const boost::shared_ptr< Exercise > &) | |
void | setupArguments (PricingEngine::arguments *) const |
void | fetchResults (const PricingEngine::results *) const |
bool | isExpired () const |
returns whether the instrument might have value greater than zero. | |
Real | delta () const |
Real | gamma () const |
Real | theta () const |
Real | vega () const |
Real | rho () const |
Real | dividendRho () const |
![]() | |
Option (const boost::shared_ptr< Payoff > &payoff, const boost::shared_ptr< Exercise > &exercise) | |
void | setupArguments (PricingEngine::arguments *) const |
boost::shared_ptr< Payoff > | payoff () |
boost::shared_ptr< Exercise > | exercise () |
![]() | |
Real | NPV () const |
returns the net present value of the instrument. | |
Real | errorEstimate () const |
returns the error estimate on the NPV when available. | |
const Date & | valuationDate () const |
returns the date the net present value refers to. | |
template<typename T > | |
T | result (const std::string &tag) const |
returns any additional result returned by the pricing engine. | |
const std::map< std::string, boost::any > & | additionalResults () const |
returns all additional result returned by the pricing engine. | |
void | setPricingEngine (const boost::shared_ptr< PricingEngine > &) |
set the pricing engine to be used. More... | |
![]() | |
void | update () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
![]() | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
void | notifyObservers () |
![]() | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
std::pair< std::set< boost::shared_ptr< Observable > >::iterator, bool > | registerWith (const boost::shared_ptr< Observable > &) |
void | registerWithObservables (const boost::shared_ptr< Observer > &) |
Size | unregisterWith (const boost::shared_ptr< Observable > &) |
void | unregisterWithAll () |
Additional Inherited Members | |
![]() | |
enum | Type { Put = -1, Call = 1 } |
![]() | |
void | setupExpired () const |
![]() | |
void | calculate () const |
virtual void | performCalculations () const |
![]() | |
![]() | |
Real | delta_ |
Real | gamma_ |
Real | theta_ |
Real | vega_ |
Real | rho_ |
Real | dividendRho_ |
![]() | |
boost::shared_ptr< Payoff > | payoff_ |
boost::shared_ptr< Exercise > | exercise_ |
![]() | |
boost::shared_ptr< PricingEngine > | engine_ |
Real | NPV_ |
Real | errorEstimate_ |
Date | valuationDate_ |
std::map< std::string, boost::any > | additionalResults_ |
![]() | |
bool | calculated_ |
bool | frozen_ |
![]() | |
std::ostream & | operator<< (std::ostream &, Option::Type) |
Himalaya option.
The payoff of a Himalaya option is computed in the following way: Given a basket of N assets, and N time periods, at the end of each period the option who performed the best is added to the average and then discarded from the basket. At the end of the N, periods the option pays the max between the strike and the average of the best performers.
|
virtual |
When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.
Reimplemented from Instrument.