bond zero
financepy.products.bonds.bond_zero
Class
BondZero
BondZero(
issue_dt: Date,
maturity_dt: Date,
issue_price: float,
curve_dc_type: DayCountTypes = <DayCountTypes.ACT_365F: 7>,
) -> None
A zero cpn bond is a bond which doesn't pay any periodic payments.
Instead, it is issued at a discount. The entire face value of the bond is
paid out at maturity. It is issued as a deep discount bond.
There is a special convention for accrued interest in which
Accrued_interest = (par - issue price) * D
where D = (settle_dt - issue_dt)/(maturity_dt - issue_dt).
Methods
dirty_price_from_ytm
dirty_price_from_ytm(
self,
settle_dt: Date,
ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
No description available.
principal
principal(
self,
settle_dt: Date,
ytm: float,
face: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Return BBG principal value for a given face amount.
accretion_yield
accretion_yield(
self,
settle_dt: Date,
clean_price: float,
)
Return average annual accretion yield from settlement.
zero_current_yield
zero_current_yield(
self,
clean_price: float,
)
Calculate the current yield of the zero coupon bond which is the
cpn divided by the clean price (not the full price).
The cpn of a zero cpn bond is defined as:
(par - issue_price) / tenor
yield_to_maturity
yield_to_maturity(
self,
settle_dt: Date,
clean_price: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Return YTM from clean price for a zero coupon bond.
discount_rate
discount_rate(
self,
settle_dt: Date,
clean_price: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Return discount rate for a zero coupon bond.
accrued_interest
accrued_interest(
self,
settle_dt: Date,
face: float = 100.0,
)
Return accrued discount on a zero coupon bond.
Convention:
accrued = face * (par - issue_price) / par
* (settle_dt - issue_dt) / (maturity_dt - issue_dt)
dollar_duration
dollar_duration(
self,
settle_dt: Date,
ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Calculate the analytical dollar duration of a zero coupon bond.
dv01
dv01(
self,
settle_dt: Date,
ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Change in dirty price for a +1 basis point increase in yield.
Bloomberg-style DV01 / PV01 is positive for a long fixed-rate bond.
macaulay_duration
macaulay_duration(
self,
settle_dt: Date,
ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Calculate the analytical Macaulay duration of a zero coupon bond.
modified_duration
modified_duration(
self,
settle_dt: Date,
ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Calculate the analytical modified duration of a zero coupon bond.
convexity_from_ytm
convexity_from_ytm(
self,
settle_dt: Date,
ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Calculate the bond convexity from the yield to maturity. This
function is vectorised with respect to the yield input.
clean_price_from_ytm
clean_price_from_ytm(
self,
settle_dt: Date,
ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Calculate the clean price of a zero coupon bond from its YTM.
clean_price_from_discount_curve
clean_price_from_discount_curve(
self,
settle_dt: Date,
discount_curve: DiscountCurve,
)
Calculate the clean bond value using some discount curve to
present-value the bond's cash flows back to the curve anchor date and
not to the settlement date.
dirty_price_from_discount_curve
dirty_price_from_discount_curve(
self,
settle_dt: Date,
discount_curve: DiscountCurve,
)
Return dirty price per 100 nominal using a discount curve.
bond_payments
bond_payments(
self,
settle_dt: Date,
face: float,
)
Return the zero bond redemption payment.
print_payments
print_payments(
self,
settle_dt: Date,
face: float = 100.0,
)
Print a list of the unadjusted cpn payment dates used in
analytic calculations for the bond.
dirty_price_from_survival_curve
dirty_price_from_survival_curve(
self,
settle_dt: Date,
discount_curve: DiscountCurve,
survival_curve: DiscountCurve,
recovery_rate: float,
)
Return risky dirty price per 100 nominal for a zero coupon bond.
clean_price_from_survival_curve
clean_price_from_survival_curve(
self,
settle_dt: Date,
discount_curve: DiscountCurve,
survival_curve: DiscountCurve,
recovery_rate: float,
)
Return risky clean price per 100 nominal for a zero coupon bond.
calc_ror
calc_ror(
self,
begin_dt: Date,
end_dt: Date,
begin_ytm: float,
end_ytm: float,
convention: YTMCalcType = <YTMCalcType.ZERO: 0>,
)
Return annualised simple return, IRR, and PnL for a zero coupon bond.
Generated automatically from the FinancePy source code.
Do not edit this file manually.