HimalayaOption Class Reference

Himalaya option. More...

`#include <ql/experimental/exoticoptions/himalayaoption.hpp>`

Inheritance diagram for HimalayaOption:
[legend]

## Public Member Functions

| HimalayaOption (const std::vector< Date > &fixingDates, Real strike)
void | setupArguments (PricingEngine::arguments *) const
Public Member Functions inherited from MultiAssetOption
| 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
Public Member Functions inherited from Option
| 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 ()
Public Member Functions inherited from Instrument
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...
Public Member Functions inherited from LazyObject
void | update ()
void | recalculate ()
void | freeze ()
void | unfreeze ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Observer
| 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

Public Types inherited from Option
enum | Type { Put = -1, Call = 1 }
Protected Member Functions inherited from MultiAssetOption
void | setupExpired () const
Protected Member Functions inherited from Instrument
void | calculate () const
virtual void | performCalculations () const
Protected Member Functions inherited from LazyObject
Protected Attributes inherited from MultiAssetOption
Real | delta_
Real | gamma_
Real | theta_
Real | vega_
Real | rho_
Real | dividendRho_
Protected Attributes inherited from Option
boost::shared_ptr< Payoff > | payoff_
boost::shared_ptr< Exercise > | exercise_
Protected Attributes inherited from Instrument
boost::shared_ptr< PricingEngine > | engine_
Real | NPV_
Real | errorEstimate_
Date | valuationDate_
std::map< std::string, boost::any > | additionalResults_
Protected Attributes inherited from LazyObject
bool | calculated_
bool | frozen_
Related Functions inherited from Option
std::ostream & | operator<< (std::ostream &, Option::Type)

## Detailed Description

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.

Warning:
  This implementation still does not manage seasoned options.

## Member Function Documentation

void setupArguments | ( | PricingEngine::arguments * |  | ) | const

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.