June 8th, 2008, 8:38 am
Hi all,i try to write a code about Monte Carlo simulation of Heston Model for european call price in Matlab, but there is some problem that i can not figure it out!can anyone help me?regards.function [European_call] = Monte_Carlo_HestonK = 100;T = 1;S = 100;sigma = 0.2;r = 0.06;div = 0.03;alpha = 5.0;Vbar = 0.20;Xi = 0.02;N = 52;M = 10000;dt = T/N;rho=-0.5;sdt = sqrt(dt);sum_CT = 0;sum_CT2 = 0;for j = 1:M St1 = S; St2 = S; Vt = sigma^2; eps1 = randn(N,1); eps2 = randn(N,1); eps3 = rho*eps1 + sqrt(1-rho^2)*eps2; for i = 1:N Vtn = Vt + alpha*(Vbar-Vt)*dt + Xi*sqrt(Vt)*sdt*eps3(i,1); Vt = Vtn; Vt = abs(Vt); %prevents negative volatilities Stn1 = St1 + (r-div)*St1*dt + sqrt(Vt)*St1*sdt*eps2(i,1); Stn2 = St2 + (r-div)*St2*dt + sqrt(Vt)*St2*sdt*-eps2(i,1); St1 = Stn1; St2 = Stn2; end CT = 0.5*(max(St1 - K , 0)+ max(St2 - K , 0)); sum_CT = sum_CT + CT; sum_CT2 = sum_CT2 + CT^2;endEuropean_call = sum_CT/M*exp(-r*T)SD = sqrt((sum_CT2 - (sum_CT^2)/M)*exp(-2*r*T)/(M-1));SE = SD/sqrt(M)
Last edited by
rnsahin on June 7th, 2008, 10:00 pm, edited 1 time in total.