Hello! I'm trying to create the 95% confidence interval for a simulation of Asian Call and Put options. When I run the following code the result for the options seems to be outside of the Confidence interval so I'm wondering if I either have a mistake in the estimation or in the Confidence interval code. Here's my coding.
clear allclcS0 = 100; %Today's stock price
T = 0.5; %time to maturity
K = 105; % Strike (exercise) price
r = 5/100; % yearly interest rate
sigma = 23/100; %yearly volatility
m = 1e5; % number of simulations
n = round(T*252); %number of time steps/increments
S = zeros(1,n); S(1) = S0; dt = T/n; % time increments
t = 0:dt:T-dt; payoff_c = zeros(1,m); payoff_p = zeros(1,m);Z = randn(m,n); % creating standard normal random variables
%Asian Call & Put simulation
for j = 1:m for i = 1:n-1 % below, dt = t(i+1) - t(i)
S(i+1) = S(i)*exp((r-sigma.^2/2)*dt + sigma * sqrt(dt) * Z(j,i)); end payoff_c(j) = max(0,mean(S)-K); payoff_p(j) = max(0,K-mean(S));endc_est = exp(-r*T)*mean(payoff_c)p_est = exp(-r*T)*mean(payoff_p) % Create Data
SE_Call = std(payoff_c)/sqrt(length(payoff_c)); % Standard Error
TS_Call = tinv([0.025 0.975],length(payoff_c)-1); % T-Score
CI_Call = mean(payoff_c) + TS_Call*SE_Call % Confidence Interval
SE_Put = std(payoff_p)/sqrt(length(payoff_p)); TS_Put = tinv([0.025 0.975],length(payoff_p)-1); CI_Put = mean(payoff_p) + TS_Put*SE_Put
Best Answer