关闭

0825完成版

84人阅读 评论(0) 收藏 举报
% % 20160825
% 得到母基金的股票和股指期货持仓的交易日收益率
%计算母基金equity 下 PN,PH的占比计算,分别求得相应的日占比。
%{
Rate= Pn*Rs+ Ph*(Rs-Ri)+Ph*(Ri-Rsf)+Pcf*Rcf 
Rs 股票净值收益率
Ri 股指期货指数收益率,股指+期货的收益率,反应的是股票 指数部分的收益
Rsf 股指期货净值收益率
Pn Ph 分种类情况
%}


clear;clc
tic


%% 母基金名称
ProName=['("母基金二期")'];%['("母基金二期","母基金三期","母基金四期")']




%% 连接数据库
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver',...
    'jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);




%% 提取母基金代码
sql=sprintf('select productCode from product where productName in %s order by productCode',ProName);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
FOFCode=cursorA.Data;
close(cursorA);




%% 提取母基金的equity值
foc= FOFCode{1,1}; %母基金名称
Index=['tradingday,productCode,equity'];
%sql=sprintf('select %s from account where productCode = %d',Index,foc);
sql=sprintf('select %s from account where productCode = %s order by tradingDay',Index,foc);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
FOFequity=cursorA.Data;
close(cursorA);




%% 提取母基金所有股票和期货信息
FundCodeValue=eval(FOFCode{1});%cell转数值为母基金的代码    
Index=['tradingDay,instType,instrumentCode,productCode,marketValue,direction'];
sql=sprintf('select %s from positions_history where left(productCode,5)=%d order by tradingDay',Index,FundCodeValue);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
allInst=cursorA.Data;
close(cursorA);




%% 保留‘600’、‘601’、‘603’、‘000’、‘002’和‘300’打头的股票部分
instType=allInst(:,2); 
instrumentCodeAll=allInst(:,3); 
x=find(strncmp(instrumentCodeAll,'600',3)|strncmp(instrumentCodeAll,'601',3)...
       |strncmp(instrumentCodeAll,'603',3)|strncmp(instrumentCodeAll,'000',3)...
       |strncmp(instrumentCodeAll,'002',3)|strncmp(instrumentCodeAll,'300',3)...
       |strcmp(instType,'期货')); %这个是找到x的位置数值
allInst=allInst(x,:);  




%% 排除商品期货部分
instType=allInst(:,2); 
instrumentCodeAll=allInst(:,3); 
x=find(strncmp(instrumentCodeAll,'IC',2)|strncmp(instrumentCodeAll,'IF',2)...
              |strncmp(instrumentCodeAll,'IH',2)|strcmp(instType,'股票'));
allInst=allInst(x,:);  
allInst(:,3)=strrep(allInst(:,3),'CFFEX','CFE');%'CFFEX'替换为'CFE',便于wind查询




%% 提取股票、股指期货的日收益率
instrumentCodeUni=unique(allInst(:,3));  %存储所有不重复的股票代码 
for i=1:1:length(allInst(:,1))
    dayAll{i,1}=allInst{i};              % 日期在第一列
end
dayUni=unique(dayAll);




%% 以上已经将母基金包含的信息全部得到了,下面先求子基金代码,
FundCodeValue=eval(FOFCode{1});%cell转数值为母基金的代码 ,数值转换  
Index=['productCode,accountType,parentProductCode'];
sql=sprintf('select %s from product where parentProductCode=%d ',Index,FundCodeValue);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
Fundname=cursorA.Data;
close(cursorA);




%% 子基金运算  提取子基金的equity值
Fund = Fundname{1,1}; %子基金名称,这里仅仅是一个子基金,改行不改列
Index=['tradingday,productCode,equity'];
sql=sprintf('select %s from account where productCode = %s order by tradingDay',Index,Fund);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
Fundequity=cursorA.Data;
close(cursorA);


