FinancePy

FinancePy API Reference

discount curve

financepy.market.curves.discount_curve

Class

DiscountCurve

DiscountCurve( anchor_dt: Date, df_dates: list = None, df_values: list | numpy.ndarray = None, interp_type: InterpTypes = <InterpTypes.FLAT_FWD_RATES: 1>, curve_dc_type: DayCountTypes = <DayCountTypes.ACT_365F: 7>, ) -> None
This is a base discount curve which has an internal representation of a vector of times and discount factors and an interpolation scheme for interpolating between these fixed points.

Methods

set_times

set_times( self, times: numpy.ndarray, )

No description available.

set_dfs

set_dfs( self, dfs: numpy.ndarray, )
Set the discount factor at the last maturity time.

set_last_df

set_last_df( self, df, )
Set the discount factor at the last maturity time.

fit

fit( self, times: numpy.ndarray, dfs: numpy.ndarray, )
Fit the interpolator to the given times and discount factors.

fwd_rate

fwd_rate( self, start_dt: list | financepy.utils.date.Date, date_or_tenor: Date | str | list, accrual_dc_type: DayCountTypes = <DayCountTypes.ACT_360: 8>, comp_type: CompoundingTypes = <CompoundingTypes.MMKT: 1>, freq_type: FrequencyTypes = None, )
Simple-compounded forward rate between dates. accrual_dc_type is used for the forward accrual denominator. self.curve_dc_type is used for curve time conversion / interpolation.

fwd_rate_t

fwd_rate_t( self, start_t: float | list | numpy.ndarray, end_t: float | list | numpy.ndarray, accrual: float | list | numpy.ndarray = None, comp_type: CompoundingTypes = <CompoundingTypes.MMKT: 1>, freq_type: FrequencyTypes = None, )
Forward rate between curve times.

fwd_rate_inst

fwd_rate_inst( self, dts: Date | list, dt: float = 1e-06, )
Instantaneous continuously compounded forward rate at date(s).

fwd_rate_inst_t

fwd_rate_inst_t( self, t: float | list | numpy.ndarray, dt: float = 0.0001, )
Instantaneous continuously compounded forward rate at time t. Computes: f(t) = - d ln Z(t) / dt using a central finite difference.

zero_rate

zero_rate( self, maturity_dt: list | financepy.utils.date.Date, freq_type: FrequencyTypes = <FrequencyTypes.ANNUAL: 1>, )
Calculate zero rates with specified compounding frequency.

curve_years

curve_years( self, maturity_dt: list | financepy.utils.date.Date, )
Calculate zero rates with continuous compounding.

fwd_zero_rate_cc

fwd_zero_rate_cc( self, start_dt: Date, end_dt: Date, )
Calculate fwd zero rates with continuous compounding.

zero_rate_cc

zero_rate_cc( self, maturity_dt: list | financepy.utils.date.Date, )
Calculate zero rates with continuous compounding.

zero_rate_cc_t

zero_rate_cc_t( self, t, )
Calculate zero rates with continuous compounding.

zero_rate_t

zero_rate_t( self, t, freq_type: FrequencyTypes = <FrequencyTypes.ANNUAL: 1>, )

No description available.

swap_rate

swap_rate( self, effective_dt: Date, maturity_dt: list | financepy.utils.date.Date, freq_type: FrequencyTypes = <FrequencyTypes.ANNUAL: 1>, accrual_dc_type: DayCountTypes = <DayCountTypes.THIRTY_E_360: 2>, )

No description available.

swap_rate_old

swap_rate_old( self, effective_dt: Date, maturity_dt: list | financepy.utils.date.Date, freq_type: FrequencyTypes = <FrequencyTypes.ANNUAL: 1>, accrual_dc_type: DayCountTypes = <DayCountTypes.THIRTY_E_360: 2>, )
Calculate the swap rate to maturity date. This is the rate paid by a swap that has a price of par today. This is the same as a Libor swap rate except that we do not do any business day adjustments.

par_rate

par_rate( self, effective_dt: Date, maturity_dt: list | financepy.utils.date.Date, freq_type: FrequencyTypes = <FrequencyTypes.ANNUAL: 1>, accrual_dc_type: DayCountTypes = <DayCountTypes.THIRTY_E_360: 2>, )
Calculate the swap rate to maturity date. This is the rate paid by a swap that has a price of par today. This is the same as a Libor swap rate except that we do not do any business day adjustments.

par_rate_simple_t

par_rate_simple_t( self, t_maturity, freq = 2, )
Simple spot-starting par rate from curve times. Handles bonds with coupons equal to c/f. Calculates payments backwards from maturity. Not exact for swaps as it ignores accrual factor weighted coupon payments. Parameters ---------- maturity : float Final maturity in years. freq : int Fixed-leg payments per year.

par_rate_t

par_rate_t( self, t_start: float, payment_times: numpy.ndarray, accrual_factors: numpy.ndarray, )

No description available.

df

df( self, dt: list | financepy.utils.date.Date, )
Function to calculate a discount factor from a date or a vector of dates. The time day count determines how dates get converted to years.

df_t

df_t( self, t: float | numpy.ndarray, )
Function to calculate a discount factor from a time or a vector of times. Discourage usage in favour of passing in dates.

bump_parallel

bump_parallel( self, bump_size: float, )
Adjust the continuously compounded forward rates by a perturbation upward equal to the bump size and return a curve object with this bumped curve. This is used for interest rate risk.

bump_bucket

bump_bucket( self, bucket_start: float, bucket_end: float, bump_size: float, interp_type = None, )
Apply a bucket (key rate) shift: shift continuous forward rates only between bucket_start and bucket_end years.

survival_prob

survival_prob( self, dt: Date, ) -> float
This returns a survival probability to a specified date based on the assumption that the continuously compounded rate is a default hazard rate in which case the survival probability is directly analogous to a discount factor.

plot

plot( self, title, times: numpy.ndarray = None, ymin: float = None, ymax: float = None, filename: str = None, )
Display discount curve.
Generated automatically from the FinancePy source code. Do not edit this file manually.