QuantLib
: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
ql
pricingengines
cliquet
mcperformanceengine.cpp
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
#include <ql/pricingengines/cliquet/mcperformanceengine.hpp>
21
#include <utility>
22
23
namespace
QuantLib
{
24
25
PerformanceOptionPathPricer::PerformanceOptionPathPricer
(
Option::Type
type,
26
Real
strike,
27
std::vector<DiscountFactor> discounts)
28
: strike_(strike), type_(type), discounts_(
std
::move(discounts)) {}
29
30
Real
PerformanceOptionPathPricer::operator()
(
const
Path
& path)
const
{
31
32
Size
n = path.
length
();
33
QL_REQUIRE(n==
discounts_
.size()+1,
"discounts/options mismatch"
);
34
PlainVanillaPayoff
payoff(
type_
,
strike_
);
35
36
Real
sum = 0.0;
37
for
(
Size
i = 2 ; i < n; i++) {
38
sum +=
discounts_
[i-1] * payoff(path[i]/path[i-1]);
39
}
40
41
return
sum;
42
}
43
44
}
45
QuantLib::Option::Type
Type
Definition:
option.hpp:39
QuantLib::Path
single-factor random walk
Definition:
path.hpp:40
QuantLib::Path::length
Size length() const
Definition:
path.hpp:94
QuantLib::PerformanceOptionPathPricer::PerformanceOptionPathPricer
PerformanceOptionPathPricer(Option::Type type, Real strike, std::vector< DiscountFactor > discounts)
Definition:
mcperformanceengine.cpp:25
QuantLib::PerformanceOptionPathPricer::discounts_
std::vector< DiscountFactor > discounts_
Definition:
mcperformanceengine.hpp:117
QuantLib::PerformanceOptionPathPricer::type_
Option::Type type_
Definition:
mcperformanceengine.hpp:116
QuantLib::PerformanceOptionPathPricer::operator()
Real operator()(const Path &path) const override
Definition:
mcperformanceengine.cpp:30
QuantLib::PerformanceOptionPathPricer::strike_
Real strike_
Definition:
mcperformanceengine.hpp:115
QuantLib::PlainVanillaPayoff
Plain-vanilla payoff.
Definition:
payoffs.hpp:105
QuantLib::Real
QL_REAL Real
real number
Definition:
types.hpp:50
QuantLib::Size
std::size_t Size
size of a container
Definition:
types.hpp:58
QuantLib
Definition:
any.hpp:35
std
STL namespace.
Generated by
Doxygen
1.9.5