QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Himalaya option. More...
#include <himalayaoption.hpp>
Classes | |
class | arguments |
class | engine |
class | results |
Public Member Functions | |
HimalayaOption (const std::vector< Date > &fixingDates, Real strike) | |
void | setupArguments (PricingEngine::arguments *) const override |
Public Member Functions inherited from MultiAssetOption | |
MultiAssetOption (const ext::shared_ptr< Payoff > &, const ext::shared_ptr< Exercise > &) | |
bool | isExpired () const override |
returns whether the instrument might have value greater than zero. More... | |
Real | delta () const |
Real | gamma () const |
Real | theta () const |
Real | vega () const |
Real | rho () const |
Real | dividendRho () const |
void | setupArguments (PricingEngine::arguments *) const override |
void | fetchResults (const PricingEngine::results *) const override |
Public Member Functions inherited from Option | |
Option (ext::shared_ptr< Payoff > payoff, ext::shared_ptr< Exercise > exercise) | |
void | setupArguments (PricingEngine::arguments *) const override |
ext::shared_ptr< Payoff > | payoff () const |
ext::shared_ptr< Exercise > | exercise () const |
Public Member Functions inherited from Instrument | |
Instrument () | |
Real | NPV () const |
returns the net present value of the instrument. More... | |
Real | errorEstimate () const |
returns the error estimate on the NPV when available. More... | |
const Date & | valuationDate () const |
returns the date the net present value refers to. More... | |
template<typename T > | |
T | result (const std::string &tag) const |
returns any additional result returned by the pricing engine. More... | |
const std::map< std::string, ext::any > & | additionalResults () const |
returns all additional result returned by the pricing engine. More... | |
void | setPricingEngine (const ext::shared_ptr< PricingEngine > &) |
set the pricing engine to be used. More... | |
Public Member Functions inherited from LazyObject | |
LazyObject () | |
~LazyObject () override=default | |
void | update () override |
bool | isCalculated () const |
void | forwardFirstNotificationOnly () |
void | alwaysForwardNotifications () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~Observer () |
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
void | registerWithObservables (const ext::shared_ptr< Observer > &) |
Size | unregisterWith (const ext::shared_ptr< Observable > &) |
void | unregisterWithAll () |
virtual void | update ()=0 |
virtual void | deepUpdate () |
Private Attributes | |
std::vector< Date > | fixingDates_ |
Additional Inherited Members | |
Public Types inherited from Option | |
enum | Type { Put = -1 , Call = 1 } |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Protected Member Functions inherited from MultiAssetOption | |
void | setupExpired () const override |
Protected Member Functions inherited from Instrument | |
void | calculate () const override |
void | performCalculations () const override |
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 | |
ext::shared_ptr< Payoff > | payoff_ |
ext::shared_ptr< Exercise > | exercise_ |
Protected Attributes inherited from Instrument | |
Real | NPV_ |
Real | errorEstimate_ |
Date | valuationDate_ |
std::map< std::string, ext::any > | additionalResults_ |
ext::shared_ptr< PricingEngine > | engine_ |
Protected Attributes inherited from LazyObject | |
bool | calculated_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
Related Functions inherited from Option | |
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.
Definition at line 44 of file himalayaoption.hpp.
HimalayaOption | ( | const std::vector< Date > & | fixingDates, |
Real | strike | ||
) |
Definition at line 26 of file himalayaoption.cpp.
|
overridevirtual |
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.
Definition at line 34 of file himalayaoption.cpp.
|
private |
Definition at line 55 of file himalayaoption.hpp.