QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
himalayaoption.hpp
Go to the documentation of this file.
1/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3/*
4 Copyright (C) 2008 Master IMAFA - Polytech'Nice Sophia - Université de Nice Sophia Antipolis
5
6 This file is part of QuantLib, a free-software/open-source library
7 for financial quantitative analysts and developers - http://quantlib.org/
8
9 QuantLib is free software: you can redistribute it and/or modify it
10 under the terms of the QuantLib license. You should have received a
11 copy of the license along with this program; if not, please email
12 <quantlib-dev@lists.sf.net>. The license is also available online at
13 <http://quantlib.org/license.shtml>.
14
15 This program is distributed in the hope that it will be useful, but WITHOUT
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17 FOR A PARTICULAR PURPOSE. See the license for more details.
18*/
19
20/*! \file himalayaoption.hpp
21 \brief Himalaya option on a number of assets
22*/
23
24#ifndef quantlib_himalaya_option_hpp
25#define quantlib_himalaya_option_hpp
26
28#include <ql/time/date.hpp>
29#include <vector>
30
31namespace QuantLib {
32
33 //! Himalaya option
34 /*! The payoff of a Himalaya option is computed in the following
35 way: Given a basket of N assets, and N time periods, at the
36 end of each period the option who performed the best is added
37 to the average and then discarded from the basket. At the end
38 of the N, periods the option pays the max between the strike
39 and the average of the best performers.
40
41 \warning This implementation still does not manage seasoned
42 options.
43 */
45 public:
46 class engine;
47 class arguments;
48 class results;
49 HimalayaOption(const std::vector<Date>& fixingDates,
50 Real strike);
51
52 void setupArguments(PricingEngine::arguments*) const override;
53
54 private:
55 std::vector<Date> fixingDates_;
56 };
57
58 class HimalayaOption::arguments : public MultiAssetOption::arguments {
59 public:
60 void validate() const override;
61 std::vector<Date> fixingDates;
62 };
63
65
67 : public GenericEngine<HimalayaOption::arguments,
68 HimalayaOption::results> {};
69
70}
71
72#endif
template base class for option pricing engines
void setupArguments(PricingEngine::arguments *) const override
std::vector< Date > fixingDates_
Results from multi-asset option calculation
Base class for options on multiple assets.
date- and time-related classes, typedefs and enumerations
QL_REAL Real
real number
Definition: types.hpp:50
Option on multiple assets.
Definition: any.hpp:35