%%
load('data0829/Rate.mat');
%%
%当a10 为 1 时候,基金没有数据,当不等于1时有数据
a10 = length(Fundequity);
for j=1:168 %因为 rate表只到168 
    %j=10;
    xday=Fundequity{j,1};
    Fundday = Fundequity(:,1);
    xf = find(strcmp(Fundday,xday));
    Funddayinfo=Fundequity(xf,:);    %xf 就是占位数目,同收益率 有关
    Fname = allInst(:,4);            %子基金
    xa=find(strncmp(Fname,Fund,10)); %某个子基金下的某日的股票和期货
    
    if ~isempty(xa) %判断是否有股票 期货
        alldayinfo=allInst(xa,:);   %可能里面有重复的
        eday = alldayinfo(:,1);     %全部日期
        xb=find(strcmp(eday,xday));
        onedayinfo02=alldayinfo(xb,:);
        
        %xdx= find(strcmp(dayUni,xday));
        xdx = xf;
        %通过dayUni 确定信息在rateTable的第几行 问题在这
        
%%     %判断股票和期货是否存在
%%     股票类,收益率
        atype = '股票';
        ctype = onedayinfo02(:,2); 
        xc=find(strcmp(ctype,atype));
        if ~isempty(xc)       
            onedaystock=onedayinfo02(xc,:); %利用这个onedaystock 找到所有当日收益率,列值
            aa= cell2mat(onedaystock(:,5));%xday  从rateTable 可以找到相应的收益率,然后同股票的相乘 
            %kt =1;%第一只股票
            TsRate = 0; %当天的多股票累计收益率   
            for kt=1:length(aa)
                yd= find(strcmp(instrumentCodeUni,onedaystock{kt,3}));  
                if ~isempty(yd) %有些股票不在Rate.mat表中
                    sRate=rateTable(xdx,yd); %ook
                    if isnan(sRate)
                        sRate =0; %如果当天没有数据,当天的收益率就是 0;
                        TsRate=TsRate+sRate*onedaystock{kt,5}/Funddayinfo{1,3};
                    else    
                        TsRate=TsRate+sRate*onedaystock{kt,5}/Funddayinfo{1,3};
                    end
                end % if ~isempty(yd)
            end
            dayStockValue= sum(aa(:,1)); %股票就全加一下子,基金判断一下再加   
        end %length(xc)~=0 
        
       
%%     期货指数类,收益率
        btype = '期货'; %多开和空开要相减
        ctype = onedayinfo02(:,2); 
        xd1=find(strcmp(ctype,btype));
        dayfdd=0;
        dayfkk=0;
        dayRateSf =0;
        if ~isempty(xd1) %判断xd 是否存在
            onedayfuture=onedayinfo02(xd1,:);
            %找到多开 - 空开
            ftype = '多开';
            ftype01 = '买入';
            htype = onedayfuture(:,6);
            xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
            ddRate = 0; %当天的多期货的累计收益率   
            if ~isempty(xe)
                onedayfuturedd=onedayfuture(xe,:);
                a1= cell2mat(onedayfuturedd(:,5));
                fprintf ('%d\n',j);
                for kt=1:length(a1)
                    yd= find(strcmp(instrumentCodeUni,onedayfuturedd{kt,3}));    
                    sRate=rateTable(xdx,yd); %ok fprintf('%d',sRate);
                    if isnan(sRate)
                        sRate =0; %如果当天没有数据,当天的收益率就是 0;
                        ddRate=ddRate+sRate*onedayfuturedd{kt,5}/Funddayinfo{1,3};
                    else    
                        ddRate=ddRate+sRate*onedayfuturedd{kt,5}/Funddayinfo{1,3};
                    end
                end
 
                dayfdd= sum(a1(:,1)); %基金多开累加
            end
            gtype = '空开';
            gtype01 = '卖出';
            jtype = onedayfuture(:,6);
            xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
            
            kkRate = 0; %当天的多期货的累计收益率   
            if ~isempty(xr)
                onedayfuturekk=onedayfuture(xr,:);
                a2= cell2mat(onedayfuturekk(:,5));


                for kt=1:length(a2)
                    sRate=rateTable(xdx,yd); %ok fprintf('%d',sRate);
                    if isnan(sRate)
                        sRate =0; %如果当天没有数据,当天的收益率就是 0;
                        kkRate=kkRate+sRate*onedayfuturekk{kt,5}/Funddayinfo{1,3};
                    else    
                        kkRate=kkRate+sRate*onedayfuturekk{kt,5}/Funddayinfo{1,3};
                    end
                end


                dayfkk= sum(a2(:,1)); %基金空开累加
            end
            dayRateSf = kkRate -ddRate;
            
