Function BPS within with keys returns the basis-point sensitivity(ies) of the cash flows of the referenced bond(s) as of a given reference date Tˢ
This equals the change in NPV (on a notional of 100) due to a uniform 1-basis-point change in the rate paid by the cash flows, provided all discounting is done according to the provided yield or discounting curve,
Concretely, in the case where a yield is supplied, a discounting curve is constructed with a flat zero rate equal to the supplied yield.
Otherwise, the supplied discount curve is used.
Then all coupons - regardless of being fixed or floating - are replaced with fixed payments of an amount equal to one basis point on a notional of 100, i.e. an amount of 0.01
Then the NPV of all these replaced coupons is calculated using the applicable discounting curve mentioned above.
There exist 2 distinct methods for obtaining the NPV:
1) From a given flat yield that acts as the discount zero rate for all cash flows.
2) From a given discounting yield curve that implies the discount factors to be used for discounting the various cash flows.
If the settlement date Tˢ is not explicitly given, it will be set to the bond's settlement date as implied by a trade transaction assumed to occur on the T₀ (typically today).
PRECAUTION: This function treats the referenced bond as if it were a fixed rate bond even if this is not the case!
All index-linked cash flows are treated as fixed cash flows that pay the amount forecasted by the corresponding curve.