Ibor Fra
financepy.products.rates.ibor_fra
Classes
IborFRA
IborFRA(start_dt: financepy.utils.date.Date, maturity_dt_or_tenor: financepy.utils.date.Date | str, fra_rate: float, accrual_dc_type: financepy.utils.day_count.DayCountTypes, notional: float = 100.0, pay_fixed_rate: bool = True, cal_type: financepy.utils.calendar.CalendarTypes = <CalendarTypes.WEEKEND: 2>, bd_type: financepy.utils.calendar.BusDayAdjustTypes = <BusDayAdjustTypes.MODIFIED_FOLLOWING: 3>)
Class for managing LIBOR forward rate agreements. A forward rate
agreement is an agreement to exchange a fixed pre-agreed rate for a
floating rate linked to LIBOR that is not known until some specified
future fixing date. The FRA payment occurs on or soon after this date
on the FRA settlement date. Typically the timing gap is two days.
A FRA is used to hedge a Ibor quality loan or lend of some agreed
notional amount. This period starts on the settlement date of the
FRA and ends on the maturity date of the FRA. For example a 1x4 FRA
relates to a Ibor starting in 1 month for a loan period ending in 4
months. Hence it links to 3-month Ibor rate. The amount received by a
payer of fixed rate at settlement is:
acc(1,2) * (Ibor(1,2) - FRA RATE) / (1 + acc(0,1) x Ibor(0,1))
So the value at time 0 is
acc(1,2) * (FWD Ibor(1,2) - FRA RATE) x df(0,2)
If the base date of the curve is before the value date then we
forward adjust this amount to that value date. For simplicity I have
assumed that the fixing date and the settlement date are the same date.
This should be amended later.
The valuation below incorporates a dual curve approach.
Methods
value
value(self, value_dt: financepy.utils.date.Date, discount_curve: financepy.market.curves.discount_curve.DiscountCurve, index_curve: financepy.market.curves.discount_curve.DiscountCurve = None, pv_only=True)
Determine mark to market value of a FRA contract based on the
market FRA rate. We allow the pricing to have a different curve for
the Libor index and the discounting of promised cash flows.
valuation_details
valuation_details(self, value_dt: financepy.utils.date.Date, discount_curve: financepy.market.curves.discount_curve.DiscountCurve, index_curve: financepy.market.curves.discount_curve.DiscountCurve = None)
A long-hand method that returns various details relevant to valuation
in a dictionary. Slower than value(...) so should not be used when
performance is important
We want the output dictionary to have the same labels for different
benchmarks (depos, fras, swaps) because we want to present them
together so please do not stick new outputs into
one of them only
maturity_df
maturity_df(self, index_curve)
Determine the maturity date index discount factor needed to refit
the market FRA rate. In a dual-curve world, this is not the discount
rate discount factor but the index curve discount factor.
print_payments
print_payments(self, value_dt)
Determine the value of the Deposit given a Ibor curve.
Generated automatically from the FinancePy source code.
Do not edit this file manually.