I am trying to understand a simple thing about Delta hedging in the Black-Scholes world. I know I'm doing something blatantly wrong, I just can't see it now.

Let's say I write a call option and sell it to someone. With that money, and whatever else I need to borrow, I can set-up a self-financing portfolio of stock and bond, where the amount of stock I hold at all times is Delta.

At maturity, the value of this portfolio is exactly the payoff of the option. So if the buyer exercises the option, I can cover the pay exactly with this portfolio.

However, there's something bugging me: the final value of the portfolio is obviously calculated using the final value of the stock. Suppose that $S_T>K$, so the buyer exercises. In this case, I can just give him the stock I've been holding (will most likely be one unit), and receive $K$.

For concreteness, I've run a simulation of daily Delta-hedging, with $S_0=49$, $K=50$ and maturity 3 months. In this particular sample path, the final price of the stock is $S_T=50.277668$. I also have at maturity Delta=1, so I hold one unit of stock, and I am short $49.37889$ bonds, so that's what I owe in dollars. This is consistent with the above: the total value of the portfolio is $(S_T-K)_+$.

The option buyer thus ends up with a position of $0.2776678$. This is the value of my portfolio, so I can just give it to him and we're even.

However I can also sell the stock to him for $50$, so he gets his stock at his price, I get $50$, pay back the $49.37889$ I owe, and I end up with some money. Where did this come from?

  • 1
    $\begingroup$ Black-Sholes assumes continous trading, not discrete $\endgroup$
    – zer0hedge
    Mar 11 '17 at 18:57
  • $\begingroup$ Is that really all the issue? I would think that with small enough time steps, the approximation would be reasonably good (never perfect of course). $\endgroup$
    – dbluesk
    Mar 11 '17 at 19:48
  • $\begingroup$ would you be able to share your code/xls? $\endgroup$
    – mbison
    Mar 11 '17 at 20:46
  • $\begingroup$ @mbison it's rather difficult to put it here, since it's C++ spread across different files, classes, etc, within a larger project. The main points are: I simulate daily prices of the stock using the explicit solution of the SDE for the Geometric Brownian Motion, generating an independent normal variable at each step and plugging it in the formula. The replicating portfolio is just calculated (daily) using Black-Scholes formulas for Delta and the price of the call option. I am trying to see if I'm messing something around. I assume that at maturity I should have 1 stock and -K bonds.. $\endgroup$
    – dbluesk
    Mar 11 '17 at 21:02
  • $\begingroup$ Ok. question for you: you say that the portfolio value equals the value of the option at expiry. but if you hold 1 stock worth 50.27 and you are short 49.37 the value of your portfolio does not equal the value of the option. $\endgroup$
    – mbison
    Mar 11 '17 at 21:36

As has been remarked in the comments already, the standard deviation of your hedging error should approach zero as your re-hedging frequency (the number of time steps) increases.

Here is a sample plot of how it should behave like. It was generated using $T = 1$, $K = 100$, $S_0 = 100$, $r = 5\%$, $\sigma = 20\%$ and 1,000 sample paths.

convergence of the hedging error

Just as a sanity check - here is the same plot but with the mean hedging error, which fluctuates around zero with decreasing deviations.

unbiasedness of the hedging error

As you didn't provide your code, I created a simple Jupyter notebook for this that you can clone from GitHub. This should hopefully help you debug your own program.

  • $\begingroup$ Thanks a lot! I think I figured out my mistake, by the way: all the bonds I'm using have maturity T, and face value e^{rT}, as opposed to face value 1, which got me confused. So the computations actually DO make sense. $\endgroup$
    – dbluesk
    Mar 12 '17 at 1:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.