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. More...

#include <ql/termstructures/volatility/smilesection.hpp>
#include <ql/pricingengines/blackformula.hpp>
#include <ql/math/solvers1d/brent.hpp>
#include <ql/experimental/models/smilesectionutils.hpp>
#include <boost/math/distributions/normal.hpp>
#include <vector>
Include dependency graph for kahalesmilesection.hpp:

Namespaces

 QuantLib
 

Macros

#define QL_KAHALE_FMAX   1000.0
 
#define QL_KAHALE_SMAX   5.0
 
#define QL_KAHALE_ACC   1E-12
 
#define QL_KAHALE_ACC_RELAX   1E-5
 
#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.