%%       期货收益率计算,RI
          %先用时间找到 IF IC IH 这三个变量的值,然后根据下面的分类分别相乘
          % AIF=IF*(多头-空头) AIC=IC*(多头-空头) AIH=IH*(多头-空头) 
          %想法没有错,确实是指数收益
          %RI= AIF+AIC+AIH 
           onedayfuture=onedayinfo02(xd1,:);
           TFRate=rateTable(xdx,1838); 
           TCRate=rateTable(xdx,1839); 
           THRate=rateTable(xdx,1840); 
           %判断是IF IC IH, 三次判断如果有就是 value 如果没有就是 0 
           xih=find(strncmp(onedayfuture(:,3),'IH',2));
           ihvalue =0;
           if ~isempty(xih)
                onedayfutureih=onedayfuture(xih,:);
                %找到多开 - 空开
                ftype = '多开';
                ftype01 = '买入';
                htype = onedayfutureih(:,6);
                xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
                ihdayfdd =0;
                if ~isempty(xe)
                    onedayfuturedd=onedayfutureih(xe,:);
                    a1= cell2mat(onedayfuturedd(:,5));
                    ihdayfdd= sum(a1(:,1)); %基金多开累加
                end
                gtype = '空开';
                gtype01 = '卖出';
                jtype = onedayfutureih(:,6);
                xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
                ihdayfkk =0;
                if ~isempty(xr)
                    onedayfuturekk=onedayfutureih(xr,:);
                    a2= cell2mat(onedayfuturekk(:,5));
                    ihdayfkk= sum(a2(:,1)); %基金空开累加
                end
                ihvalue =ihdayfdd-ihdayfkk;
           end
    
           xic=find(strncmp(onedayfuture(:,3),'IC',2));
           icvalue =0;
           if xic
                onedayfutureic=onedayfuture(xic,:);
                %找到多开 - 空开
                ftype = '多开';
                ftype01 = '买入';
                htype = onedayfutureic(:,6);
                xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
                icdayfdd = 0;
                if ~isempty(xe)
                    onedayfuturedd=onedayfutureic(xe,:);
                    a1= cell2mat(onedayfuturedd(:,5));
                    icdayfdd= sum(a1(:,1)); %基金多开累加
                end
                gtype = '空开';
                gtype01 = '卖出';
                jtype = onedayfutureic(:,6);
                xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
                icdayfkk =0;
                if ~isempty(xr)
                    onedayfuturekk=onedayfutureic(xr,:);
                    a2= cell2mat(onedayfuturekk(:,5));
                    icdayfkk= sum(a2(:,1)); %基金空开累加
                end
                icvalue =icdayfdd-icdayfkk;
           end
           
           xif=find(strncmp(onedayfuture(:,3),'IF',2));
           ifvalue =0;
           if xif
                onedayfutureif=onedayfuture(xif,:);
                %找到多开 - 空开
                ftype = '多开';
                ftype01 = '买入';
                htype = onedayfutureif(:,6);
                xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
                ifdayfdd =0;
                if ~isempty(xe)
                    onedayfuturedd=onedayfutureif(xe,:);
                    a1= cell2mat(onedayfuturedd(:,5));
                    ifdayfdd= sum(a1(:,1)); %基金多开累加
                end
                gtype = '空开';
                gtype01 = '卖出';
                jtype = onedayfutureif(:,6);
                xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
                ifdayfkk =0;
                if ~isempty(xr)
                    onedayfuturekk=onedayfutureif(xr,:);
                    a2= cell2mat(onedayfuturekk(:,5));
                    ifdayfkk= sum(a2(:,1)); %基金空开累加
                end
                ifvalue =ifdayfdd-ifdayfkk;
           end
           IIIrate= TFRate*ihvalue + TCRate*icvalue + THRate*ifvalue;
             
%%               
        else
            dayfdd=0;
            dayfkk=0;
            IIIrate =0; % 代表了指数收益
         end
        tstockRate = dayStockValue/Funddayinfo{1,3};
        tfutureRate = (dayfdd-dayfkk)/Funddayinfo{1,3};
    
    end
    
    infodata6{j,1}=xday;
    infodata6{j,2}=tstockRate;
    infodata6{j,3}=tfutureRate;
    infodata6{j,4}=TsRate;
    infodata6{j,5}=IIIrate;
    infodata6{j,6}=dayRateSf;
        
end  


save('infodata6.mat','infodata6');
% 得到母基金的股票和股指期货持仓的交易日收益率
%计算母基金equity 下 PN,PH的占比计算,分别求得相应的日占比。
%{
Rate= Pn*Rs+ Ph*(Rs-Ri)+Ph*(Ri-Rsf)+Pcf*Rcf 
Rs 股票净值收益率
Ri 股指期货指数收益率,股指+期货的收益率,反应的是股票 指数部分的收益
Rsf 股指期货净值收益率
Pn Ph 分种类情况
%}


clear;clc
tic


%% 母基金名称
ProName=['("母基金二期")'];%['("母基金二期","母基金三期","母基金四期")']




%% 连接数据库
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver',...
    'jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);




%% 提取母基金代码
sql=sprintf('select productCode from product where productName in %s order by productCode',ProName);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
FOFCode=cursorA.Data;
close(cursorA);




%% 提取母基金的equity值
foc= FOFCode{1,1}; %母基金名称
Index=['tradingday,productCode,equity'];
%sql=sprintf('select %s from account where productCode = %d',Index,foc);
sql=sprintf('select %s from account where productCode = %s order by tradingDay',Index,foc);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
FOFequity=cursorA.Data;
close(cursorA);




%% 提取母基金所有股票和期货信息
FundCodeValue=eval(FOFCode{1});%cell转数值为母基金的代码    
Index=['tradingDay,instType,instrumentCode,productCode,marketValue,direction'];
sql=sprintf('select %s from positions_history where left(productCode,5)=%d order by tradingDay',Index,FundCodeValue);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
allInst=cursorA.Data;
close(cursorA);




%% 保留‘600’、‘601’、‘603’、‘000’、‘002’和‘300’打头的股票部分
instType=allInst(:,2); 
instrumentCodeAll=allInst(:,3); 
x=find(strncmp(instrumentCodeAll,'600',3)|strncmp(instrumentCodeAll,'601',3)...
       |strncmp(instrumentCodeAll,'603',3)|strncmp(instrumentCodeAll,'000',3)...
       |strncmp(instrumentCodeAll,'002',3)|strncmp(instrumentCodeAll,'300',3)...
       |strcmp(instType,'期货')); %这个是找到x的位置数值
allInst=allInst(x,:);  




%% 排除商品期货部分
instType=allInst(:,2); 
instrumentCodeAll=allInst(:,3); 
x=find(strncmp(instrumentCodeAll,'IC',2)|strncmp(instrumentCodeAll,'IF',2)...
              |strncmp(instrumentCodeAll,'IH',2)|strcmp(instType,'股票'));
allInst=allInst(x,:);  
allInst(:,3)=strrep(allInst(:,3),'CFFEX','CFE');%'CFFEX'替换为'CFE',便于wind查询




%% 提取股票、股指期货的日收益率
instrumentCodeUni=unique(allInst(:,3));  %存储所有不重复的股票代码 
for i=1:1:length(allInst(:,1))
    dayAll{i,1}=allInst{i};              % 日期在第一列
end
dayUni=unique(dayAll);




%% 以上已经将母基金包含的信息全部得到了,下面先求子基金代码,
FundCodeValue=eval(FOFCode{1});%cell转数值为母基金的代码 ,数值转换  
Index=['productCode,accountType,parentProductCode'];
sql=sprintf('select %s from product where parentProductCode=%d ',Index,FundCodeValue);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
Fundname=cursorA.Data;
close(cursorA);




%% 子基金运算  提取子基金的equity值
Fund = Fundname{1,1}; %子基金名称,这里仅仅是一个子基金,改行不改列
Index=['tradingday,productCode,equity'];
sql=sprintf('select %s from account where productCode = %s order by tradingDay',Index,Fund);
cursorA=exec(conn,sql);
cursorA=fetch(cursorA);
Fundequity=cursorA.Data;
close(cursorA);


