0
$\begingroup$

So, I was playing around with the Greeks in Python with some made up data for a European call option assuming the Black-Scholes model. I plotted the graphs to see what happens to the Greeks when either the Time to Maturity or the Volatility change, other things being equal. You can see the graphs below:

enter image description here

I noticed that as the Time to maturity tends to zero, all the Greeks "converge" to the strike price. However, the same is not true for the Volatility. The Greeks seem to "converge" to the value just to the left of the strike. I am not sure if that's intended or if my code isn't correct. Would love to see either a confirmation of the result (and an explanation as to where the Greeks "converge") or a suggestion on where I might have gone wrong here. The code below shows the Python code for the Greeks:

def vega(S_t, K, r, q, T, t, sigma): # vega
    d_1 = (np.log(S_t / K) + (r - q + sigma**2 / 2) * (T - t)) / (sigma * np.sqrt(T - t))
    return S_t * np.exp(-q * (T - t)) * phi(d_1) * np.sqrt(T - t)

def delta(S_t, K, r, q, T, t, sigma, type = 'call'): # delta
    d_1 = (np.log(S_t / K) + (r - q + sigma**2 / 2) * (T - t)) / (sigma * np.sqrt(T - t))
    if type == 'call':
        sign = 1
    elif type == 'put':
        sign = -1
    return sign * N(sign * d_1) * np.exp(-q * (T - t))

def gamma(S_t, K, r, q, T, t, sigma): # gamma
    d_1 = (np.log(S_t / K) + (r - q + sigma**2 / 2) * (T - t)) / (sigma * np.sqrt(T - t))
    return np.exp(-q * (T - t)) * phi(d_1) / (S_t * sigma * np.sqrt(T - t))

def theta(S_t, K, r, q, T, t, sigma, type = 'call'): # theta
    d_1 = (np.log(S_t / K) + (r - q + sigma**2 / 2) * (T - t)) / (sigma * np.sqrt(T - t))
    d_2 = d_2 = d_1 - sigma * np.sqrt(T - t)
    if type == 'call':
        sign = 1
    elif type == 'put':
        sign = -1
    return -np.exp(-q * (T - t)) * S_t * sigma * phi(d_1) / (2 * np.sqrt(T - t)) - sign * np.exp(-r * (T - t)) * r * K * N(d_2 * sign) + sign * q * S_t * np.exp(-q * (T - t)) * N(sign * d_1)
$\endgroup$
5
  • 4
    $\begingroup$ I suspect that the forward stock price, $Se^{r(T-t)}$, is on the strike, rather than the spot price? $\endgroup$
    – dm63
    Nov 30, 2023 at 4:37
  • 1
    $\begingroup$ A complete listing of the parameter values S, K, r, q, T-t, sigma used for the base case could be helpful. $\endgroup$
    – nbbo2
    Nov 30, 2023 at 7:46
  • $\begingroup$ @dm63 Sounds reasonable (although I guess you meant K instead of S), but is that intended is the question. As in, are the results factually correct? $\endgroup$
    – Mr. Ivan
    Nov 30, 2023 at 10:04
  • 1
    $\begingroup$ @nbbo2 the spot price is the range from about 0 to 200; the strike is 100; r=0.05; q=0; T-t=1; sigma=0.5 $\endgroup$
    – Mr. Ivan
    Nov 30, 2023 at 10:12
  • 1
    $\begingroup$ I believe the results are correct. The positive value of r causes the spike on the 2d row 2d column to be slightly to the left of 100, if you change it to r=0 it will be centered on 100 just as the chart in the 1st column. It is an interest rate effect that disappears if there is no time left or 0 interest rate. $\endgroup$
    – nbbo2
    Nov 30, 2023 at 16:09

1 Answer 1

2
$\begingroup$

If you shrink the volatility (let's say more extreme it goes to zero), then the spot price at maturity is simply $S_t e^{r(T-t)}$. There are no uncertainty; the at-maturity spot price becomes somehow deterministic.

Take Delta as example. Under the zero volatility situation, everything is kind of known. If $S_t < K e^{-r(T-t)}$, then it means at maturity,

$$S_t e^{r(T-t)} < K,$$ leading to a payoff of 0, corresponding to a 0 delta. On the other hand, $S_t \geq K e^{-r(T-t)}$ then

$$ S_t e^{r(T-t)} \geq K, $$ corresponding to a 1 delta. Since everything is determined on the current spot price $S_t$, the Delta is just a step function now, with the dividing point at $Ke^{-r(T-t)}$, which is exactly to the left of the strike (assuming $r>0$).

That's what happens when $\sigma$ shrinks: Delta converges more towards a step function, centering on $Ke^{-r(T-t)}$. A similar treatment can be applied to other Greeks as well.

$\endgroup$
4
  • $\begingroup$ " the at-maturity spot price becomes somehow deterministic" would you add explanation or it is just obvious? $\endgroup$
    – Cloud Cho
    Dec 1, 2023 at 7:28
  • 1
    $\begingroup$ @CloudCho In this case when $\sigma$ becomes 0, there are no randomness driving the stock price movement (since $r$ is a constant), so the stock price evolution becomes deterministic. $\endgroup$
    – JamesWuuuu
    Dec 1, 2023 at 16:39
  • $\begingroup$ It looks like $d_1$ has the sigma in its denominator. What happened to $d_1$ if the sigma be getting close to zero? $\endgroup$
    – Cloud Cho
    Dec 2, 2023 at 1:18
  • $\begingroup$ @CloudCho When $\sigma$ goes to 0, $d_1$ is dominated by $\frac{\ln(\frac{S}{K}) + rT}{\sigma\sqrt{T}}$. The value goes to infinity, but the sign depends on the "moneyness" ($\ln(S e^{rT} / K)$) which is the logarithm of the moneyness with the stock price replaced by the forward price. When forward price > K, $d_1$ becomes $+\infty$, and when forward price < K, $d_1$ becomes $-\infty$. $\endgroup$
    – JamesWuuuu
    Dec 2, 2023 at 22:45

Not the answer you're looking for? Browse other questions tagged or ask your own question.