QuantLib
: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
ql
experimental
finitedifferences
vanillavppoption.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) 2011 Klaus Spanderen
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 vanillavppoption.hpp
21
\brief vanilla virtual power plant option
22
*/
23
24
#ifndef quantlib_vanilla_vpp_option_hpp
25
#define quantlib_vanilla_vpp_option_hpp
26
27
#include <
ql/instruments/multiassetoption.hpp
>
28
29
namespace
QuantLib
{
30
class
BasketPayoff;
31
class
SwingExercise;
32
33
class
VanillaVPPOption
:
public
MultiAssetOption
{
34
public
:
35
class
arguments
;
36
VanillaVPPOption
(
Real
heatRate,
37
Real
pMin,
Real
pMax,
38
Size
tMinUp,
Size
tMinDown,
39
Real
startUpFuel,
Real
startUpFixCost,
40
const
ext::shared_ptr<SwingExercise>&
exercise
,
41
Size
nStarts =
Null<Size>
(),
42
Size
nRunningHours =
Null<Size>
());
43
44
bool
isExpired
()
const override
;
45
void
setupArguments
(
PricingEngine::arguments
*)
const override
;
46
47
private
:
48
const
Real
heatRate_
;
49
const
Real
pMin_
,
pMax_
;
50
const
Size
tMinUp_
,
tMinDown_
;
51
const
Real
startUpFuel_
,
startUpFixCost_
;
52
const
Size
nStarts_
,
nRunningHours_
;
53
};
54
55
class
VanillaVPPOption::arguments
56
:
public
virtual
MultiAssetOption::arguments
{
57
public
:
58
arguments
() =
default
;
59
void
validate
()
const override
;
60
61
Real
heatRate
;
62
Real
pMin
,
pMax
;
63
Size
tMinUp
,
tMinDown
;
64
Real
startUpFuel
,
startUpFixCost
;
65
Size
nStarts
,
nRunningHours
;
66
};
67
}
68
69
#endif
QuantLib::MultiAssetOption
Base class for options on multiple assets.
Definition:
multiassetoption.hpp:34
QuantLib::Null
template class providing a null value for a given type.
Definition:
null.hpp:76
QuantLib::Option::arguments
basic option arguments
Definition:
option.hpp:57
QuantLib::Option::exercise
ext::shared_ptr< Exercise > exercise() const
Definition:
option.hpp:46
QuantLib::PricingEngine::arguments
Definition:
pricingengine.hpp:45
QuantLib::VanillaVPPOption::arguments
Definition:
vanillavppoption.hpp:56
QuantLib::VanillaVPPOption::arguments::tMinUp
Size tMinUp
Definition:
vanillavppoption.hpp:63
QuantLib::VanillaVPPOption::arguments::arguments
arguments()=default
QuantLib::VanillaVPPOption::arguments::startUpFixCost
Real startUpFixCost
Definition:
vanillavppoption.hpp:64
QuantLib::VanillaVPPOption::arguments::nStarts
Size nStarts
Definition:
vanillavppoption.hpp:65
QuantLib::VanillaVPPOption::arguments::pMax
Real pMax
Definition:
vanillavppoption.hpp:62
QuantLib::VanillaVPPOption::arguments::nRunningHours
Size nRunningHours
Definition:
vanillavppoption.hpp:65
QuantLib::VanillaVPPOption::arguments::tMinDown
Size tMinDown
Definition:
vanillavppoption.hpp:63
QuantLib::VanillaVPPOption::arguments::pMin
Real pMin
Definition:
vanillavppoption.hpp:62
QuantLib::VanillaVPPOption::arguments::startUpFuel
Real startUpFuel
Definition:
vanillavppoption.hpp:64
QuantLib::VanillaVPPOption::arguments::validate
void validate() const override
Definition:
vanillavppoption.cpp:62
QuantLib::VanillaVPPOption::arguments::heatRate
Real heatRate
Definition:
vanillavppoption.hpp:61
QuantLib::VanillaVPPOption
Definition:
vanillavppoption.hpp:33
QuantLib::VanillaVPPOption::setupArguments
void setupArguments(PricingEngine::arguments *) const override
Definition:
vanillavppoption.cpp:68
QuantLib::VanillaVPPOption::isExpired
bool isExpired() const override
returns whether the instrument might have value greater than zero.
Definition:
vanillavppoption.cpp:87
QuantLib::VanillaVPPOption::nRunningHours_
const Size nRunningHours_
Definition:
vanillavppoption.hpp:52
QuantLib::VanillaVPPOption::tMinDown_
const Size tMinDown_
Definition:
vanillavppoption.hpp:50
QuantLib::VanillaVPPOption::heatRate_
const Real heatRate_
Definition:
vanillavppoption.hpp:48
QuantLib::VanillaVPPOption::tMinUp_
const Size tMinUp_
Definition:
vanillavppoption.hpp:50
QuantLib::VanillaVPPOption::startUpFixCost_
const Real startUpFixCost_
Definition:
vanillavppoption.hpp:51
QuantLib::VanillaVPPOption::pMax_
const Real pMax_
Definition:
vanillavppoption.hpp:49
QuantLib::VanillaVPPOption::pMin_
const Real pMin_
Definition:
vanillavppoption.hpp:49
QuantLib::VanillaVPPOption::startUpFuel_
const Real startUpFuel_
Definition:
vanillavppoption.hpp:51
QuantLib::VanillaVPPOption::nStarts_
const Size nStarts_
Definition:
vanillavppoption.hpp:52
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
multiassetoption.hpp
Option on multiple assets.
QuantLib
Definition:
any.hpp:35
Generated by
Doxygen
1.9.5