QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Classes | Namespaces | Macros
kahalesmilesection.hpp File Reference

Arbitrage free smile section using a C^1 inter- and extrapolation method proposed by Kahale, see http://www.risk.net/data/Pay_per_view/risk/technical/2004/0504_tech_option2.pdf Exponential extrapolation for high strikes can be used alternatively to avoid a too slowly decreasing call price function. Note that in the leftmost interval and right from the last grid point the input smile is always replaced by the extrapolating functional forms, so if you are sure that the input smile is globally arbitrage free and you do not want to change it in these strike regions you should not use this class at all. Input smile sections with a shift are handled accordingly, normal input smile section are not possible though. More...

#include <ql/termstructures/volatility/smilesection.hpp>
#include <ql/pricingengines/blackformula.hpp>
#include <ql/math/solvers1d/brent.hpp>
#include <ql/termstructures/volatility/smilesectionutils.hpp>
#include <boost/math/distributions/normal.hpp>
#include <vector>
#include <utility>

Go to the source code of this file.

Classes

class  KahaleSmileSection
 
struct  KahaleSmileSection::cFunction
 
struct  KahaleSmileSection::aHelper
 
struct  KahaleSmileSection::sHelper
 
struct  KahaleSmileSection::sHelper1
 

Namespaces

namespace  QuantLib
 

Macros

#define QL_KAHALE_FMAX   QL_MAX_REAL
 
#define QL_KAHALE_SMAX   5.0
 
#define QL_KAHALE_ACC   1E-12
 
#define QL_KAHALE_EPS   QL_EPSILON
 

Detailed Description

Arbitrage free smile section using a C^1 inter- and extrapolation method proposed by Kahale, see http://www.risk.net/data/Pay_per_view/risk/technical/2004/0504_tech_option2.pdf Exponential extrapolation for high strikes can be used alternatively to avoid a too slowly decreasing call price function. Note that in the leftmost interval and right from the last grid point the input smile is always replaced by the extrapolating functional forms, so if you are sure that the input smile is globally arbitrage free and you do not want to change it in these strike regions you should not use this class at all. Input smile sections with a shift are handled accordingly, normal input smile section are not possible though.

Definition in file kahalesmilesection.hpp.

Macro Definition Documentation

◆ QL_KAHALE_FMAX

#define QL_KAHALE_FMAX   QL_MAX_REAL

Definition at line 46 of file kahalesmilesection.hpp.

◆ QL_KAHALE_SMAX

#define QL_KAHALE_SMAX   5.0

Definition at line 47 of file kahalesmilesection.hpp.

◆ QL_KAHALE_ACC

#define QL_KAHALE_ACC   1E-12

Definition at line 48 of file kahalesmilesection.hpp.

◆ QL_KAHALE_EPS

#define QL_KAHALE_EPS   QL_EPSILON

Definition at line 49 of file kahalesmilesection.hpp.