Main Content


Construct range note instrument


ISet = instrangefloat(Spread,Settle,Maturity,RateSched,Reset,Basis,Principal,EndMonthRule)
ISet = instrangefloat(ISet,Spread,Settle,Maturity,RateSched,Reset,Basis,Principal,EndMonthRule)


ISet = instrangefloat(Spread,Settle,Maturity,RateSched,Reset,Basis,Principal,EndMonthRule) creates a range instrument from data arrays.

ISet = instrangefloat(ISet,Spread,Settle,Maturity,RateSched,Reset,Basis,Principal,EndMonthRule) adds a new range instrument to an existing instrument set.

Input Arguments


Number of basis points over the reference rate.


NINST-by-1 vector of dates representing the settle date of the floating-rate note.


NINST-by-1 vector of dates representing the maturity date of the floating-rate note.


NINST-by-1 vector of structures representing the range of rates within which cash flows are nonzero. Each element of the structure array contains two fields:

  • RateSched.DatesNDates-by-1 cell array of dates corresponding to the range schedule.

  • RateSched.RatesNDates-by-2 array with the first column containing the lower bound of the range and the second column containing the upper bound of the range. Cash flow for date RateSched.Dates(n) is nonzero for rates in the range RateSched.Rates(n,1) < Rate < RateSched.Rate (n,2).


(Optional) NINST-by-1 vector representing the frequency of payments per year.

Default: 1


(Optional) Day-count basis of the instrument. A vector of integers.

  • 0 = actual/actual

  • 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)

  • 13 = BUS/252

For more information, see Basis.

Default: 0 (actual/actual)


(Optional) NINST-by-1 vector of the notional principal amount.

Default: 100


(Optional) NINST-by-1 vector for end-of-month rule. Values are 1 (in effect) and 0 (not in effect).

Default: 1 (in effect)


Data arguments are number of instruments NINST-by-1 vectors, scalar, or empty. Fill in unspecified entries vectors with NaN. Only one data argument is required to create the instrument. You can omit or pass the others as empty matrices []. However, you cannot price the instrument when using the range note pricing function if you are missing any of the required input arguments.

Output Arguments


Variable containing a collection of instruments. Instruments are divided by type and each type can have different data fields. Each stored data field has a row vector or character vector for each instrument. Values are:

  • FieldListNFIELDS-by-1 cell array of character vectors listing the name of each data field for this instrument type.

  • ClassListNFIELDS-by-1 cell array of character vectors listing the data class of each field. The class determines how arguments are parsed. Valid character vectors are'dble', 'date', and 'char'.

  • TypeString — Character vector specifying the type of instrument added. TypeString = 'RangeFloat'.

For more information, on ISet see instget.


collapse all

Create an instrument portfolio with a range note.

Spread = 100;
Settle = 'Jan-1-2011';
Maturity = 'Jan-1-2014';

RateSched.Dates = {'Jan-1-2012'; 'Jan-1-2013'  ; 'Jan-1-2014'};
RateSched.Rates  = [0.045 0.055; 0.0525  0.0675; 0.06 0.08];

% Create InstSet
InstSet = instrangefloat(Spread, Settle, Maturity, RateSched);

% Display the portfolio instrument
Index Type       Spread Settle         Maturity       RateSched FloatReset Basis Principal EndMonthRule
1     RangeFloat 100    01-Jan-2011    01-Jan-2014    [Struct]  1          0     100       1           

Add a second range note instrument to the portfolio. Second Range Note:

Spread2 = 200;
Settle2 = 'Jan-1-2011';
Maturity2 = 'Jan-1-2013';
RateSched2.Dates = {'Jan-1-2012'; 'Jan-1-2013'};
RateSched2.Rates  = [0.048 0.059; 0.055  0.068];

InstSet = instrangefloat(InstSet, Spread2, Settle2, Maturity2, RateSched2);

% Display the portfolio instrument
Index Type       Spread Settle         Maturity       RateSched FloatReset Basis Principal EndMonthRule
1     RangeFloat 100    01-Jan-2011    01-Jan-2014    [Struct]  1          0     100       1           
2     RangeFloat 200    01-Jan-2011    01-Jan-2013    [Struct]  1          0     100       1           

More About

collapse all

Range Note Instrument

A range note is a structured (market-linked) security whose coupon rate is equal to the reference rate as long as the reference rate is within a certain range.

If the reference rate is outside of the range, the coupon rate is 0 for that period. This type of instrument entitles the holder to cash flows that depend on the level of some reference interest rate and are floored to be positive. The note holder gets direct exposure to the reference rate. In return for the drawback that no interest is paid for the time the range is left, they offer higher coupon rates than comparable standard products, like vanilla floating notes.


Jarrow, Robert. “Modelling Fixed Income Securities and Interest Rate Options.” Stanford Economics and Finance. 2nd Edition. 2002.

Introduced in R2012a