qfinbox.tvm.bonds
Bond valuation and analysis.
Functions
|
Calculate convexity of a bond. |
|
Calculate Macaulay duration of a bond. |
|
Calculate modified duration of a bond. |
|
Calculate bond price given yield to maturity. |
|
Calculate bond yield to maturity given price. |
|
Find a root of a function in a bracketing interval using Brent's method. |
|
Validate that a value is positive. |
- qfinbox.tvm.bonds.bond_price(face_value: float, coupon_rate: float, years_to_maturity: float, yield_to_maturity: float, payments_per_year: int = 2) float[source]
Calculate bond price given yield to maturity.
- Parameters:
- Returns:
Bond price.
- Return type:
Examples
>>> bond_price(1000, 0.06, 10, 0.08) 864.10
- qfinbox.tvm.bonds.bond_yield_to_maturity(price: float, face_value: float, coupon_rate: float, years_to_maturity: float, payments_per_year: int = 2) float[source]
Calculate bond yield to maturity given price.
- Parameters:
- Returns:
Yield to maturity (as decimal).
- Return type:
Examples
>>> bond_yield_to_maturity(864.10, 1000, 0.06, 10) 0.08
- qfinbox.tvm.bonds.bond_duration(face_value: float, coupon_rate: float, years_to_maturity: float, yield_to_maturity: float, payments_per_year: int = 2) float[source]
Calculate Macaulay duration of a bond.
- Parameters:
- Returns:
Macaulay duration in years.
- Return type:
Examples
>>> bond_duration(1000, 0.06, 10, 0.08) 7.25
- qfinbox.tvm.bonds.bond_modified_duration(face_value: float, coupon_rate: float, years_to_maturity: float, yield_to_maturity: float, payments_per_year: int = 2) float[source]
Calculate modified duration of a bond.
- Parameters:
- Returns:
Modified duration.
- Return type:
Examples
>>> bond_modified_duration(1000, 0.06, 10, 0.08) 6.71