The formula

\[ C(S,t)= N(d_1) S-N(d_2) K e^{-r(T-t)} \] \[ P(S,t)= N(-d_2) K e^{-r(T-t)}- N(-d_1) S \] \[ d_1=\frac{1}{\sigma \sqrt{T-t}} [\ln{S/K}+(r+\sigma^2/2)(T-t)] \] \[ d_2=\frac{1}{\sigma \sqrt{T-t}} [\ln{S/K}+(r-\sigma^2/2)(T-t)] \]

BS = function(sigma, dt, S, K, r, pc) {
    d1 = (log(S/K) + (r + sigma^2/2) * dt)/sigma/sqrt(dt)
    d2 = d1 - sigma * sqrt(dt)
    if (pc == "c") 
        return(pnorm(d1) * S - pnorm(d2) * K * exp(-r * dt))
    if (pc == "p") 
        return(pnorm(-d2) * K * exp(-r * dt) - pnorm(-d1) * S)
}
# Check
mu = 0.06
sigma = 0.2
dt = 1
r = 0.01
X = 100
BS(sigma, dt, 80, X, r, "c")
## [1] 1.302
BS(sigma, dt, 100, X, r, "c")
## [1] 8.433
BS(sigma, dt, 120, X, r, "c")
## [1] 22.94
# 1.3, 8.43,22.94
BS(sigma, dt, 120, X, r, "p")
## [1] 1.947
# Verify put call parity
BS(sigma, dt, 120, X, r, "p") + 120
## [1] 121.9
BS(sigma, dt, 120, X, r, "c") + X * exp(-r * dt)
## [1] 121.9

Question 2

X = 80
S = 100
BS(sigma, dt, S, X, r, "p")
## [1] 1.067

Question 3

\[ S_T=S_0 e^{(\mu-\frac{1}{2}\sigma^2)T+\sigma \sqrt{T} \varepsilon} \] \[ \varepsilon=\frac{1}{\sigma \sqrt{T}} ( \ln{\frac{S_T}{S_0}}-\mu+\frac{1}{2}\sigma^2 T) \]

S0 = 100
ST = 80
pGoDown80 = pnorm(1/sigma/sqrt(dt) * (log(ST/S0) - mu + 0.5 * sigma^2 * T))
print(paste("probability go down 80%: ", pGoDown80 * 100, "%"))
## [1] "probability go down 80%:  9.41343960709047 %"