Main Content


Price swap given swap rate



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.


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.


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:

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