I have a list of deltas and their corresponding volatilities in an FX market but I want to go from delta to strike price. In this Question similar problem is being discussed

How can I calculate the strike price or implied volatility from a given delta?

The way I understand it, the strike price can be found like this: enter image description here

Is my approach correct? If yes; pleace help me understand the term, N(d_1), so I can proceed with the solve process?

I basically want to create the volatility smile in (strike,vol)-graph from data found by Bloombergs OVDV function: enter image description here

So maybe there's a simplere way to do so

  • $\begingroup$ In Excel the function N(d1) is called NORMSDIST(). In many other languages there is such a function. In Python it;s norm.cdf() as part of Scipy. $\endgroup$ – noob2 Aug 5 '16 at 19:36
  • $\begingroup$ In R; is it dnorm() og pnorm()? $\endgroup$ – Sanjay Aug 5 '16 at 19:38
  • 1
    $\begingroup$ It's pnorm() in R language. It's a "p" because it returns a probability (a number between 0 and 1). $\endgroup$ – noob2 Aug 5 '16 at 19:43

This is a little more complicated than the answer provided above since this is FX and the convention for determining the strike matters.


Most pairs take premium in the foreign (i.e. left hand side) currency. This means that you are paying for an option in the underlying - like paying for an IBM call option with IBM shares - and those shares can be viewed as part of the delta - as a result most pairs use the "include premium" convention. The details are in Wystup's paper and you should read it. The math is easy and it is nice to see everytrhing spelled out for you. The only pairs that "Exclude Premium" are EURUSD, GBPUSD, AUDUSD, NZDUSD - so these calculate delta in the usual way. Also in FX for BBG, the convention is to typically use spot delta for expiries less than a year and forward delta for expiries >= 1 year. Otherwise onlyvix's answer above is fine if you assume that the foreign risk free rate is 0.0%. The actual delta is $e^{-r_ft}N(d1)$ in the exclude premium case.

  • $\begingroup$ Thanks, @FinanceGuyThatCantCode. I am struggling with the Time parameter. It makes a huge difference whether I use days, months etc. If I use $T=1/12$ (years) for the 1 month options I get my points really really close the ATM than if I use $T=21$ (days). By looking at the example provided above, What's the correct way of measuring time $T$ $\endgroup$ – Sanjay May 22 '17 at 13:37
  • 2
    $\begingroup$ @Sanjay - Bloomberg FX uses calendar days for their vol calculations. So ACT/365 is the convention - it might be ACT/ACT to handle leap years better, but I believe it is ACT/365. So, you need the (exact expiration date-today's date)/365. Calculating the expiration date from tenors is complicated actually. I coded it up once - I did not enjoy that. A mostly complete description of what to do is at: en.wikipedia.org/wiki/Foreign_exchange_date_conventions There are a couple other exceptions to the rules described here, but this will get you 95% of the way there. $\endgroup$ – FinanceGuyThatCantCode May 22 '17 at 13:48
  • $\begingroup$ So, for for 1 month option, the the time $T$ is approximately $T=(30/365)$ ? I am not sure if I have understood it correctly. $\endgroup$ – Sanjay May 22 '17 at 17:25
  • 1
    $\begingroup$ in that case 1M is approximately 1/12. Or if you prefer, use the number of days in month/365 - i.e. 30/365 if the option starts in April and 31/365 if May. However, if you need real accuracy, then you will need all the holiday calendars and conventions as discussed in the link I provided above. $\endgroup$ – FinanceGuyThatCantCode May 22 '17 at 18:14

Since $ \Delta_K = N(d_1) $ use normal inverse function $ N^{-1} $ (e.g. NORM.INV in excel, norminv in matlab) to calculate $ d_1 = N^{-1} (\Delta_K) $ Then use algebra to solve for $K$


Just to skip to solution from the aforementioned paper:

For a volatility surface of Delta $\Delta$ vs volatility $\sigma$, we can calculate the strike $K$ with underlying $f$,$\phi$ is 1 for call, -1 for put and time to expiration $\tau$, which should be a year fraction of working days:

$K = fe^{-\phi N^{-1}(\phi\Delta)\sigma\sqrt{\tau}+\frac{1}{2}\sigma^{2}\tau}$


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.