Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

# blackvolbyrebonato

Compute Black volatility for LIBOR Market Model using Rebonato formula

## Syntax

• outVol = blackvolbyrebonato(ZeroCurve,VolFunc,CorrMat,
ExerciseDate,Maturity)
example
• outVol = blackvolbyrebonato(___,Name,Value) example

## Description

example

outVol = blackvolbyrebonato(ZeroCurve,VolFunc,CorrMat,
ExerciseDate,Maturity)
computes the Black volatility for a swaption using a LIBOR Market Model.

example

outVol = blackvolbyrebonato(___,Name,Value) computes the Black volatility for a swaption using a LIBOR Market Model with optional name-value pair arguments.

## Examples

expand all

### Price Swaption for LIBOR Market Model Using the Rebonato Formula

Define the input maturity and tenor for a LIBOR Market Model (LMM) specified by the cell array of volatility function handles, and a correlation matrix for the LMM.

```Settle = datenum('11-Aug-2004');

% Zero Curve
CurveTimes = (1:10)';

ZeroRates = [0.03 0.033 0.036 0.038 0.04 0.042 0.043 0.044 0.045 0.046]';

% Construct an IRCurve
irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates);

LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4);
LMMVolParams = [.3 -.02 .7 .14];

numRates = length(ZeroRates);
VolFunc(1:numRates-1) = {@(t) LMMVolFunc(LMMVolParams,t)};

Beta = .08;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
CorrMat = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),Beta);

ExerciseDate = datenum('11-Aug-2009');

Vol = blackvolbyrebonato(irdc,VolFunc,CorrMat,ExerciseDate,Maturity,'Period',1)
```
```Vol =

0.2113
0.1990

```

## Input Arguments

expand all

### ZeroCurve — Zero-curve for LiborMarketModel modelstructure

Zero-curve for the LiborMarketModel, specified using IRDataCurve or RateSpec.

Data Types: struct

### VolFunc — Function handle for volatilitycell array of function handles

Function handle for volatility, specified by a NumRates-by-1 cell array of function handles. Each function handle must take time as an input and return a scalar volatility

Data Types: cell | function_handle

### CorrMat — Correlation matrixvector

Correlation matrix, specified by NumRates-by-NumRates.

Data Types: single | double

### ExerciseDate — Swaption exercise datenonnegative integer | vector of nonnegative integers | string of dates

Swaption exercise dates, specified by a NumSwaptions-by-1 vector of serial date numbers or date strings.

Data Types: single | double | cell

### Maturity — Swaption maturity datenonnegative integer | vector of nonnegative integers | string of dates

Swaption maturity dates, specified using a NumSwaptions-by-1 vector of dates or date strings.

Data Types: single | double | cell

### Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: Vol = blackvolbyrebonato(irdc,VolFunc,CorrMat,ExerciseDate,Maturity,'Period',1)

### 'Period' — Compounding frequency of curve and reset of swaptions2 (default) | positive integer from the set [1,2,3,4,6,12] | vector of positive integers from the set [1,2,3,4,6,12]

Compounding frequency of curve and reset of swaptions, specified as a positive integers for the values 1,2,4,6,12 in a NumSwaptions-by-1 vector.

Data Types: single | double

## Output Arguments

expand all

### outVol — Black volatility for specified swaptionscalar | vector

Black volatility, returned as a vector for the specified swaptions.

expand all

### Algorithms

The Rebonato approximation formula relates the Black volatility for a European swaption, given a set of volatility functions and a correlation matrix

where:

## References

[1] Brigo, D. and F. Mercurio, Interest Rate Models - Theory and Practice, Springer Finance, 2006.