[关闭]
@shuangtoa 2015-02-17T04:03:55.000000Z 字数 1394 阅读 375

怎么就写不对了呢

未分类


  1. %
  2. load('rawdata.mat');
  3. T=120; %设立三种投资期限,60个交易日,120个交易日,252个交易日
  4. w=0.05;
  5. L=length(option_close);
  6. I=HS300close; %使用指数收盘价作为I
  7. F=option_close; %使用期货收盘价作为F
  8. swap=24; %每24分钟换仓一次
  9. day=L/240;
  10. sigma=0.2;
  11. position=zeros(1,floor(240/swap));
  12. hold=zeros(1,day);
  13. cash=zeros(1,day);
  14. earn60=zeros(1,day);
  15. HSplot=zeros(1,day);
  16. cost_per=option_open(1);
  17. hold(1)=cost_per*position(1);
  18. cash(1)=-hold(1);
  19. for j=1:day-T+1
  20. K=F(240*(j-1)+1)*(1-w*T/365); %每一天的开盘价计算60天期限的期权行权价
  21. for d=1:T
  22. flag=swap-1;
  23. for m=1:240
  24. flag=flag+1;
  25. i=(j-1)*240+(d-1)*240+m;
  26. n=(d-1)*240+m;
  27. if flag==swap %到换仓时间
  28. position(n)=normcdf((log(I(i)/K)+0.5*sigma^2*(T-d))/(sigma*sqrt(T-d)));%计算应当持仓的数量
  29. flag=0;
  30. else
  31. position(n)=position(n-1);
  32. end
  33. end
  34. end
  35. for k=2:n %计算一天,一定期限下一只期权的收益,用于画图检验看涨期权复制
  36. i=(j-1)*240+k;
  37. if position(k)<position(k-1)
  38. deta=position(k-1)-position(k);
  39. hold(j)=hold(j)-1*deta*cost_per;%换仓若是卖,持仓金额的变化
  40. cash(j)=cash(j)+deta*(F(i)-cost_per);%现金金额的变化
  41. cost_per=hold(j)/position(k);%持仓单位成本的变化
  42. end
  43. if position(k)>position(k-1)
  44. deta=position(k)-position(k-1);
  45. hold(j)=hold(j)+deta*F(i);
  46. cash(j)=cash(j)-deta*F(i);
  47. cost_per=hold(j)/position(k);
  48. end
  49. end
  50. earn60(j)=(Fi)*positionk)+cash(j));
  51. HSplot(j)=(HS300close((j-1+T)*240)-HS300open((j-1)*240+1))/HS300open((j-1)*240+1);%指数每日收益
  52. end
  53. ttest_res=ttest(hold-HSplot);
  54. for j=2:day-T+1
  55. earnplot(j)=earn60(j)/earn60(j-1);
  56. end
  57. plot(HSplot(2:day-T+1),winsorize(earnplot(2:day-T+1)),'or');
  58. xlabel('指数收益');
  59. ylabel('产品净值');
  60. title('delta复制期权效果');

最后是这个鬼东西。。。 这是120天的
此处输入图片的描述
60天的更加惨不忍睹
此处输入图片的描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注