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

I have calculated the implied volatility for all strikes of a certain product (options on futures) and approximated the ATM volatility. My question is how can I figure out the implied volatility for a 25 delta call and -25 delta put? I have come across a lot of information about delta, but can't quite put it together to solve this specific problem.

I am trying to implement Mixon's skew measure.

For Black-Scholes, $\Delta_C=\partial_{S} C=N(d_1)$, $d_1= \frac{\ln\left(\frac{S_t}{K}\right) + \left(r + \frac{\sigma^2}{2}\right)(T - t)}{\sigma\sqrt{T - t}}$

You may fit the volatility $\sigma$ to this term by $$\Delta_C({\hat{\sigma}})=0.25$$Note that $\Delta_P=1-\Delta_C$ by Put-Call-Parity.

• For sigma do I use the ATM volatility? Or is it the volatility of the underlying? – Stu Jul 2 '14 at 18:08
• You mean which volatility to set when you want to fit the strike? – emcor Jul 2 '14 at 18:13
• Yes, exactly. I am trying to figure out the volatility of a 25 delta call. To do this, I use the above formula to back into the strike, and then I use that strike to approximate what the implied volatility is by comparing it the the implied volatilities of all the strikes. However, I cannot use the volatility of the strike I am looking for, since I do not know which strike that is. – Stu Jul 2 '14 at 18:16
• $\hat{\sigma}$ is just to note it is the fitted (estimated) volatility. When you want to get the implied strike, you should note that under Blackscholes the volatility is constant so it should not vary with the strike. If you have the return series, you may estimate the sigma by the usual standard deviation. – emcor Jul 2 '14 at 18:22
• Its the annualized SD of the log-returns of the underlying price: Set $R_t=\ln\left(\dfrac{S_t}{S_{t-1}}\right)$ and calculate the sample standard deviation of that as usual. You need to annualize this daily volatility by the number of days $n$ by: $\hat{\sigma}=\sqrt{n}\cdot SD$ – emcor Jul 2 '14 at 18:30

The trick is to back into the strike by using the delta formula (of course). Here is the R code posted at the site above:

BSStrikeFromDelta <- function(S0, T, r, sigma, delta, right)
{
strike <- ifelse(right=="C",
S0 * exp(-qnorm(delta * exp((r)*T) ) * sigma * sqrt(T) + ((sigma^2)/2) * T),
S0 * exp(qnorm(delta* exp((r)*T) ) * sigma * sqrt(T) + ((sigma^2)/2) * T))
return( strike);
}

• this is incorrect there is no closed form solution to the inverse normal cdf – Michael Aug 10 '17 at 13:30