文章标题

%本程序求得沪深300在下跌-0.03时候所有的策略和指数的幅度
%%清空数据  第二份输出数据
clear;clc
tic
format long
%% 数据拉取
[data_fund,textdata_fund,raw_fund]=xlsread('入选子基金及组合.xlsx','子基金');
[data_all,textdata_all,raw]=xlsread('入选子基金及组合.xlsx','子基金汇总');
[dataindex,textindex,raw_index]=xlsread('基金指数编制.xlsx','指数汇总');
%读取两端数据并对其,然后求出指数的各类绩效,并制作表将其写入表中,这是个重要技能以后会有大的用处。
%% 数据拉取 沪深300
%[data_fund01]=xlsread('hs300.xls','Sheet1');
%[data_fund01]=xlsread('winda500.xls','Sheet1');
%[data_fund01]=xlsread('zzzcf500.xls','Sheet1');
[data_fund01]=xlsread('zh500.xls','Sheet1');


%datetime = datestr(data_fund01(:,1),26);
%datetime01 = datestr(data_fund01(2:2,1),'yyyy/mm/dd');
datetime = datestr(data_fund01(:,1),25);
[mm,nn]= size(datetime);
for i=1:mm  
    tmp{i}=datetime(i,:)
end
tmpall=tmp';
for i=1:mm  
    tmpall{i,2}=data_fund01(i:i,2);
end
%先对齐
%找到所有小于0.03的日期,并从其余的数字列表中相应的收益序列,最后求得平均值
%TR300 = tick2ret(data_fund(:,2));
%%
%textdata_all 中的日期,用喜悦那个表的整体的截取hs300的
startTime= textdata_all(2:2,1:1);
startTime01= datestr(startTime,25);
endTime= textdata_all(end:end,1:1);
endTime01= datestr(endTime,25);
%用这个数据进行截取,总算截取成功了,原来的数据坑死人了
[m1,n1]=size(tmpall);
ktime =0;
for i=1:m1
    dt = tmpall{i,1};
    if strcmp(dt,startTime)
       ktime=i;
       fprintf('开始时间');
    end
end
stime = ktime;
ptime =0;
for i=1:m1
    dt = tmpall{i,1};
    if strcmp(dt,endTime01)
       ptime=i;
       fprintf('结束时间');
    end
end
etime = ptime;
%% 最终截取的数据就是这个
dataTitan =tmpall(stime:etime,2:2);
%求这个阶段收益率的小于-0.03的部分
rem=[];
k=0;
remhs =0;
TRdata = tick2ret(data_fund01(stime:etime,2));
for j =1:65
   if TRdata(j:j,1:1)<-0.03
       rem(j)=1;
       k=k+1;
       remhs =remhs+TRdata(j:j,1:1);
   elseif TRdata(j:j,1:1)>-0.03
       rem(j)=0;
   end
end
meanremhs=remhs/k;
%%
%根据上面返回的数列,找到下面这些数的平均收益,rem记录了有哪些是低于-0.03的数据日期,在这些日期中他们的平均
%喜岳 %长丰 %淘利 %盛冠达 %因诺 %青骓 %雁丰 %黑翼 %量道 %组合
remTR= [];
meanTR = [];
for  i=1:10
    remK =0;
    TR = tick2ret(data_all(:,i));
    for j =1:65
       if isnan(TR(j:j,1:1))==0
           if rem(j)==1
               remTR(j)=TR(j:j,1:1);
               remK=remK+TR(j:j,1:1);
           elseif rem(j)==0
               remTR(j)=0;  
           end
       end
    end
    meanTR(i)= remK/k;
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值