@shuangtoa
2015-02-17T04:03:55.000000Z
字数 1394
阅读 375
未分类
%load('rawdata.mat');T=120; %设立三种投资期限,60个交易日,120个交易日,252个交易日w=0.05;L=length(option_close);I=HS300close; %使用指数收盘价作为IF=option_close; %使用期货收盘价作为Fswap=24; %每24分钟换仓一次day=L/240;sigma=0.2;position=zeros(1,floor(240/swap));hold=zeros(1,day);cash=zeros(1,day);earn60=zeros(1,day);HSplot=zeros(1,day);cost_per=option_open(1);hold(1)=cost_per*position(1);cash(1)=-hold(1);for j=1:day-T+1K=F(240*(j-1)+1)*(1-w*T/365); %每一天的开盘价计算60天期限的期权行权价for d=1:Tflag=swap-1;for m=1:240flag=flag+1;i=(j-1)*240+(d-1)*240+m;n=(d-1)*240+m;if flag==swap %到换仓时间position(n)=normcdf((log(I(i)/K)+0.5*sigma^2*(T-d))/(sigma*sqrt(T-d)));%计算应当持仓的数量flag=0;elseposition(n)=position(n-1);endendendfor k=2:n %计算一天,一定期限下一只期权的收益,用于画图检验看涨期权复制i=(j-1)*240+k;if position(k)<position(k-1)deta=position(k-1)-position(k);hold(j)=hold(j)-1*deta*cost_per;%换仓若是卖,持仓金额的变化cash(j)=cash(j)+deta*(F(i)-cost_per);%现金金额的变化cost_per=hold(j)/position(k);%持仓单位成本的变化endif position(k)>position(k-1)deta=position(k)-position(k-1);hold(j)=hold(j)+deta*F(i);cash(j)=cash(j)-deta*F(i);cost_per=hold(j)/position(k);endendearn60(j)=(F(i)*position(k)+cash(j));HSplot(j)=(HS300close((j-1+T)*240)-HS300open((j-1)*240+1))/HS300open((j-1)*240+1);%指数每日收益endttest_res=ttest(hold-HSplot);for j=2:day-T+1earnplot(j)=earn60(j)/earn60(j-1);endplot(HSplot(2:day-T+1),winsorize(earnplot(2:day-T+1)),'or');xlabel('指数收益');ylabel('产品净值');title('delta复制期权效果');
最后是这个鬼东西。。。 这是120天的
60天的更加惨不忍睹
