QuantLib
: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
ql
processes
ornsteinuhlenbeckprocess.cpp
1
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3
/*
4
Copyright (C) 2001, 2002, 2003 Sadruddin Rejeb
5
Copyright (C) 2003 Ferdinando Ametrano
6
Copyright (C) 2004, 2005, 2006, 2007 StatPro Italia srl
7
8
This file is part of QuantLib, a free-software/open-source library
9
for financial quantitative analysts and developers - http://quantlib.org/
10
11
QuantLib is free software: you can redistribute it and/or modify it
12
under the terms of the QuantLib license. You should have received a
13
copy of the license along with this program; if not, please email
14
<quantlib-dev@lists.sf.net>. The license is also available online at
15
<http://quantlib.org/license.shtml>.
16
17
This program is distributed in the hope that it will be useful, but WITHOUT
18
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
19
FOR A PARTICULAR PURPOSE. See the license for more details.
20
*/
21
22
#include <ql/processes/ornsteinuhlenbeckprocess.hpp>
23
24
namespace
QuantLib
{
25
26
OrnsteinUhlenbeckProcess::OrnsteinUhlenbeckProcess
(
Real
speed,
27
Volatility
vol,
28
Real
x0,
29
Real
level)
30
: x0_(x0), speed_(speed), level_(level), volatility_(vol) {
31
QL_REQUIRE(
volatility_
>= 0.0,
"negative volatility given"
);
32
}
33
34
Real
OrnsteinUhlenbeckProcess::variance
(
Time
,
Real
,
Time
dt)
const
{
35
if
(std::fabs(
speed_
) < std::sqrt(
QL_EPSILON
)) {
36
// algebraic limit for small speed
37
return
volatility_
*
volatility_
*dt;
38
}
else
{
39
return
0.5*
volatility_
*
volatility_
/
speed_
*
40
(1.0 - std::exp(-2.0*
speed_
*dt));
41
}
42
}
43
44
}
45
QuantLib::OrnsteinUhlenbeckProcess::speed_
Real speed_
Definition:
ornsteinuhlenbeckprocess.hpp:61
QuantLib::OrnsteinUhlenbeckProcess::OrnsteinUhlenbeckProcess
OrnsteinUhlenbeckProcess(Real speed, Volatility vol, Real x0=0.0, Real level=0.0)
Definition:
ornsteinuhlenbeckprocess.cpp:26
QuantLib::OrnsteinUhlenbeckProcess::variance
Real variance(Time t0, Real x0, Time dt) const override
Definition:
ornsteinuhlenbeckprocess.cpp:34
QuantLib::OrnsteinUhlenbeckProcess::volatility_
Volatility volatility_
Definition:
ornsteinuhlenbeckprocess.hpp:62
QL_EPSILON
#define QL_EPSILON
Definition:
qldefines.hpp:178
QuantLib::Time
Real Time
continuous quantity with 1-year units
Definition:
types.hpp:62
QuantLib::Real
QL_REAL Real
real number
Definition:
types.hpp:50
QuantLib::Volatility
Real Volatility
volatility
Definition:
types.hpp:78
QuantLib
Definition:
any.hpp:35
Generated by
Doxygen
1.9.5