matlab期权crr定价
时间: 2023-10-04 19:14:14 浏览: 198
美式期权定价:使用树输出的CRR方法进行美式期权定价-matlab开发
CRR(Cox-Ross-Rubinstein)期权定价模型是二叉树期权定价模型的一种,它是由Cox、Ross和Rubinstein于1979年提出的。该模型使用二叉树模拟资产价格的变化,并计算期权的价值。下面是使用MATLAB实现CRR期权定价的代码示例:
```matlab
function [c,p] = crr(S0,K,r,T,sigma,n)
% S0: 初始股票价格
% K: 行权价
% r: 无风险利率
% T: 到期时间
% sigma: 波动率
% n: 时间步数
dt = T/n; % 时间步长
u = exp(sigma*sqrt(dt)); % 上涨因子
d = 1/u; % 下跌因子
p = (exp(r*dt) - d)/(u - d); % 上涨概率
q = 1-p; % 下跌概率
% 构造二叉树
S = zeros(n+1,n+1);
for i = 1:n+1
S(i,1:i) = S0*u^(i-1)*d.^(0:i-1);
end
% 计算期权价值
c = zeros(n+1,n+1); % call option
p = zeros(n+1,n+1); % put option
for i = 1:n+1
c(i,n+1) = max(S(i,n+1) - K, 0);
p(i,n+1) = max(K - S(i,n+1), 0);
end
for j = n:-1:1
for i = 1:j
c(i,j) = exp(-r*dt)*(p*c(i,j+1) + q*c(i+1,j+1));
p(i,j) = exp(-r*dt)*(p*p(i,j+1) + q*p(i+1,j+1));
end
end
% 输出结果
fprintf('CRR Call Option Price: %.4f\n', c(1,1));
fprintf('CRR Put Option Price: %.4f\n', p(1,1));
```
使用示例:
```matlab
S0 = 100; % 初始股票价格
K = 105; % 行权价
r = 0.05; % 无风险利率
T = 1; % 到期时间
sigma = 0.2; % 波动率
n = 100; % 时间步数
[c,p] = crr(S0,K,r,T,sigma,n); % 计算期权价值
```
注意:该代码仅供参考,实际应用中需要根据具体情况进行调整和修改。
阅读全文