matlab计算期权价格crr模型
时间: 2023-06-26 14:08:12 浏览: 201
CRR模型是一种离散时间模型,用于计算期权价格。它是由Cox、Ross和Rubinstein在1979年提出的,也称为二叉树模型。
下面是使用MATLAB计算CRR模型期权价格的示例代码:
```matlab
function [call,put] = crr(S0,K,T,r,sigma,N)
% S0: 股票价格
% K: 行权价格
% T: 期权到期时间
% r: 无风险利率
% sigma: 波动率
% N: 二叉树步数
% 计算二叉树参数
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(i,1) = S(i-1,1)*u;
for j = 2:i
S(i,j) = S(i-1,j-1)*d;
end
end
% 计算期权价值
call = zeros(N+1,N+1);
put = zeros(N+1,N+1);
for j = 1:N+1
call(N+1,j) = max(S(N+1,j)-K,0);
put(N+1,j) = max(K-S(N+1,j),0);
end
for i = N:-1:1
for j = 1:i
call(i,j) = exp(-r*dt)*(p*call(i+1,j)+(1-p)*call(i+1,j+1));
put(i,j) = exp(-r*dt)*(p*put(i+1,j)+(1-p)*put(i+1,j+1));
end
end
% 输出期权价格
fprintf('CRR Model:\n');
fprintf('Call Price: %.4f\n',call(1,1));
fprintf('Put Price: %.4f\n',put(1,1));
end
```
你可以输入 `crr(50,50,1,0.05,0.3,100)` 进行调用,这里的参数分别是:股票价格为50,行权价格为50,期权到期时间为1年,无风险利率为5%,波动率为30%,二叉树步数为100。
阅读全文