24#ifndef quantlib_andreasen_huge_local_volatility_hpp
25#define quantlib_andreasen_huge_local_volatility_hpp
42 class YieldTermStructure;
43 class FdmMesherComposite;
44 class AndreasenHugeCostFunction;
61 typedef std::vector<std::pair<
62 ext::shared_ptr<VanillaOption>, ext::shared_ptr<Quote> > >
72 Size nGridPoints = 500,
75 ext::shared_ptr<OptimizationMethod> optimizationMethod =
99 typedef std::map<
Time,
102 ext::shared_ptr<Array>,
112 const Array& previousNPVs)
const;
117 Real strike,
const TimeValueCacheType::const_iterator&
f)
const;
143 mutable ext::shared_ptr<FdmMesherComposite>
mesher_;
Calibration of a local volatility surface to a sparse grid of options.
const Handle< Quote > spot_
ext::tuple< Real, Real, Real > calibrationError() const
void performCalculations() const override
const Handle< YieldTermStructure > qTS_
Array getPriceSlice(Time t, Option::Type optionType) const
std::vector< Real > strikes_
Volatility localVol(Time t, Real strike) const
ext::shared_ptr< FdmMesherComposite > mesher_
Array getLocalVolSlice(Time t, Option::Type optionType) const
TimeValueCacheType priceCache_
const EndCriteria endCriteria_
std::vector< std::pair< ext::shared_ptr< VanillaOption >, ext::shared_ptr< Quote > > > CalibrationSet
std::vector< Date > expiries_
std::map< Time, ext::tuple< Real, ext::shared_ptr< Array >, ext::shared_ptr< Interpolation > > > TimeValueCacheType
Real getCacheValue(Real strike, const TimeValueCacheType::const_iterator &f) const
TimeValueCacheType localVolCache_
ext::shared_ptr< AndreasenHugeCostFunction > buildCostFunction(Size iExpiry, Option::Type optionType, const Array &previousNPVs) const
const InterpolationType interpolationType_
std::vector< SingleStepCalibrationResult > calibrationResults_
const CalibrationType calibrationType_
std::vector< Time > expiryTimes_
const ext::shared_ptr< OptimizationMethod > optimizationMethod_
std::vector< std::vector< Size > > calibrationMatrix_
CalibrationSet calibrationSet_
const Handle< YieldTermStructure > rTS_
Size getExerciseTimeIdx(Time t) const
Real optionPrice(Time t, Real strike, Option::Type optionType) const
const Handle< YieldTermStructure > & riskFreeRate() const
1-D array used in linear algebra.
Criteria to end optimization process:
Shared handle to an observable.
Framework for calculation on demand and result caching.
Levenberg-Marquardt optimization method.
template class providing a null value for a given type.
Real Time
continuous quantity with 1-year units
Real Volatility
volatility
std::size_t Size
size of a container
Globally accessible relinkable pointer.
framework for calculation on demand and result caching
Levenberg-Marquardt optimization method.
linear interpolation between discrete points
Local volatility term structure base class.
matrix used in linear algebra.
purely virtual base class for market observables
ext::shared_ptr< AndreasenHugeCostFunction > costFunction
Maps tuple to either the boost or std implementation.