From Binomial to Black-Scholes-Merton Finance 30233, Fall 2017 The Neeley School S. Mann S.Mann, 2017
Historical Volatility Computation annualized standard deviation of asset rate of return 1) compute daily returns 2) calculate variance of daily returns 3) multiply daily variance by 252 to get annualized variance: s 2 4) take square root to get s or: 1) compute weekly returns 2) calculate variance 3) multiply weekly variance by 52 take square root Or: 1) Compute monthly returns 3) Multiply monthly variance by 12 4) take square root S.Mann, 2017
Calibrating Binomial Tree: 1) Set “up” and “down” factors to reflect volatility: U = 1 + s√T D = 1 - s√T Adjust so expected future price is forward price: E[S(T)] = S0 ( 1 + (r – d)T ) Simple form: U = 1 + (r – d)T + s√T D = 1 + (r – d)T - s√T Or, in continuous time (McDonald): U = exp((r – d)T + s√T) D = exp((r – d)T - s√T) See “Fin30233-F2017_Binomial Tutor.xls” (available on Mann’s course website)
S.Mann, 2017
S.Mann, 2017
VBA code for binomial European Call (for later reference) Function Binom(n, X) Binom = Application.Combin(n, X) * 0.5 ^ X * 0.5 ^ (n - X) End Function Function scm_bin_eur_call(S, X, rf, sigma, t, n) dt = t / n up = Exp((rf - (sigma ^ 2) / 2) * dt + sigma * Sqr(dt)) down = Exp((rf - (sigma ^ 2) / 2) * dt - sigma * Sqr(dt)) r = Exp(rf * dt) p = (r - down) / (up - down) q = 1 - p scm_bin_eur_call = 0 For Index = 0 To n scm_bin_eur_call = scm_bin_eur_call + Exp(-rf * t) * Application.Combin(n, Index) * p ^ Index * q ^ (n - Index) * Application.Max((S * up ^ Index) * (down ^ (n - Index)) - X, 0) Next Index Note: code in red has to be on one line for vba to compile the code
S.Mann, 2017
Black-Scholes-Merton model assumptions Asset pays no dividends European call No taxes or transaction costs Constant interest rate over option life Lognormal returns: ln(1+r ) ~ N (m , s) reflect limited liability -100% is lowest possible stable return variance over option life S.Mann, 2017
Simulated lognormal returns Lognormal simulation: visual basic subroutine : logreturns
Simulated lognormally distributed asset prices Lognormal price simulation: visual basic subroutine : lognormalprice) S.Mann, 2017
Black-Scholes-Merton Model (no dividends) C = S N(d1 ) - KZ(0,T) N(d2 ) ln (S/K) + (r + s2/2 )T d1 = s T d2 = d1 - s T N( x) = Standard Normal [~N(0,1)] Cumulative density function: N(x) = area under curve left of x; e.g., N(0) = .5 coding: (excel) N(x) = NormSdist(x) N(d1 ) = Call Delta (D) = call hedge ratio = change in call value for small change in asset value = slope of call: first derivative of call with respect to asset price S.Mann, 2017
S.Mann, 2017