Documentation

# liborprice

Price swap given swap rate

## Syntax

``Price = liborprice(ThreeMonthRates,Settle,Tenor,SwapRate)``
``Price = liborprice(___,StartDate,Interpolation,ConvexAdj,RateParam,InArrears,Sigma,FixedCompound,FixedBasis)``

## Description

example

````Price = liborprice(ThreeMonthRates,Settle,Tenor,SwapRate)` computes the price per \$100 notional value of a swap given the swap rate. A positive result indicates that fixed side is more valuable than the floating side.```

example

````Price = liborprice(___,StartDate,Interpolation,ConvexAdj,RateParam,InArrears,Sigma,FixedCompound,FixedBasis)` specifies options using one or more optional arguments in addition to the input arguments in the previous syntax.```

## Examples

collapse all

This example shows that a swap paying the par swap rate has a value of `0`.

```% load the input data [EDFutData, textdata] = xlsread('EDdata.xls'); Settle = datenum('15-Oct-2002'); Tenor = 2; % compute the fixed rate from the Eurodollar data FixedSpec = liborfloat2fixed(EDFutData(:,1:3), Settle, Tenor)```
```FixedSpec = struct with fields: Coupon: 0.0222 Settle: '16-Oct-2002' Maturity: '16-Oct-2004' Period: 4 Basis: 1 ```
```% compute the price of a par swap Price = liborprice(EDFutData(:,1:3), Settle, Tenor, FixedSpec.Coupon)```
```Price = 2.7756e-15 ```

`Price` is effectively equal to 0.

## Input Arguments

collapse all

Three-month Eurodollar futures data or forward rate agreement data, specified as an `N`-by-`3` matrix in the form of `[month year IMMQuote]`. A forward rate agreement stipulates that a certain interest rate applies to a certain principal amount for a given future time period. The floating rate is assumed to compound quarterly and to accrue on an actual/360 basis.

Data Types: `double`

Settlement date of fixed-rate of swap, specified as a scalar numeric using serial date numbers.

Data Types: `double`

Life of the swap contract, specified as a scalar integer.

Data Types: `double`

Swap rate, specified as a scalar decimal.

Data Types: `double`

(Optional) Reference date for valuation of forward swap, specified as a scalar numeric using serial date numbers. This in effect allows forward swap valuation.

Data Types: `double`

(Optional) Interpolation method to determine applicable forward rate for months when no Eurodollar data is available, specified as a scalar numeric with values of:

• `0` is `'nearest'`

• `1` is `'linear'`

• `2` is `'cubic'`

.

Data Types: `double`

(Optional) Indicates whether futures/forward convexity adjustment is required, specified as a scalar logical. Use `ConvexAdj` for forward rate adjustments when those rates are taken from Eurodollar futures data.

Data Types: `logical`

(Optional) Short-rate model's parameters (Hull-White), specified a `1`-by-`2` vector to denote the parameters `[a S]`, where the short-rate process is:
$dr=\left[\theta \left(t\right)-ar\right]dt+Sdz.$

Data Types: `double`

(Optional) Indicates whether the swap is in arrears, specified as a scalar logical.

Data Types: `logical`

(Optional) Overall annual volatility of caplets, specified as a scalar numeric.

Data Types: `double`

(Optional) Compounding or frequency of payment on the fixed side, specified as a scalar numeric with one of the following possible values:

• `1` is annual

• `2` is semiannual

• `4` is quarterly

• `12` is monthly

Data Types: `double`

(Optional) Basis of the fixed side, specified as a scalar numeric using one of the supported values:.

• 0 = actual/actual (default)

• 1 = 30/360 (SIA)

• 2 = actual/360

• 3 = actual/365

• 4 = 30/360 (BMA)

• 5 = 30/360 (ISDA)

• 6 = 30/360 (European)

• 7 = actual/365 (Japanese)

• 8 = actual/actual (ICMA)

• 9 = actual/360 (ICMA)

• 10 = actual/365 (ICMA)

• 11 = 30/360E (ICMA)

• 12 = actual/365 (ISDA)

Data Types: `double`

## Output Arguments

collapse all

Present value of the difference between floating and fixed-rate sides of the swap per \$100 notional, returned as a numeric value.