Problem bank

Problem 267 of 333HardCodingP267

An implied volatility solver that cannot fail

  1. You have bs_call(S, K, T, r, sig), which returns the Black-Scholes call price and vega. Plain Newton from σ0=20%\sigma_0 = 20\% works for at-the-money options but fails for S=100S = 100, K=150K = 150, T=0.25T = 0.25, r=0r = 0 and a quoted price of 1.4861.486.

    Explain why it fails, then write implied_vol(price, S, K, T, r) that returns the implied volatility whenever one exists. Which inputs should it reject?