This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.


Specify Heath-Jarrow-Morton interest-rate volatility process


Volspec = hjmvolspec(varargin)


The arguments to hjmvolspec vary according to the type and number of volatility factors specified when calling the function. Factors are specified by pairs of names and parameter sets. Factor names can be 'Constant', 'Stationary', 'Exponential', 'Vasicek', or 'Proportional'. The parameter set is specific for each of these factor types:

  • Constant volatility (Ho-Lee):

    VolSpec = hjmvolspec('Constant', Sigma_0)

  • Stationary volatility:

    VolSpec = hjmvolspec('Stationary', CurveVol, CurveTerm)

  • Exponential volatility:

    VolSpec = hjmvolspec('Exponential', Sigma_0, Lambda)

  • Vasicek, Hull-White:

    VolSpec = hjmvolspec('Vasicek', Sigma_0, CurveDecay, CurveTerm)

  • Nearly proportional stationary:

    VolSpec = hjmvolspec('Proportional', CurveProp, CurveTerm, MaxSpot)

You can specify more than one factor by concatenating names and parameter sets.

The following table defines the various arguments to hjmvolspec.




Scalar base volatility over a unit time.


Scalar decay factor.


Number of curves (NCURVES)-by1 vector of Vol values at sample points.


NCURVES-by-1 vector of Decay values at sample points.


NCURVES-by-1 vector of Prop values at sample points.


NCURVES-by-1 vector of Term sample points.


See the volatility specifications formulas below for a description of Vol, Decay, Prop, and Term.


Volspec = hjmvolspec(varargin) computes VolSpec, a structure that specifies the volatility model for hjmtree.

hjmvolspec specifies an HJM forward-rate volatility process. Each factor is specified with one of the functional forms.

Volatility SpecificationFormula


σ(t,T) = Sigma_0


σ(t,T) = Vol(T-t) = Vol(Term)


σ(t,T) = Sigma_0*exp(-Lambda*(T-t))

Vasicek, Hull-White

σ(t,T) = Sigma_0*exp(-Decay(T-t))


σ(t,T) = Prop(T-t)*max(SpotRate(t), MaxSpot)

The volatility process is σ(t,T), 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).


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]

Introduced before R2006a

Was this topic helpful?