?? dekcev.m
字號:
function [output value]=DEKCEV(int,up,out,So,strike,B,term,...
sigma,r,q,Y,time,tau,K)
n=length(time);
P=zeros(n,n);
M=term; [Call,Put] = CEVprice(B,strike,r,term,sigma,time,Y,q);
NBV=flipud((Call.*int+Put.*(1-int))');
for i=1:n;
[Call,Put] = CEVprice(B,K(1,n+1-i),r,tau(1,n-i+1),sigma,...
time(1:1,1:n-i+1),Y,q);
P(i:i,1:n-i+1)=Call.*up+Put.*(1-up);
end;
P=flipud(fliplr(P'));
alphaout=P\(-NBV);
[Call,Put] = CEVprice(So,K,r,tau,sigma,0,Y,q);
[C1,P1] = CEVprice(So,strike,r,term,sigma,0,Y,q);
pricevec=[C1*int+P1*(1-int),Call*up+Put*(1-up)];
valueout=dot(pricevec',[1;alphaout]);
% Output 1: Value of replicating portfolio.
% ----------------------------------------
value=(C1*int+P1*(1-int)-valueout)*(1-out)+valueout*out;
% Output 2: Positions that need to be taken.
% ------------------------------------------
alpha=([1;zeros(n,1)]-[1;alphaout])*(1-out)+[1;alphaout]*out;
Type=[2*int-1; (up*2-1)*ones(n,1)];
output=[alpha [strike K]' [term tau]' Type pricevec'];
disp(' Position Strike Maturity Type Price');
disp(output);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -