Main Content

cfprice

Compute price for cash flow given yield to maturity

Description

example

Price = cfprice(CFlowAmounts,CFlowDates,Yield,Settle) computes a price given yield for a cash flow.

example

Price = cfprice(___,Name,Value) specifies options using one or more name-value pair arguments in addition to the input arguments in the previous syntax.

Examples

collapse all

Use cfprice to compute the price for a cash flow given yield to maturity.

Define data for the yield curve.

Settle = datetime(2003,7,1);
Yield = .05;
CFAmounts = [30;40;30];
CFDates = [datetime(2004,7,15) ; datetime(2005,7,15) ; datetime(2006,7,15)];

Compute the Price.

Price = cfprice(CFAmounts, CFDates, Yield, Settle)
Price = 3×1

   28.4999
   36.1689
   25.8195

Input Arguments

collapse all

Cash flow amounts, specified as an NINST-by-MOSTCFS matrix. Each row is a list of cash flow values for one instrument. If an instrument has fewer than MOSTCFS cash flows, the end of the row is padded with NaNs.

Data Types: double

Cash flow dates, specified as an NINST-by-MOSTCFS matrix using a datetime array, string array, or date character vectors. Each entry contains the date of the corresponding cash flow in CFlowAmounts.

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

Data Types: char | string | datetime

Yields specified as an NINST-by-1 vector.

Data Types: double

Settlement date, specified as an NMBS-by-1 vector using a datetime array, string array, or date character vectors. The Settle date is the date on which the cash flows are priced.

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

Data Types: char | string | datetime

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: Price = cfprice(CFlowAmounts,CFlowDates,Yield,Settle,'Basis',4,'CompoundingFrequency',4)

Note

An optional input of size NINST-by-1 is also acceptable as a single value applicable to all contracts. Single values are internally expanded to an array of size NINST-by-1.

Day-count basis, specified as the comma-separated pair consisting of 'Basis' and a positive integer using a N-by-1 vector.

  • 0 = actual/actual

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (PSA)

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

Data Types: double

Compounding frequency for yield calculation, specified as the comma-separated pair consisting of 'CompoundingFrequency' and a scalar or a NUMBONDS-by-1 or 1-by-NUMBONDS vector.

  • 1 — Annual compounding

  • 2 — Semiannual compounding

  • 3 — Compounding three times per year

  • 4 — Quarterly compounding

  • 6 — Bimonthly compounding

  • 12 — Monthly compounding

Note

By default, SIA bases (0-7) and BUS/252 use a semiannual compounding convention and ICMA bases (8-12) use an annual compounding convention.

Data Types: double

Output Arguments

collapse all

Price of cash flows, returned as an NINST-by-1 vector.

Version History

Introduced in R2012a

expand all

See Also

(Financial Instruments Toolbox) | | |