bondCashflow#
- swordfish.function.bondCashflow()#
Calculates the cash flow for a bond with a face value of 100. Supports fixed-rate bonds, zero-coupon bonds, and discount bonds.
- Parameters:
start (Constant) – A calar or vector of DATE type indicating the bond’s value date.
maturity (Constant) – A DATE scalar or vector indicating the maturity date.
coupon (Constant) – A numeric scalar or vector indicating the annual coupon rate. For example, 0.03 indicates a 3% annual coupon.
frequency (Constant) –
An INT scalar/vector indicating the number of payments, or a STRING scalar/vector indicating payment frequency. It can be:
0/”Once”: Bullet payment at maturity.
1/”Annual”: Annual payments.
2/”Semiannual”: Semi-annual payments.
4/”Quarterly”: Quarterly payments.
12/”Monthly”: Monthly payments.
dayCountConvention (Constant) –
A STRING scalar or vector indicating the day count convention to use. It can be:
”Thirty360US”: US (NASD) 30/360
”ActualActualISMA” (default): actual/actual (ISMA rule)
”Actual360”: actual/360
”Actual365”: actual/365
”Thirty360EU”: European 30/360
”ActualActualISDA” (default): actual/actual (ISDA rule)
bondType (Constant) –
A STRING scalar or vector indicating the bond type. It can be:
”FixedRate”: Fixed-rate bond, where interest is paid periodically based on the coupon rate.
”Discount”: Discount bond, where no interest is paid, and the bond is issued at a discount. FV at maturity = face value.
”ZeroCoupon”: Zero-coupon bond, where interest and face value are paid at maturity. FV at maturity = face value + interest.
mode (Constant, optional) –
A STRING scalar or vector specifying the output format, by default DFLT. The values are:
”Vector” (default): returns only the cash flow amounts.
”Table”: returns a detailed cash flow table.
- Returns:
If mode = “Vector”, it returns a DOUBLE vector or an array vector that lists the cash flow amounts for a single bond or multiple bonds.
If mode = “Table”, it returns a table or a tuple of tables, each representing the detailed cash flows of a single bond or multiple bonds. Each table contains the following fields:
paymentDate: DATE, payment date.
coupon: DOUBLE, interest amount.
notional: DOUBLE, principal.
total: DOUBLE, total amount.
- Return type: