Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
datedstrippedoptionletbase.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2016 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file qle/termstructures/datedstrippedoptionletbase.hpp
20 \brief abstract class for optionlet surface with fixed reference date
21 \ingroup termstructures
22*/
23
24#pragma once
25
26#include <ql/patterns/lazyobject.hpp>
27#include <ql/termstructures/volatility/volatilitytype.hpp>
28#include <ql/time/businessdayconvention.hpp>
29#include <ql/time/calendar.hpp>
30#include <ql/time/date.hpp>
31#include <ql/time/daycounter.hpp>
32#include <ql/types.hpp>
33
34#include <vector>
35
36namespace QuantExt {
37using namespace QuantLib;
38using std::vector;
39//! Stripped Optionlet base class interface
40/*! Abstract base class interface for a (time indexed) vector of (strike indexed) optionlet
41 (i.e. caplet/floorlet) volatilities with a fixed reference date.
42
43 \ingroup termstructures
44*/
45class DatedStrippedOptionletBase : public LazyObject {
46public:
47 virtual const vector<Rate>& optionletStrikes(Size i) const = 0;
48 virtual const vector<Volatility>& optionletVolatilities(Size i) const = 0;
49
50 virtual const vector<Date>& optionletFixingDates() const = 0;
51 virtual const vector<Time>& optionletFixingTimes() const = 0;
52 virtual Size optionletMaturities() const = 0;
53
54 virtual const vector<Rate>& atmOptionletRates() const = 0;
55
56 virtual const Date& referenceDate() const = 0;
57 virtual const DayCounter& dayCounter() const = 0;
58 virtual const Calendar& calendar() const = 0;
59 virtual BusinessDayConvention businessDayConvention() const = 0;
60 virtual VolatilityType volatilityType() const = 0;
61 virtual Real displacement() const = 0;
62};
63} // namespace QuantExt
Stripped Optionlet base class interface.
virtual const Date & referenceDate() const =0
virtual BusinessDayConvention businessDayConvention() const =0
virtual const vector< Time > & optionletFixingTimes() const =0
virtual VolatilityType volatilityType() const =0
virtual const vector< Rate > & optionletStrikes(Size i) const =0
virtual Real displacement() const =0
virtual const vector< Volatility > & optionletVolatilities(Size i) const =0
virtual const vector< Date > & optionletFixingDates() const =0
virtual Size optionletMaturities() const =0
virtual const Calendar & calendar() const =0
virtual const vector< Rate > & atmOptionletRates() const =0
virtual const DayCounter & dayCounter() const =0