Main Content

mbsprice2speed

Implied PSA prepayment speeds given price

Description

[ImpSpdOnPrc,ImpSpdOnDur,ImpSpdOnCnv] = mbsprice2speed(Price,Settle,Maturity,IssueDate,GrossRate,PrepayMatrix) computes PSA prepayment speeds implied by pool prices and projected (user-defined) prepayment vectors. The calculated PSA speed produces the same price, modified duration, or modified convexity, depending upon the output requested.

example

[ImpSpdOnPrc,ImpSpdOnDur,ImpSpdOnCnv] = mbsprice2speed(___,CouponRate,Delay) 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 how to compute the equivalent PSA benchmark prepayment speeds for a mortgage pool with the following characteristics and prepayment matrix.

Price        = 101;
Settle       = datetime(2000,1,1);
Maturity     = datetime(2030,1,1);
IssueDate    = datetime(2000,1,1);
GrossRate    = 0.08125;
PrepayMatrix = 0.005*ones(360,1);
CouponRate   = 0.075;
Delay        = 14;

[ImpSpdOnPrc, ImpSpdOnDur, ImpSpdOnCnv] = ... 
mbsprice2speed(Price,Settle, Maturity, IssueDate, ... 
GrossRate, PrepayMatrix, CouponRate, Delay)
ImpSpdOnPrc = 
118.5980
ImpSpdOnDur = 
118.3946
ImpSpdOnCnv = 
109.5115

Input Arguments

collapse all

Clean price for every $100 face value, specified as an NMBS-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. Settle must be earlier than Maturity.

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

Maturity date, specified as an NMBS-by-1 vector using a datetime array, string array, or date character vectors.

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

Issue date, specified as an NMBS-by-1 vector using a datetime array, string array, or date character vectors.

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

Gross coupon rate (including fees), specified as an NMBS-by-1 vector of decimal values.

Data Types: double

Customized prepayment vector, specified as a NaN-padded matrix of size max(TermRemaining)-by-NMBS. Each column corresponds to each mortgage-backed security, and each row corresponds to each month after settlement.

Note

Use PrepayMatrix only when PrepaySpeed is unspecified.

Data Types: double

(Optional) Net coupon rate, specified as an NMBS-by-1 vector of decimal values.

Data Types: double

(Optional) Delay (in days) between payment from homeowner and receipt by bondholder, specified as an NMBS-by-1 vector.

Data Types: double

Output Arguments

collapse all

Equivalent PSA benchmark prepayment speed for the pass-through to carry the same price, returned as a NMBS-by-1 vector.

Equivalent PSA benchmark prepayment speed for the pass-through to carry the same modified duration, returned as a NMBS-by-1 vector.

Equivalent PSA benchmark prepayment speed for the pass-through to carry the same modified convexity, returned as a NMBS-by-1 vector.

References

[1] PSA Uniform Practices, SF-49

Version History

Introduced before R2006a

expand all