Schwartz-Moon模型的蒙特卡洛模拟

请教Schwartz-Moon实物期权模型估值的matlab蒙特卡洛模拟算法,谢谢!

下面是使用 Monte Carlo 方法来模拟 Schwartz-Moon 实物期权模型估值的 Matlab 代码示例:

% 设置模拟参数
S0 = 100; % 期权标的起始价格
K = 105; % 执行价格
r = 0.05; % 无风险利率
sigma = 0.2; % 标的的波动率
T = 1; % 期权到期时间
M = 100; % 模拟的路径数
N = 1000; % 每条路径的模拟点数

% 生成随机样本
S = S0 * exp((r - sigma^2/2) * T + sigma * sqrt(T) * randn(M,N));

% 计算收益
payoffs = max(S - K, 0);

% 计算折现后的期望收益
discounted_payoffs = exp(-r * T) * mean(payoffs, 1);

% 计算期权价格
option_price = mean(discounted_payoffs);

代码中 S0 是期权标的起始价格,K 是执行价格,r 是无风险利率,sigma 是标的的波动率,T 是期权到期时间,M 是模拟的路径数,N 是每条路径的模拟点数。

我们首先生成了 M 条长度为 N 的随机路径,然后计算了每条路径的期权收益,最后计算了折现后的期望收益的平均值,最后得到了期权的价格。