Black-Scholes Formula and European Option Pricing › Option Price Sensitivity to Inputs

Michael BrenndoerferNovember 28, 20256 min read
Quantitative FinanceAll chapters
Part 5 of 15Stochastic Calculus and Pricing Theory
Chapter 30Black-Scholes Formula and European Option Pricing › Option Price Sensitivity to Inputs
Reading section 6 of 11 · Option Price Sensitivity to Inputs · 6 minSection 6 of 11 · 6 min

Book contents

Section 6 of 11 · 6 min read

Black-Scholes Formula and European Option Pricing › Option Price Sensitivity to InputsOne section · Sections in this chapter6 / 11 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

Let's visualize how option prices change with stock price, volatility and remaining maturity, holding the other inputs fixed. These examples build intuition for the Greeks introduced later in this chapter.

In[12]:
Code
# Calculate price sensitivity to spot price
spot_range = np.linspace(70, 130, 100)
calls_by_spot = [black_scholes_call(s, K, T, r, sigma) for s in spot_range]
puts_by_spot = [black_scholes_put(s, K, T, r, sigma) for s in spot_range]
Out[13]:
Visualization
Line chart showing call price increasing and put price decreasing as stock price rises from 70 to 130.
Call and put option prices as a function of the underlying stock price. The call value increases with stock price while the put value decreases. Both curves show characteristic convexity near the strike price.

The curves show the characteristic "hockey stick" shape approaching expiration, but smoothed by time value. Notice how both options have positive value even when out-of-the-money. This is the time value component.

In[14]:
Code
# Calculate price sensitivity to volatility
vol_range = np.linspace(0.05, 0.60, 100)
calls_by_vol = [black_scholes_call(S, K, T, r, v) for v in vol_range]
puts_by_vol = [black_scholes_put(S, K, T, r, v) for v in vol_range]
Out[15]:
Visualization
Line chart showing both call and put prices increasing as volatility rises from 5% to 60%.
Call and put option prices versus volatility with the other inputs fixed. The prices rise strictly in this nondegenerate model. A quote strictly inside the model's attainable price range has one finite positive implied volatility; strict monotonicity alone does not guarantee a solution for every quote.

With S,K,τ>0S,K,\tau>0 and the rate fixed, the call price approaches max⁡(S−Ke−rτ,0)\max(S-Ke^{-r\tau},0) as volatility tends to zero and approaches SS as volatility increases without bound. Thus a price strictly between those limits has one finite positive implied volatility. For a put, the corresponding open interval is between max⁡(Ke−rτ−S,0)\max(Ke^{-r\tau}-S,0) and Ke−rτKe^{-r\tau}. At a boundary, outside these intervals, or at expiry, a finite positive implied volatility is not guaranteed. The rate must also be selected using an appropriate discount curve and convention.

In[16]:
Code
# Calculate price sensitivity to time
time_range = np.linspace(0.01, 1.0, 100)
calls_by_time = [black_scholes_call(S, K, t, r, sigma) for t in time_range]
puts_by_time = [black_scholes_put(S, K, t, r, sigma) for t in time_range]
Out[17]:
Visualization
Line chart of call and put prices over 1 year to 0.01 years of remaining maturity, with the time axis reversed. The call declines and the put has a slight near-expiry upturn.
Call and put option prices versus remaining time to expiration. Moving left to right toward expiration, the call declines while the put rises slightly near expiration. Both converge to their intrinsic payoffs as remaining time tends to zero; the approach need not be monotonic.

In this example, the call falls as expiration approaches, while the put rises slightly near expiration. Both prices converge to their intrinsic payoffs as remaining maturity tends to zero, but not necessarily monotonically. Theta measures the local calendar-time change with other inputs held fixed.

Out[18]:
Visualization
3D surface plot of call option price as a function of stock price (80 to 120) and time to expiration (0.24 to 12 months). The surface rises with both stock price and time, with the highest values at high stock prices and long maturities.
Call option prices across stock price and time to expiration. Prices rise as the stock moves further above the strike and are higher at longer maturities, while values near and below the strike fall toward intrinsic value as expiration approaches.