我必须为 Call option 解决以下 PDE:
其中 V(S,t) 是期权价格作为股票价格 S 和时间 t 的函数,均值回归的强度,平均回报率,是无风险利率,并且 是股票的波动率,风险的市场价格。我已经解决了 S 的有限差分偏微分方程,并且根据练习的需要,当时的欧拉显式(我在这里上传了带有所有数据的 Matlab 代码)。我的问题是关于边界条件的。对于 Black-Scholes 方程很简单:
- 左端 S = 0:所以 payoff(S) = payoff(0) = max(0-K,0) = 0,因此.
- 右端 S = M:其中 M 相对于 K 是“大”的,payoff(S) = max(SK,0) = S - K,所以收益等于 S - K 的期权的价值就是,.
左端条件保持不变,但我不明白如何更改右端。
% Generate a Path for the Schwartz single factor model.
% Call
% We start from : dS = ...., then X = log(S).
clear all
close all
%% Parameters
T = 1; % End time
K = 1.5; % Strike price
alpha = 10; % strength of mean reversion
mu = 1; % long term mean
sigma = 0.7; % volatility
r = 0.1; % risk-free interest rate
lambda = mu - r;% Market Price of Risk
lambdaHat = lambda/alpha;
Nt = 5000; % number of time steps
%% Eu for PDE
ds = 0.01;
dt = T/Nt;
t = 0:dt:T;
Ns = round(3*(K/ds)); % Number of "price" step
S = ds*(0:(Ns));
S1 = S(2:(end-1)); % all but endpoints
V = max(S-K,0);
hold on
plot(S,V,'o-b')
%% PDE solution
Ws = alpha*(mu - lambdaHat - log(S1)).*S1;
Zs = 0.5*sigma^2*S1.^2;
Vnew = zeros(Ns+1,1);
Vold = V;
for k = 2:Nt
F = zeros(Ns+1,1)';
dV = (Vold(3:end) - Vold(1:(end-2)))/(2*ds);
ddV = (Vold(3:end) - 2*Vold(2:(end-1)) + Vold(1:(end-2)))/(ds^2);
F(2:(end-1)) = Ws.*dV + Zs.*ddV - r*Vold(2:(end-1));
Vnew = Vold + dt*F;
%% Boundary cond
Vnew(1) = 0; % left end condition
Vnew(end) = S(end) - K*exp(-r*k*dt); % right end condition
% Update solution
Vold = Vnew;
end
hold on
plot(S,Vnew,'-r')