Option pricing formula for deep in-the/out-of money options?

I am learning option pricing and trying to calculate the call and put price using the Black-Scholes Formula. I have calculated the historical volatility to be 0.232. The formula is gives value close to the black scholes near the current stock price but away from the stock price it diverges significantly. Following is the plot of call/put prices and acutal call/put prices for a particular stock I analysed.

I calculated the implied volatility for all the prices. Here the vertical redline is the stock price and the horizontal line is the historical volatility.

My Question. What model should I use to get accurate estimates for prices away form the stock price?

EDIT Attaching the put data.

      STRIKE_PR   CLOSE  OPEN_INT  CHG_IN_OI
4961     1380.0    2.00         0          0
4962     1400.0    2.65         0          0
4963     1420.0    3.45         0          0
4964     1440.0    4.45         0          0
4965     1460.0    5.65         0          0
4966     1480.0    7.15         0          0
4967     1500.0    8.90         0          0
4968     1520.0   11.00         0          0
4969     1540.0   13.45         0          0
4970     1560.0   16.30         0          0
4971     1580.0   19.60         0          0
4972     1600.0   23.35         0          0
4973     1620.0   27.65         0          0
4974     1640.0   15.90       800          0
4975     1660.0   12.00      1600          0
4976     1680.0   16.65      6800        800
4977     1700.0   21.75     17200       3600
4978     1720.0   29.85     10800       1200
4979     1740.0   37.70      8400      -1200
4980     1760.0   55.00      4000       1200
4981     1780.0   52.95      5200          0
4982     1800.0   77.00      5600          0
4983     1820.0  100.00       400          0
4984     1840.0  113.85         0          0
4985     1860.0  125.45         0          0
4986     1880.0  137.60         0          0
4987     1900.0  150.35         0          0
4988     1920.0  163.65         0          0
4989     1940.0  177.50         0          0
4990     1960.0  191.80         0          0
4991     1980.0  206.70         0          0
4992     2000.0  221.95         0          0
4993     2020.0  237.55         0          0
4994     2040.0  253.60         0          0

• If I correctly understood what you're trying to achieve you are observing the so-called volatility smile. That being said, where do you get your "actual" prices from? Because they do not seem to be arbitrage free. Also nothing guarantees that ATM calls trade close to the historical volatility it's all a matter of supply and demand (then again what period did you choose to estimate this volatility etc.). – Quantuple Jan 10 '18 at 9:13
• I calculated historical volatility using the adjusted stock price data I got from my company's database. The call/put actual is the closing price of the option on a day when there was one month left to expiry. When you say it doesn't seem arbitrage free are you referring to the spread that we observe in call and put prices near the stock price? – Piyush Divyanakar Jan 10 '18 at 9:20
• OK. No I'm referring to the fact that the call and put price curves should be monotonic decreasing/increasing respectively (first derivative directly linked to the CDF of terminal spot price) and both strictly convex (second derivative directly linked to the PDF of terminal spot price). – Quantuple Jan 10 '18 at 9:23
• There's no OI on most of the OTM options you're looking at, meaning the closing price is probably a last traded price (hence a stalled price if you like, i.e. a price not consistent with the current spot level). Anyway, to answer your question even if you worked with nicely behaved data you would observe that you need to increase the volatility vs. its historical value to fall back on OTM put prices for instance. This is known as the market volatility smile/skew. It can be traced to the fact that returns are not Gaussian as postulated by the BS formula but rather skewed and leptokurtic. – Quantuple Jan 10 '18 at 9:41
• Well it's usually the other way around: you imply the volatility from the market prices to get the "market implied volatility smile". Now if you want to use a model which can indeed generate such a smile natively (contrary to Black-Scholes where you have to use different volatility figures to fall back on the prices), you need to go beyond the simple Black-Scholes framework. Have a look at local volatility models or stochastic volatility models to begin with. There are plenty of useful information on quant.stackexchange to guide you in your quest. Best of luck. – Quantuple Jan 10 '18 at 10:02