[balances, principals, interests] = cmoseqcf(PrincipalPayments,
TranchePrincipals, TrancheCoupons) generates cash flows
for a sequential CMO without a Z-bond, given the underlying mortgage
pool payments.

[balances, principals, interests] = cmoseqcf(PrincipalPayments,
TranchePrincipals, TrancheCoupons, HasZ) generates cash
flows for a sequential CMO with a Z-bond, given the underlying mortgage
pool payments.

Input Arguments

PrincipalPayments

Matrix of size 1-by-NUMTERMS,
where NUMTERMS is the number of terms remaining.
Each row contains the underlying principal payment for the time period
corresponding to the row number. The underlying principal payments
can be calculated using mbscfamounts or mbspassthrough. The underlying principal
payments can also be outputs from other CMO cash flow functions

TranchePrincipals

Matrix of size NUMTRANCHES-by-1,
where NUMTRANCHES is the number of tranches in
the sequential CMO. Each element of the matrix represents the initial
principal for each tranche. If the sequential CMO includes a Z-bond
(HasZ is true), the last element
of this matrix is the principal of the Z-bond.

TrancheCoupons

Matrix of size NUMTRANCHES-by-1,
where NUMTRANCHES is the number of tranches in
the sequential CMO. Each element of the matrix represents the coupon
for each tranche. If the sequential CMO includes a Z-bond (HasZ is true),
the last element of this matrix is the coupon of the Z-bond. The weighted
average coupon for the CMO should not exceed the coupon of the underlying
mortgage.

HasZ

(Optional) Boolean (true or false).
A value of true indicates that the sequential CMO
contains a Z-bond, and the last element of TranchePrincipals
and TrancheCoupons will be treated as that of the
Z-bond. A value of false indicates that there is
no Z-bond in the sequential CMO, and the last element of TranchePrincipals and TrancheCoupons will
be treated as an ordinary tranche.

Default: false

Output Arguments

Balance

Matrix of size NUMTRANCHES-by-NUMTERMS,
where NUMTRANCHES is the number of terms remaining
and NUMTRANCHES is the number of tranches. Each
element represents the principal balance at the time period corresponding
to the column, and for the tranche corresponding to the row.

Principal

Matrix of size NUMTRANCHES-by-NUMTERMS,
where NUMTRANCHES is the number of terms remaining
and NUMTRANCHES is the number of tranches. Each
element represents the principal payments made at the time period
corresponding to the column, and to the tranche corresponding to the
row.

Interest

Matrix of size NUMTRANCHES-by-NUMTERMS,
where NUMTRANCHES is the number of terms remaining
and NUMTRANCHES is the number of tranches. Each
element represents the interest payments made at the time period corresponding
to the column, and to the tranche corresponding to the row.

Define the mortgage pool under consideration for CMO structuring using mbscfamounts or mbspassthrough and calculate the cash flows with an A and B tranche for a sequential CMO.

A sequential pay CMO involves tranches that pay off principal
sequentially. For example, consider the following case, where all
principal from the underlying mortgage pool is repaid on tranche A
first, then tranche B, then tranche C. Note that interest is paid
on each tranche as long as the principal for the tranche has not been
retired.

Tranche is a term often used to describe a specific class of
bonds within an offering wherein each tranche offers varying degrees
of risk to the investor.