_WithCashflows#
- class rateslib.instruments.protocols._WithCashflows(*args, **kwargs)#
Bases:
_WithPricingObjs,ProtocolProtocol to determine cashflows for any Instrument type.
Attributes Summary
Methods Summary
cashflows(*[, curves, solver, fx, vol, ...])Return aggregated cashflow data for the Instrument.
cashflows_table(*[, curves, solver, fx, ...])Aggregate the values derived from a
cashflows(), grouped by date, settlement currency and collateral.Attributes Documentation
- kwargs#
Methods Documentation
- cashflows(*, curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, vol=NoInput.blank, base=NoInput.blank, settlement=NoInput.blank, forward=NoInput.blank)#
Return aggregated cashflow data for the Instrument.
Warning
This method is a convenience method to provide a visual representation of all associated calculation data. Calling this method to extract certain values should be avoided. It is more efficient to source relevant parameters or calculations from object attributes or other methods directly.
Examples
In [135]: irs = IRS(dt(2000, 1, 1), "3Y", spec="usd_irs", fixed_rate=1.0) In [136]: irs.cashflows() Out[136]: Type Ccy Payment Notional Period Convention DCF Acc Start Acc End DF Cashflow NPV FX Rate Base Ccy NPV Ccy Collateral Rate Spread leg1 0 FixedPeriod USD 2001-01-04 1000000.0 Regular Act360 1.013889 2000-01-03 2001-01-02 None -10138.888889 None 1.0 USD None None 1.0 NaN 1 FixedPeriod USD 2002-01-04 1000000.0 Regular Act360 1.013889 2001-01-02 2002-01-02 None -10138.888889 None 1.0 USD None None 1.0 NaN 2 FixedPeriod USD 2003-01-06 1000000.0 Regular Act360 1.013889 2002-01-02 2003-01-02 None -10138.888889 None 1.0 USD None None 1.0 NaN leg2 0 FloatPeriod USD 2001-01-04 -1000000.0 Regular Act360 1.013889 2000-01-03 2001-01-02 None NaN None 1.0 USD None None NaN 0.0 1 FloatPeriod USD 2002-01-04 -1000000.0 Regular Act360 1.013889 2001-01-02 2002-01-02 None NaN None 1.0 USD None None NaN 0.0 2 FloatPeriod USD 2003-01-06 -1000000.0 Regular Act360 1.013889 2002-01-02 2003-01-02 None NaN None 1.0 USD None None NaN 0.0
Providing relevant pricing objects will ensure all data that can be calculated is returned.
In [137]: curve = Curve({dt(2000, 1, 1): 1.0, dt(2010, 1, 1): 0.75}) In [138]: irs.cashflows(curves=[curve]) Out[138]: Type Ccy Payment Notional Period Convention DCF Acc Start Acc End DF Cashflow NPV FX Rate Base Ccy NPV Ccy Collateral Rate Spread leg1 0 FixedPeriod USD 2001-01-04 1000000.0 Regular Act360 1.013889 2000-01-03 2001-01-02 0.971359 -10138.888889 -9848.496702 1.0 USD -9848.496702 None 1.000000 NaN 1 FixedPeriod USD 2002-01-04 1000000.0 Regular Act360 1.013889 2001-01-02 2002-01-02 0.943835 -10138.888889 -9569.435745 1.0 USD -9569.435745 None 1.000000 NaN 2 FixedPeriod USD 2003-01-06 1000000.0 Regular Act360 1.013889 2002-01-02 2003-01-02 0.916946 -10138.888889 -9296.817681 1.0 USD -9296.817681 None 1.000000 NaN leg2 0 FloatPeriod USD 2001-01-04 -1000000.0 Regular Act360 1.013889 2000-01-03 2001-01-02 0.971359 29161.694029 28326.461668 1.0 USD 28326.461668 None 2.876222 0.0 1 FloatPeriod USD 2002-01-04 -1000000.0 Regular Act360 1.013889 2001-01-02 2002-01-02 0.943835 29161.694029 27523.820438 1.0 USD 27523.820438 None 2.876222 0.0 2 FloatPeriod USD 2003-01-06 -1000000.0 Regular Act360 1.013889 2002-01-02 2003-01-02 0.916946 29161.694029 26739.710399 1.0 USD 26739.710399 None 2.876222 0.0
- Parameters:
curves (_Curves, optional) – Pricing objects. See Pricing on each Instrument for details of allowed inputs.
solver (Solver, optional) – A
Solverobject containing Curve, Smile, Surface, or Cube mappings for pricing.fx (FXForwards, optional) – The
FXForwardsobject used for forecasting FX rates, if necessary.vol (_Vol, optional) – Pricing objects. See Pricing on each Instrument for details of allowed inputs.
base (str, optional (set to settlement currency)) – The currency to convert the local settlement NPV to.
settlement (datetime, optional) – The assumed settlement date of the PV determination. Used only to evaluate ex-dividend status.
forward (datetime, optional) – The future date to project the PV to using the
disc_curve.
- Return type:
DataFrame
- cashflows_table(*, curves=NoInput.blank, solver=NoInput.blank, fx=NoInput.blank, vol=NoInput.blank, base=NoInput.blank, settlement=NoInput.blank, forward=NoInput.blank)#
Aggregate the values derived from a
cashflows(), grouped by date, settlement currency and collateral.Examples
In [139]: irs = IRS(dt(2000, 1, 1), "3Y", spec="usd_irs", fixed_rate=1.0) In [140]: curve = Curve({dt(2000, 1, 1): 1.0, dt(2010, 1, 1): 0.75}) In [141]: irs.cashflows_table(curves=[curve]) Out[141]: local_ccy USD collateral_ccy NaN payment 2001-01-04 19022.80514 2002-01-04 19022.80514 2003-01-06 19022.80514
- Parameters:
curves (_Curves, optional) – Pricing objects. See Pricing on each Instrument for details of allowed inputs.
solver (Solver, optional) – A
Solverobject containing Curve, Smile, Surface, or Cube mappings for pricing.fx (FXForwards, optional) – The
FXForwardsobject used for forecasting FX rates, if necessary.vol (_Vol, optional) – Pricing objects. See Pricing on each Instrument for details of allowed inputs.
base (str, optional (set to settlement currency)) – The currency to convert the local settlement NPV to.
local (bool, optional (set as False)) – An override flag to return a dict of NPV values indexed by string currency.
settlement (datetime, optional) – The assumed settlement date of the PV determination. Used only to evaluate ex-dividend status.
forward (datetime, optional) – The future date to project the PV to using the
disc_curve.
- Return type:
DataFrame