Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
dynamiccpivolatilitystructure.hpp
Go to the documentation of this file.
1/*
2Copyright (C) 2019 Quaternion Risk Management Ltd
3All rights reserved.
4
5This file is part of ORE, a free-software/open-source library
6for transparent pricing and risk analysis - http://opensourcerisk.org
7
8ORE is free software: you can redistribute it and/or modify it
9under the terms of the Modified BSD License. You should have received a
10copy of the license along with this program.
11The license is also available online at <http://opensourcerisk.org>
12
13This program is distributed on the basis that it will form a useful
14contribution to risk analytics and model standardisation, but WITHOUT
15ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file qle/termstructures/dynamiccpivolatilitystructure.hpp
20\brief dynamic zero inflation volatility structure
21\ingroup termstructures
22*/
23
24#pragma once
25
26#include <boost/make_shared.hpp>
27#include <ql/termstructures/volatility/inflation/cpivolatilitystructure.hpp>
28#include <ql/termstructures/volatility/smilesection.hpp>
31
32namespace QuantExt {
33using namespace QuantLib;
34
35//! Converts a CPIVolatilityStructure with fixed reference date into a floating reference date term structure.
36/*! Different ways of reacting to time decay can be specified.
37
38\ingroup termstructures
39*/
40
42public:
43 DynamicCPIVolatilitySurface(const QuantLib::ext::shared_ptr<CPIVolatilitySurface>& source,
45
46protected:
47 //! \name CPIVolatilitySurface interface
48 //@{
49 Volatility volatilityImpl(Time length, Rate strike) const override;
50 //@}
51
52 //! \name VolatilityTermStructure interface
53 //@{
54 Rate minStrike() const override;
55 Rate maxStrike() const override;
56 //@}
57
58 //! \name VolatilityTermStructure interface
59 //@{
60 Date maxDate() const override;
61 //@}
62
63 //! \name Observer interface
64 //@{
65 void update() override;
66 //@}
67
68private:
69 const QuantLib::ext::shared_ptr<CPIVolatilitySurface> source_;
72};
73
74} // namespace QuantExt
Converts a CPIVolatilityStructure with fixed reference date into a floating reference date term struc...
Volatility volatilityImpl(Time length, Rate strike) const override
const QuantLib::ext::shared_ptr< CPIVolatilitySurface > source_
dynamics type definitions
ReactionToTimeDecay
Reaction to Time Decay.
@ ConstantVariance
zero inflation volatility structure interpolated on a expiry/strike matrix of quotes