障碍物期权的边界条件-MATLAB

时间:2019-04-06 12:45:01

标签: matlab stochastic-process

(对于给定的代码)我需要调整边界条件以对屏障期权定价。障碍期权就像欧洲期权一样,除了一旦股票价格越过障碍,期权价格就变为零。我们在这里谈论的是 Up and Out ,也就是 knock-out 选项。

该期权的收益与欧洲收益相同,该收益存储在 Vold 向量中。伪代码是:

if S >= B
   Vold = 0;
else
   Vold = max(S-K,0);
end 

K为行使价。下面给出了必须调整的代码。当我运行original code时,Vold和Vnew在 for k = 1:m 运行后存储所有值。调整必须以以下方式进行:一旦股票价格越过障碍,Vold和Vnew将不存储任何值或将零存储为值。我们使用内插法来找到Call barrier选项的确切值。

call_fdm = interp1(S,Vold,S0);

代码类似于热方程(这是相同的修改版本)。我确切知道必须在哪里进行更改。

for k=1:M
% Boundary condition for European call option

boundary = [l(1)*0;zeros(N-3,1);u(N-1)*(Smax*exp(-q*(k-1)*dtau) -    
K*exp(-r*(k-1)*dtau))];
% Explicit iteration scheme
for j=1:N-1
    if(j==1)
        Vnew(j) = d(j)*Vold(j) + u(j)*Vold(j+1);
    elseif(j<N-1)
        Vnew(j) = l(j)*Vold(j-1) + d(j)*Vold(j) + u(j)*Vold(j+1);
    else
        Vnew(j) = l(j)*Vold(j-1) + d(j)*Vold(j);
    end
end
    % Update the vectors from time k to time k+1
Vold = Vnew + boundary;

end

在绘制时,输出必须是敲除障碍选项的输出。

https://imgur.com/a/xOavtbh

0 个答案:

没有答案