Main Content

liborprice

Price swap given swap rate

Description

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.

example

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 = datetime(2002,10,15);
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 = 3.4694e-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 datetime, string, or date character vector.

To support existing code, liborprice also accepts serial date numbers as inputs, but they are not recommended.

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 datetime, string, or date character vector. This in effect allows forward swap valuation.

To support existing code, liborprice also accepts serial date numbers as inputs, but they are not recommended.

(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=[θ(t)ar]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)

For more information, see Basis.

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.

Version History

Introduced before R2006a

expand all