% 4월 13일 만기(34일) = 0.56
% 5월 11일(62일) = 1.65
% 6월 8일(90일) = 2.78
% 7월 13일(125일) = 3.30
% 8월 10일(153일)= 3.46
% 9월 14일(188일)= 4.20 

a = 0; 
b = 900;
Nx = 899; % asset size를 1로 잡음 %
x = linspace(a,b,Nx+2);

sigma = 0.0844;
r = 0.0149; % 현재 3개월 CD금리는 1.49퍼센트 %
h = x(2)-x(1);
dt = 0.05/365.0; % 안정성을 위하여 0.1/365.0보다 절반 size를 택함 %

for i = 2:Nx+1
    u(i,1) = max(x(i)-280,0);
end

u(1,1) = 2*u(2,1)-u(3,1);
u(Nx+2,1) = 2*u(Nx+1,1)-u(Nx,1);

for j = 1:340*2 % 만기일 * 20 %
    for i = 2:Nx+1
        u(i,j+1) = u(i,j) + dt*(sigma^2 * x(i)^2 * (u(i+1,j) - 2*u(i,j) ...
            + u(i-1,j))/(2*h^2) + r*x(i)*(u(i+1,j)-u(i-1,j))/(2*h) - r*u(i,j));
    end
    u(1,j+1) = 2*u(2,j+1)-u(3,j+1);
    u(Nx+2,j+1) = 2*u(Nx+1,j+1) - u(Nx,j+1);
end

% FDM의 안정성을 보기 위하여 plot을 관찰 %
hold on

for i = 1:50:340*2
    plot(x(1:Nx-400),u(1:Nx-400,i))
end

interp1(x,u(:,end),272.29) % 코스피200의 현재 지수는 272.29 %

% 4월 13일 만기의 선물옵션의 가격은 0.56이고 이때의 변동성은 0.0844 %
% 5월 11일 만기의 선물옵션의 가격은 1.65이고 이때의 변동성은 0.094125 %
% 6월 8일 만기의 선물옵션의 가격은 2.78이고 이때의 변동성은 0.100483 %
% 7월 13일 만기의 선물옵션의 가격은 3.30이고 이때의 변동성은 0.092065 %
% 8월 10일 만기의 선물옵션의 가격은 3.46이고 이때의 변동성은 0.084055 %
% 9월 14일 만기의 선물옵션의 가격은 4.20이고 이때의 변동성은 0.084008 %