QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
analyticdoublebarrierengine.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) 2015 Thema Consulting SA
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 analyticdoublebarrierengine.hpp
21 \brief Analytic double barrier european option engines
22
23 ! Valid only if strike is in barrier range
24*/
25
26#ifndef quantlib_analytic_double_barrier_engine_hpp
27#define quantlib_analytic_double_barrier_engine_hpp
28
32
33namespace QuantLib {
34
35 //! Pricing engine for double barrier european options using analytical formulae
36 /*! The formulas are taken from "The complete guide to option pricing formulas 2nd Ed",
37 E.G. Haug, McGraw-Hill, p.156 and following.
38 Implements the Ikeda and Kunitomo series (see "Pricing Options with
39 Curved Boundaries" Mathematical Finance 2/1992").
40 This code handles only flat barriers
41
42 \ingroup barrierengines
43
44 \note the formula holds only when strike is in the barrier range
45
46 \test the correctness of the returned value is tested by
47 reproducing results available in literature.
48 */
50 public:
52 ext::shared_ptr<GeneralizedBlackScholesProcess> process, int series = 5);
53 void calculate() const override;
54
55 private:
56 ext::shared_ptr<GeneralizedBlackScholesProcess> process_;
59 // helper methods
60 Real underlying() const;
61 Real strike() const;
62 Time residualTime() const;
63 Volatility volatility() const;
64 Real volatilitySquared() const;
65 Real barrierLo() const;
66 Real barrierHi() const;
67 Real stdDeviation() const;
68 Rate riskFreeRate() const;
70 Rate dividendYield() const;
71 Rate costOfCarry() const;
73 Real vanillaEquivalent() const;
74 Real callKO() const;
75 Real putKO() const;
76 Real callKI() const;
77 Real putKI() const;
78 };
79
80}
81
82
83#endif
Black-Scholes processes.
Pricing engine for double barrier european options using analytical formulae.
ext::shared_ptr< GeneralizedBlackScholesProcess > process_
Cumulative normal distribution function.
Double-Barrier-option engine base class
double Barrier european option on a single asset
Real Time
continuous quantity with 1-year units
Definition: types.hpp:62
QL_REAL Real
real number
Definition: types.hpp:50
Real DiscountFactor
discount factor between dates
Definition: types.hpp:66
Real Volatility
volatility
Definition: types.hpp:78
Real Rate
interest rates
Definition: types.hpp:70
Definition: any.hpp:35
normal, cumulative and inverse cumulative distributions