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:

Constant