二叉树美式期权定价matlab代码
时间: 2023-07-03 08:25:33 浏览: 402
美式期权二叉树定价及matlab程序.docx
二叉树模型是一种常用的衍生品定价模型,可以用于美式期权的定价。以下是一个使用MATLAB进行二叉树美式期权定价的示例代码,其中使用Cox-Ross-Rubinstein二叉树模型进行定价。
```matlab
S0 = 100; % 标的资产初始价格
K = 110; % 期权执行价格
r = 0.05; % 无风险利率
T = 1; % 期权到期时间
sigma = 0.2; % 标的资产波动率
N = 100; % 二叉树步数
dt = T/N; % 时间步长
u = exp(sigma*sqrt(dt)); % 上涨因子
d = 1/u; % 下跌因子
p = (exp(r*dt)-d)/(u-d); % 上涨概率
% 构造二叉树
S = zeros(N+1, N+1);
S(1,1) = S0;
for i = 2:N+1
S(1:i-1,i) = S(1:i-1,i-1)*u;
S(i,i) = S(i-1,i-1)*d;
end
% 计算期权支付值
payoff = max(S - K, 0);
% 美式期权定价
for i = N:-1:1
% 计算终止期权价值
value = exp(-r*dt)*(p*payoff(1:i,i+1)+(1-p)*payoff(1:i,i));
% 计算当前期权价值
payoff(1:i,i) = max(S(1:i,i)-K, value);
end
fprintf('二叉树美式期权定价结果为:%.4f\n', payoff(1,1));
```
输出结果可能会略有不同,由于随机性,每次运行结果可能会有所不同。
阅读全文