Combining Borrow and Dividend Curves in Option Pricing
Summary
The document discusses how to represent both borrow costs and dividends when pricing a vanilla option with a QuantLib Black–Scholes–Merton process, which accepts a risk-free curve and a dividend curve. It proposes combining the dividend and borrow inputs in the curve supplied for the underlying, while leaving the risk-free curve unchanged so discounting of the broader hedged portfolio remains appropriate. The rationale is that borrow costs and dividends affect the stock used in delta hedging.
A spreaded interpolated term structure can combine the inputs, but it may evaluate both component curves whenever rates are requested and therefore may be slower. If the curves have compatible nodes, a manually combined interpolated curve may be more efficient. That approach may not update automatically when input rates change, such as when a curve comes from bootstrapping. The response recommends considering the wider calculation cost and measuring performance; it gives no universal best choice or benchmark.
Key ideas
- The process described accepts separate risk-free and dividend curves, so borrow costs must be incorporated through the underlying yield input.
- Borrow and dividend effects both influence the stock used for delta hedging.
- A spreaded term structure can combine the curves but may add rate-evaluation overhead.
- A manually combined curve may be faster when the input curves have compatible nodes.
- A manually built curve may not respond automatically to changes in bootstrapped input curves.
Tags
Full text
# Best practice in QuantLib Python to include borrow rate # Best practice in QuantLib Python to include borrow rate When pricing a vanilla option, there are at a minimum 3 yield curves to consider: - risk free yield curve = YC - dividend yield curve = DC (or discrete dividends for American options but not the topic here) - borrow curve = BC When building a process (for example BlackScholesMertonProcess) we can only pass 2 curves, a yield curve and dividend curve. Consequently we need to tweak one of the curves. We probably don't want to mess with YC so any discounting that is not happening on the underlying (for example for the value of the option) remains accurate. This leaves us with combining DC and BC and pass the result of this combination as the dividend curve in the process. What is the best practice for achieving this ? Is it to use something like SpreadedLinearZeroInterpolatedTermStructure and spread DC by BC ? Or should we instead build our own utility to add curves ? There are certainly some speed issues associated with this therefore I'm looking for the solution that provides the fastest pricing time. Thank you ## Answer by KT8 (score 3) https://quant.stackexchange.com/a/75903 Without knowing how the guts of QuantLib work, the borrow curve and dividend curve should be included together. If you think about it, both borrow costs and dividends affect the stock used for the delta hedge, whereas the risk free discount applies to the whole portfolio (option plus hedge, i.e. stock and bank account). Maybe the notes http://www.math.ualberta.ca/~cfrei/PIMS/M_Rutkowski_PIMS_slides.pdf can help you. In slide 18 you see how funding (in a more complicated version, but you can just take $f^\beta$ to be your borrow rate) enters the BS formula, for example. ## Answer by Luigi Ballabio (score 2) https://quant.stackexchange.com/a/76723 It depends on your use cases. Something like `SpreadedLinearZeroInterpolatedTermStructure`, as you suggested, will work but will use both the original curve and the interpolated spread each time you need rates, which won't be as fast as possible. If your curves have compatible nodes, you can write some code to create an interpolated combined curve manually. However, if your rate curve is, e.g., the result of a bootstrap process, the combined curve won't automatically react to changes in the input rates. Also, the difference in timing might not be relevant in the context of your larger calculations, so I'd measure it and use it as a factor in your decision.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.