%%
load('data0829/Rate.mat');
%%
%当a10 为 1 时候,基金没有数据,当不等于1时有数据
a10 = length(Fundequity);
for j=1:168 %因为 rate表只到168 
    %j=10;
    xday=Fundequity{j,1};
    Fundday = Fundequity(:,1);
    xf = find(strcmp(Fundday,xday));
    Funddayinfo=Fundequity(xf,:);    %xf 就是占位数目,同收益率 有关
    Fname = allInst(:,4);            %子基金
    xa=find(strncmp(Fname,Fund,10)); %某个子基金下的某日的股票和期货
    
    if ~isempty(xa) %判断是否有股票 期货
        alldayinfo=allInst(xa,:);   %可能里面有重复的
        eday = alldayinfo(:,1);     %全部日期
        xb=find(strcmp(eday,xday));
        onedayinfo02=alldayinfo(xb,:);
        
        %xdx= find(strcmp(dayUni,xday));
        xdx = xf;
        %通过dayUni 确定信息在rateTable的第几行 问题在这
        
%%     %判断股票和期货是否存在
%%     股票类,收益率
        atype = '股票';
        ctype = onedayinfo02(:,2); 
        xc=find(strcmp(ctype,atype));
        if ~isempty(xc)       
            onedaystock=onedayinfo02(xc,:); %利用这个onedaystock 找到所有当日收益率,列值
            aa= cell2mat(onedaystock(:,5));%xday  从rateTable 可以找到相应的收益率,然后同股票的相乘 
            %kt =1;%第一只股票
            TsRate = 0; %当天的多股票累计收益率   
            for kt=1:length(aa)
                yd= find(strcmp(instrumentCodeUni,onedaystock{kt,3}));  
                if ~isempty(yd) %有些股票不在Rate.mat表中
                    sRate=rateTable(xdx,yd); %ook
                    if isnan(sRate)
                        sRate =0; %如果当天没有数据,当天的收益率就是 0;
                        TsRate=TsRate+sRate*onedaystock{kt,5}/Funddayinfo{1,3};
                    else    
                        TsRate=TsRate+sRate*onedaystock{kt,5}/Funddayinfo{1,3};
                    end
                end % if ~isempty(yd)
            end
            dayStockValue= sum(aa(:,1)); %股票就全加一下子,基金判断一下再加   
        end %length(xc)~=0 
        
       
%%     期货指数类,收益率
        btype = '期货'; %多开和空开要相减
        ctype = onedayinfo02(:,2); 
        xd1=find(strcmp(ctype,btype));
        dayfdd=0;
        dayfkk=0;
        dayRateSf =0;
        if ~isempty(xd1) %判断xd 是否存在
            onedayfuture=onedayinfo02(xd1,:);
            %找到多开 - 空开
            ftype = '多开';
            ftype01 = '买入';
            htype = onedayfuture(:,6);
            xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
            ddRate = 0; %当天的多期货的累计收益率   
            if ~isempty(xe)
                onedayfuturedd=onedayfuture(xe,:);
                a1= cell2mat(onedayfuturedd(:,5));
                fprintf ('%d\n',j);
                for kt=1:length(a1)
                    yd= find(strcmp(instrumentCodeUni,onedayfuturedd{kt,3}));    
                    sRate=rateTable(xdx,yd); %ok fprintf('%d',sRate);
                    if isnan(sRate)
                        sRate =0; %如果当天没有数据,当天的收益率就是 0;
                        ddRate=ddRate+sRate*onedayfuturedd{kt,5}/Funddayinfo{1,3};
                    else    
                        ddRate=ddRate+sRate*onedayfuturedd{kt,5}/Funddayinfo{1,3};
                    end
                end
 
                dayfdd= sum(a1(:,1)); %基金多开累加
            end
            gtype = '空开';
            gtype01 = '卖出';
            jtype = onedayfuture(:,6);
            xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
            
            kkRate = 0; %当天的多期货的累计收益率   
            if ~isempty(xr)
                onedayfuturekk=onedayfuture(xr,:);
                a2= cell2mat(onedayfuturekk(:,5));


                for kt=1:length(a2)
                    sRate=rateTable(xdx,yd); %ok fprintf('%d',sRate);
                    if isnan(sRate)
                        sRate =0; %如果当天没有数据,当天的收益率就是 0;
                        kkRate=kkRate+sRate*onedayfuturekk{kt,5}/Funddayinfo{1,3};
                    else    
                        kkRate=kkRate+sRate*onedayfuturekk{kt,5}/Funddayinfo{1,3};
                    end
                end


                dayfkk= sum(a2(:,1)); %基金空开累加
            end
            dayRateSf = kkRate -ddRate;
            
