C# 클래스 HestonEstimator.HestonCallOptimizationProblem

Describes the time-dependent Heston optimization problem.
상속: IOptimizationProblem
파일 보기 프로젝트 열기: fairmat/EquityModels 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
useBoundPenalty bool
useFellerPenalty bool

보호된 프로퍼티들

프로퍼티 타입 설명
callWeight System.Matrix
cpmd CallPriceMarketData
dividendYield Vector
k1 double
k2 double
matBound Vector
numCall int
numPut int
putWeight System.Matrix
rate Vector
s0 double
smallValue double
strike Vector
strikeBound Vector
totalVolume double
v0Max double
v0Min double
vLastMin double

공개 메소드들

메소드 설명
G ( DVPLI x ) : DVPLI.Vector

This method is unused but part of the interface.

Grad ( DVPLI x ) : DVPLI.Vector

This method is unused but part of the interface.

HestonCallOptimizationProblem ( EquityCalibrationData equityCalData, Vector matBound, Vector strikeBound ) : System

Initializes a new instance of the HestonCallOptimizationProblem class using the EquityCalibrationData data structure.

Obj ( DVPLI x ) : double

Calibration objective function.

보호된 메소드들

메소드 설명
FellerPenalty ( Vector x ) : double

Penalty function in order to satisfy Feller condition: 2k theta >= sigma^2

비공개 메소드들

메소드 설명
BoundPenalty ( Vector x ) : double

Penalty function relative to bounds.

CalculateSingleRow ( object context ) : void

Calculates a single row of the objective function. Basically options with the same maturity and different strikes.

CalculateSingleRowWithInterpolation ( object context ) : void

Calculates call put prices for several strikes using controlled interpolation.

CalculateWeight ( double volume ) : double

Allows different specification of call/put weighting

FindExtremes ( Vector vector, Vector bounds ) : int[]

Finds the couple of integer {i,j} so that the values vector[i], vector[i+1],..., vector[j-1], vector[j] are all included in the interval (bound[0], bound[1]) while vector[i-1] and vector[j+1] are not.

HestonCallOptimizationProblem ( System.Matrix callMarketPrice, Vector maturity, Vector strike, Vector rate, Vector dividendYield, double s0, Vector matBound, Vector strikeBound ) : System
PutCallTest ( ) : void

Test method, displays a sensitivity on heston call and put prices.

SetVariables ( System.Matrix callMarketPrice, Vector maturity, Vector strike, Vector rate, Vector dividendYield, double s0 ) : void

Sets several variables used to solve the optimization problem.

메소드 상세

FellerPenalty() 보호된 메소드

Penalty function in order to satisfy Feller condition: 2k theta >= sigma^2
protected FellerPenalty ( Vector x ) : double
x Vector /// Vector of parameters: x=[k, theta, sigma,...] ///
리턴 double

G() 공개 메소드

This method is unused but part of the interface.
public G ( DVPLI x ) : DVPLI.Vector
x DVPLI The parameter is not used.
리턴 DVPLI.Vector

Grad() 공개 메소드

This method is unused but part of the interface.
public Grad ( DVPLI x ) : DVPLI.Vector
x DVPLI The parameter is not used.
리턴 DVPLI.Vector

HestonCallOptimizationProblem() 공개 메소드

Initializes a new instance of the HestonCallOptimizationProblem class using the EquityCalibrationData data structure.
public HestonCallOptimizationProblem ( EquityCalibrationData equityCalData, Vector matBound, Vector strikeBound ) : System
equityCalData EquityCalibrationData /// An EquityCalibrationData object containing market data for calibration. ///
matBound Vector /// A vector containing the minimum and maximum values /// for maturities to be used in calibration. ///
strikeBound Vector /// A vector containing the minimum and maximum values /// for strikes to be used in calibration. ///
리턴 System

Obj() 공개 메소드

Calibration objective function.
public Obj ( DVPLI x ) : double
x DVPLI /// The vector of parameters. ///
리턴 double

프로퍼티 상세

callWeight 보호되어 있는 프로퍼티

Weights to be used in the calibration.
protected Matrix,System callWeight
리턴 System.Matrix

cpmd 보호되어 있는 프로퍼티

protected CallPriceMarketData cpmd
리턴 CallPriceMarketData

dividendYield 보호되어 있는 프로퍼티

The avereage dividend yield vector up to a given maturity
protected Vector dividendYield
리턴 Vector

k1 보호되어 있는 프로퍼티

Value that weights the boundary penalty function.
protected double k1
리턴 double

k2 보호되어 있는 프로퍼티

Value that weights the Feller inequality penalty function.
protected double k2
리턴 double

matBound 보호되어 있는 프로퍼티

protected Vector matBound
리턴 Vector

numCall 보호되어 있는 프로퍼티

The number of call option on which calibration is performed.
protected int numCall
리턴 int

numPut 보호되어 있는 프로퍼티

protected int numPut
리턴 int

putWeight 보호되어 있는 프로퍼티

Weights to be used in the calibration.
protected Matrix,System putWeight
리턴 System.Matrix

rate 보호되어 있는 프로퍼티

The average rate vector up to a given maturity
protected Vector rate
리턴 Vector

s0 보호되어 있는 프로퍼티

Process starting value.
protected double s0
리턴 double

smallValue 보호되어 있는 프로퍼티

Small value used in the boundary penalty function.
protected double smallValue
리턴 double

strike 보호되어 있는 프로퍼티

The strike vector relative to callMarketPrice matrix.
protected Vector strike
리턴 Vector

strikeBound 보호되어 있는 프로퍼티

protected Vector strikeBound
리턴 Vector

totalVolume 보호되어 있는 프로퍼티

Total volume for calls and puts.
protected double totalVolume
리턴 double

useBoundPenalty 공개적으로 프로퍼티

Averegate drift up to a given maturity Establish whether to use the boundary penalty function or not.
public bool useBoundPenalty
리턴 bool

useFellerPenalty 공개적으로 프로퍼티

Establish whether to use the Feller penalty function or not. Note: it's affect a lot the multi-level single linkage algorithm performance.
public bool useFellerPenalty
리턴 bool

v0Max 보호되어 있는 프로퍼티

protected double v0Max
리턴 double

v0Min 보호되어 있는 프로퍼티

If volatility is observed, it may be useful to use this information
protected double v0Min
리턴 double

vLastMin 보호되어 있는 프로퍼티

protected double vLastMin
리턴 double