# Black-Scholes parameters
S = 100
K = 100
sigma = 0.25
r = 0.03
t = 1
# other parameters
alpha = 0.05
C <- function(S,K,sigma,r,t) {
d1 <- (log(S/K) + (r+0.5*sigma^2)*t)/(sigma*sqrt(t))
d2 <- d1 - sigma*sqrt(t)
S*pnorm(d1) - K*exp(-r*t)*pnorm(d2)
}
bs_price <- C(S,K,sigma,r,t)
m = (r-0.5*sigma^2)*t
v = sigma*sqrt(t)
z = rnorm(10000)
n = z*v + m
x = exp(n)
payoff = pmax(S*x-K, 0)
mc_price <- mean(payoff)*exp(-r*t)
print(bs_price)
## [1] 11.34848
print(mc_price)
## [1] 11.46502
# stochastic deflator method
m = (alpha - 0.5*sigma^2)*t
v = sigma*sqrt(t)
z = rnorm(10000)
n = z*v + m
x = exp(n)
payoff = pmax(S*x-K,0)
D = dlnorm(S*x, meanlog = log(S) + (r - 0.5*sigma^2), sdlog=sigma) /
dlnorm(S*x, meanlog = log(S) + (alpha - 0.5*sigma^2), sdlog=sigma) * exp(-r*t)
df_price <- mean(payoff*D)
print(df_price)
## [1] 11.42453