%%       期货收益率计算,RI
          %先用时间找到 IF IC IH 这三个变量的值,然后根据下面的分类分别相乘
          % AIF=IF*(多头-空头) AIC=IC*(多头-空头) AIH=IH*(多头-空头) 
          %想法没有错,确实是指数收益
          %RI= AIF+AIC+AIH 
           onedayfuture=onedayinfo02(xd1,:);
           TFRate=rateTable(xdx,1838); 
           TCRate=rateTable(xdx,1839); 
           THRate=rateTable(xdx,1840); 
           %判断是IF IC IH, 三次判断如果有就是 value 如果没有就是 0 
           xih=find(strncmp(onedayfuture(:,3),'IH',2));
           ihvalue =0;
           if ~isempty(xih)
                onedayfutureih=onedayfuture(xih,:);
                %找到多开 - 空开
                ftype = '多开';
                ftype01 = '买入';
                htype = onedayfutureih(:,6);
                xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
                ihdayfdd =0;
                if ~isempty(xe)
                    onedayfuturedd=onedayfutureih(xe,:);
                    a1= cell2mat(onedayfuturedd(:,5));
                    ihdayfdd= sum(a1(:,1)); %基金多开累加
                end
                gtype = '空开';
                gtype01 = '卖出';
                jtype = onedayfutureih(:,6);
                xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
                ihdayfkk =0;
                if ~isempty(xr)
                    onedayfuturekk=onedayfutureih(xr,:);
                    a2= cell2mat(onedayfuturekk(:,5));
                    ihdayfkk= sum(a2(:,1)); %基金空开累加
                end
                ihvalue =ihdayfdd-ihdayfkk;
           end
    
           xic=find(strncmp(onedayfuture(:,3),'IC',2));
           icvalue =0;
           if xic
                onedayfutureic=onedayfuture(xic,:);
                %找到多开 - 空开
                ftype = '多开';
                ftype01 = '买入';
                htype = onedayfutureic(:,6);
                xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
                icdayfdd = 0;
                if ~isempty(xe)
                    onedayfuturedd=onedayfutureic(xe,:);
                    a1= cell2mat(onedayfuturedd(:,5));
                    icdayfdd= sum(a1(:,1)); %基金多开累加
                end
                gtype = '空开';
                gtype01 = '卖出';
                jtype = onedayfutureic(:,6);
                xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
                icdayfkk =0;
                if ~isempty(xr)
                    onedayfuturekk=onedayfutureic(xr,:);
                    a2= cell2mat(onedayfuturekk(:,5));
                    icdayfkk= sum(a2(:,1)); %基金空开累加
                end
                icvalue =icdayfdd-icdayfkk;
           end
           
           xif=find(strncmp(onedayfuture(:,3),'IF',2));
           ifvalue =0;
           if xif
                onedayfutureif=onedayfuture(xif,:);
                %找到多开 - 空开
                ftype = '多开';
                ftype01 = '买入';
                htype = onedayfutureif(:,6);
                xe=find(strcmp(htype,ftype)|strcmp(htype,ftype01));
                ifdayfdd =0;
                if ~isempty(xe)
                    onedayfuturedd=onedayfutureif(xe,:);
                    a1= cell2mat(onedayfuturedd(:,5));
                    ifdayfdd= sum(a1(:,1)); %基金多开累加
                end
                gtype = '空开';
                gtype01 = '卖出';
                jtype = onedayfutureif(:,6);
                xr=find(strcmp(jtype,gtype)|strcmp(jtype,gtype01));
                ifdayfkk =0;
                if ~isempty(xr)
                    onedayfuturekk=onedayfutureif(xr,:);
                    a2= cell2mat(onedayfuturekk(:,5));
                    ifdayfkk= sum(a2(:,1)); %基金空开累加
                end
                ifvalue =ifdayfdd-ifdayfkk;
           end
           IIIrate= TFRate*ihvalue + TCRate*icvalue + THRate*ifvalue;
             
