bondConvexity
Syntax
bondConvexity(settlement, maturity, coupon, yield, [frequency], [basis=1],
[bondType=0])
Arguments
settlement is a DATE scalar or vector indicating the settlement date.
maturity is a DATE scalar or vector indicating the maturity date.
coupon is a numeric scalar or vector indicating the annual coupon rate.
yield is a numeric scalar or vector indicating the annual yield.
frequency (optional) is an INT scalar/vector indicating the number of payments, or a DURATION scalar/vector indicating payment frequency. This parameter is required when bondTypeis 0 or unspecified. It can be:
- 1/1y: Annual payments
- 2/6M: Semi-annual payments
- 4/3M: Quarterly payments
- 12/1M: Monthly payments
- 0/"Thirty360US": US (NASD) 30/360
- 1/"ActualActual" (default): actual/actual
- 2/"Actual360": actual/360
- 3/"Actual365": actual/365
- 4/"Thirty360EU": European 30/360
bondType (optional) is an INT/STRING scalar or vector indicating the bond type. It can be:
- 0/"FixedRate" (default): Fixed-rate bond, where interest is paid periodically (quarterly, semi-annually, or annually) based on the coupon rate.
- 1/"Discount": Discount bond, where no interest is paid, and the bond is issued at a discount. FV at maturity = face value.
- 2/"ZeroCoupon": Zero-coupon bond, where interest and face value are paid at maturity. FV at maturity = face value + interest.
Details
bondConvexity
returns the bond convexity for each 100 face value of
a security with regular interest payments. Bond convexity is a measure of the
non-linear relationship of bond prices to changes in interest rates, and is defined
as the second derivative of the price of the bond with respect to interest
rates.
Return value: Scalar or vector of type DOUBLE.
Examples
Calculate the convexity of a bond purchased on January 1, 2023, with maturity on December 31, 2030. The bond has an annual coupon rate of 0.05, an expected yield of 0.06, an annual interest payment frequency, and uses the actual/actual day count basis.
bondConvexity(settlement=2023.01.01, maturity=2030.12.31, coupon=0.05, yield=0.06, frequency=1, basis=1)
// output: 50.78238914091385