hjmvolspec

Specify Heath-Jarrow-Morton interest-rate volatility process

Description

example

VolSpec = hjmvolspec(Factor,Sigma_0) creates a Constant volatility (Ho-Lee) structure for hjmtree by specifying the Factor as 'Constant'.

example

VolSpec = hjmvolspec(Factor,CurveVol,CurveTerm) creates a Stationary volatility structure for hjmtree by specifying the Factor as 'Stationary'.

example

VolSpec = hjmvolspec(Factor,Sigma_0,Lambda) creates an Exponential volatility structure for hjmtree by specifying the Factor as 'Exponential'.

example

VolSpec = hjmvolspec(Factor,Sigma_0,CurveDecay,CurveTerm) creates a Vasicek, Hull-White volatility structure for hjmtree by specifying the Factor as 'Vasicek'.

example

VolSpec = hjmvolspec(Factor,CurveProp,CurveTerm,MaxSpot) creates a Nearly proportional stationary volatility structure for hjmtree by specifying the Factor as 'Proportional'.

Examples

collapse all

This example shows how to compute the VolSpec structure to specify the volatility model for hjmtree when volatility is single-factor proportional.

CurveProp = [0.11765; 0.08825; 0.06865];
CurveTerm = [1; 2; 3];
VolSpec = hjmvolspec('Proportional', CurveProp, CurveTerm, 1e6)
VolSpec = struct with fields:
FinObj: 'HJMVolSpec'
FactorModels: {'Proportional'}
FactorArgs: {{1x3 cell}}
SigmaShift: 0
NumFactors: 1
NumBranch: 2
PBranch: [0.5000 0.5000]
Fact2Branch: [-1 1]

This example shows how to compute the VolSpec structure to specify the volatility model for hjmtree when volatility is two-factor exponential and constant.

VolSpec = hjmvolspec('Exponential', 0.1, 1, 'Constant', 0.2)
VolSpec = struct with fields:
FinObj: 'HJMVolSpec'
FactorModels: {'Exponential'  'Constant'}
FactorArgs: {{1x2 cell}  {1x1 cell}}
SigmaShift: 0
NumFactors: 2
NumBranch: 3
PBranch: [0.2500 0.2500 0.5000]
Fact2Branch: [2x3 double]

Input Arguments

collapse all

Volatility factor, specified as a character vector with one of the following values:

• 'Constant'

$\sigma \left(t,T\right)$ = Sigma_0

• 'Stationary'

$\sigma \left(t,T\right)$ = Vol(T- t) = Vol(Term)

• 'Exponential'

$\sigma \left(t,T\right)$ = Sigma_0*exp(-Lambda*(T-t))

• 'Vasicek'

$\sigma \left(t,T\right)$ = Sigma_0*exp(-Decay(T-t))

• 'Proportional'

$\sigma \left(t,T\right)$ = Prop(T-t)*max(SpotRate(t),MaxSpot)

Note

You can specify more than one Factor by concatenating Factor names and their associated parameters.

Data Types: char

Base volatility over a unit, specified as a scalar numeric value.

Data Types: double

Decay factor, specified as a scalar numeric value.

Data Types: double

Number of curve Vol values at sample points, specified as a NCURVES-by1 vector.

Data Types: double

Number of curve Term values at sample points, specified as a NCURVES-by-1 vector.

Data Types: double

Number of curve Decay values at sample points, specified as a NPOINTS-by-1 vector.

Data Types: double

Number of curve Prop values at sample points, specified as a NCURVES-by-1 vector.

Data Types: double

Maximum spot rate, specified as a scalar numeric value.

Data Types: double

Output Arguments

collapse all

Structure specifying the volatility model for bktree. hjmvolspec defines an HJM forward-rate volatility process based on the specified input Factor.

collapse all

Volatility Process

The volatility process is $\sigma \left(t,T\right)$, where t is the observation time and T is the starting time of a forward rate.

In a stationary process, the volatility term is T–t. Multiple factors can be specified sequentially.

The time values T, t, and Term are in coupon interval units specified by the Compounding input of hjmtimespec. For instance if Compounding = 2, Term = 1 is a semiannual period (six months).

Introduced before R2006a