%%               
        else
            dayfdd=0;
            dayfkk=0;
            IIIrate =0; % 代表了指数收益
         end
        tstockRate = dayStockValue/Funddayinfo{1,3};
        tfutureRate = (dayfdd-dayfkk)/Funddayinfo{1,3};
    
    end
    
    infodata6{j,1}=xday;
    infodata6{j,2}=tstockRate;
    infodata6{j,3}=tfutureRate;
    infodata6{j,4}=TsRate;
    infodata6{j,5}=IIIrate;
    infodata6{j,6}=dayRateSf;
        
end  


save('infodata6.mat','infodata6');
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

QQ2013协议分析(三)0825 touch 1

1.1    0825 touch 1(0825)     有时候在抓包工具里可以看到两组本地4000端口发往服务器8000端口的数据,那是因为重定向的原因,不过貌似并非那么肯定,有时候重定向并非必...
  • CWangChao
  • CWangChao
  • 2013-06-08 22:49
  • 7643

PCQQ UDP协议的研究<3>——0825 接收包

我们在   PCQQ UDP协议的研究——0825 发送包  一文里了解了0825发送包的结构。那么接收包又是怎么样的呢? 先来看我们的接收包: [NO.2 2013-09-13 15:23:32 ...
  • oMingZi12345678
  • oMingZi12345678
  • 2013-09-15 19:46
  • 1951

QQ2013的PC版协议,0825包和0826的数据分析

最近写个QQPC协议返回当前QQ各种状态的东东。网上很多地方说的都有点不太明白,而且最新协议的也很少,基本都是以前的。苦逼之下借鉴各种资料,熬了几天。终于写出来了。因为只返回各种状态,,所以偶分析到0...
  • haigenwong
  • haigenwong
  • 2013-09-13 21:17
  • 9434

PCQQ UDP协议的研究<2>——0825 发送包

在 PCQQ UDP协议的研究——准备工作   一文里,我们了解PCQQ的大致信息。这里我们开始将具体包体的分析。     由于QQ2012之后的版本变化太大,在2012这一个版本出来之前,接触包的...
  • oMingZi12345678
  • oMingZi12345678
  • 2013-09-15 19:44
  • 2095

学习Unity3D第三天,简单小游戏《王子救公主》的页面搭建制作。

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌...
  • caoboya
  • caoboya
  • 2014-11-25 20:26
  • 1415

MyBatis二级缓存 完成版

一级缓存和二级缓存   查询缓存  查询缓存的运行流程: 代码中的查询语句首先去缓存里尝试着读取一下,查看有没有,如果有的话直接返回,但是如果没有读取到的话,那么他去数据库读取SQL,然后SQ...
  • qq_36074218
  • qq_36074218
  • 2017-07-16 18:11
  • 131

BookStore3(完成版)

由于在BookStore2中又增加一些功能就直接写下了BookStore3(第三版201104221515)的项目代码。 这是javawebMVC模式下的一个项目; 需要的服务器是webl...
  • ruiguang21
  • ruiguang21
  • 2016-12-16 21:25
  • 289

python_学习笔记0825

今天是二零一伍年八月二十五日 1、在python中有像list、tuple这样的对象,他们是可迭代的(Iterable),这样的对象在for语句中被循环。但是我们都知道,list是一个有限的对象。也就...
  • sysu_strange
  • sysu_strange
  • 2015-08-25 22:55
  • 167

Android电话服务完成版

之前的代码是分开写的,并没有实现一个完成电话相关服务,这次就给大家来一记猛药,望大家提出宝贵意见和建议与我分享,感谢! 电话监听主Activitypackage tedu.cn.telephon...
  • changjj_niu
  • changjj_niu
  • 2016-05-10 01:26
  • 1326

c++版贪食蛇————不断更新直到完成

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 在校学生 * All rightsreserved. * 文件名称: Snack.cpp * 作 者:刘旺 * 完成...
  • u012706758
  • u012706758
  • 2014-03-26 10:14
  • 1576
    个人资料
    • 访问:16544次
    • 积分:717
    • 等级:
    • 排名:千里之外
    • 原创:58篇
    • 转载:17篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论