The delta in option pricing, also called the hedge ratio, is expressed as the sensitivity of the option price to the underlying price change.

The analytical solution for the most common option pricing models, such as the Black-Scholes, Corrado and Su, and other frameworks can be found on the internet or in books.

However, I am dealing with a more complex model for which the analytical solution is not that obvious, and hence therefore want to obtain the delta (and later also the other greeks) by means of a numerical method.

So far I haven't found a proper way to do so. More specific, when simply calculating the gradient of the Call price with respect to the underlying Spot price, I get different values than from the analytical solution -- In case of the Black-Scholes model.

Can someone explain why the gradient does not equal the delta and what the numerical alternatives are for this issue?

  • $\begingroup$ I can only imagine option with non-smooth value, like barrier option close to the barrier. In this case numerical derivative might give result very different from analytical one. Could it be your case? $\endgroup$
    – Rustam
    Jun 26, 2013 at 19:26
  • $\begingroup$ hmmm not really, as I used standard Matlab built-in functions and tested it with the standard Black-Scholes formula (hence --blsprice-- for calculating option prices, --blsdelta-- for calculating the delta's and --gradient-- for the numerically obtaining the delta). $\endgroup$ Jun 27, 2013 at 13:32
  • $\begingroup$ That's really interesting. I never used gradient function to calculate derivatives manually. In case C(:) is vector of call prices and S(:) is vector of spot prices, I calculate delta numerically like this: Delta = diff(C)./diff(S). $\endgroup$
    – Rustam
    Jun 27, 2013 at 13:37
  • $\begingroup$ But basically I'd suggest you to check if your black-scholes price coincides with Matlab's blsprice. $\endgroup$
    – Rustam
    Jun 27, 2013 at 13:39
  • $\begingroup$ Thanks. Yes it does coincide, actually I read that your method diff(C)/diff(S) is an approximation. When I try it it comes close to the blsdelta(.) deltas, but there is still a difference. I assume you input for C(:) the estimated option prices, not the actual ones. $\endgroup$ Jun 27, 2013 at 13:52

2 Answers 2


This is in fact a tricky matter.

As you say one way is to calculate delta by an analytic formula, i.e. calculate the first derivative of the option pricing formula you are using with respect to the underlying's spot price.

The second way is to do it numerically, i.e. change the spot price by a small value $dS$, calculate the value of the option and then calculate the delta as a difference quotient: $delta = \frac{V(S+dS)-V(S)}{dS}$.

When changing the spot price and calculating $V(S+dS)$ there are two possibilities:
1. change spot price by $dS$, all other parameters (including volatility) stay unchanged, then price the option and calculate the delta as shown above.
2. change spot price by $dS$, take volatility from the volatility surface, then price the option and calculate the delta as shown above.

Which method is the best very much depends on the dynamics of the volatility surface and many subtleties have to be taken into consideration here. This is also related to the so called Sticky Delta vs. Sticky Strike problem and there's no correct solution all the time.

For a good overview and introduction see here:
Laughter in the Dark - The Problem of the Volatility Smile by Emanual Derman and especially
Regimes of Volatility by the same author.

  • 1
    $\begingroup$ Thank you, good and clear answer. I will try it and read your references next week & come back to you. $\endgroup$ Jul 1, 2013 at 16:27
  • 2
    $\begingroup$ Nice reference, how do you always get to dig up such gems? +1 $\endgroup$
    – Matt Wolf
    Jul 2, 2013 at 3:59
  • 1
    $\begingroup$ +1 for Emanual Derman's lecture notes - I find his explanations very intuitive $\endgroup$ Jul 5, 2013 at 7:19
  • 1
    $\begingroup$ www.emanuelderman.com/media/euronext-volatility_smile.pdf $\endgroup$
    – Beginner
    Sep 1, 2017 at 16:22

It may be the case with certain exotics that greeks are derived analytically through approximations. In that case at certain boundaries you may get different results from such approximation over the numerical approach. Why do you not approach the numerical case similarly than most banks and hedge funds when they "shock" their options books: Simply shift your underlying, re-calculate the option price, derive a convexity adjustment factor, and from both approximate your delta.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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