楼主: zoumingwang2004
1279 0

[问答] 急,求助程序解释 [推广有奖]

  • 1关注
  • 0粉丝

爱股票

已卖:891份资源

副教授

29%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
37.1017
学术水平
3 点
热心指数
0 点
信用等级
0 点
经验
1589 点
帖子
411
精华
0
在线时间
727 小时
注册时间
2006-4-3
最后登录
2024-11-14

楼主
zoumingwang2004 发表于 2011-10-10 12:09:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
%基金排名
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% a为基金每月收益率序列,y为排名年限2年或3年
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [r,s,q,qq]=fund_rank(a,y)
if y==2
    row1=25;
    y1=6;y2=12;y3=24;
else
    row1=37;
    y1=12;y2=24;y3=36;
end
id=a(:,1);
a=a(:,2:row1);
[n]=size(a);
a(a==9999)=nan;
b=zeros(n(1)-1,n(2));%创建零矩阵
c=zeros(n(1)-1,n(2));
for i=2:n(1)
    for j=1:n(2)
        if ~isnan(a(i,j))
           b(i-1,j)=a(i,j)-a(1,j);        %超额收益率
           c(i-1,j)=min(a(i,j)-a(1,j),0); %超额收益率(下行风险)
        else
            b(i-1,j)=nan;
            c(i-1,j)=nan;
        end
    end
end
m=zeros(n(1)-1,3);
o=zeros(n(1)-1,3);
for i=1:n(1)-1
    if ~isnan(b(i,:))
    m(i,1)=mean(b(i,1:y1));
    m(i,2)=mean(b(i,1:y2));
    m(i,3)=mean(b(i,1:y3));
    o(i,1)=std(c(i,1:y1));
    o(i,2)=std(c(i,1:y2));
    o(i,3)=std(c(i,1:y3));
    else
        m(i,:)=nan;
        o(i,:)=nan;
    end
end
s=[id(2:end),m,o];
s=sortrows(s,2);
tem=find(isnan(s(:,2)));
q=s(1:tem(1)-1,:);
%q(:,2:end)=zscore(q(:,2:end));
for i=2:7
    max_q=max(q(:,i));
    min_q=min(q(:,i));
    q(:,i)=(q(:,i)-min_q)/(max_q-min_q);
end
qq=[q(:,1),q(:,2)-q(:,5),q(:,3)-q(:,6),q(:,4)-q(:,7)];
nn=size(qq);
r=zeros(nn(1),2);
for i=1:nn(1)
    r(i,1)=qq(i,1);
    r(i,2)=0.1*qq(i,2)+0.35*qq(i,3)+0.55*qq(i,4);
end
r=sortrows(r,-2);


小弟才学matlab不懂啊,贵求解释上述代码,最好每一行给一个注释,还有涉及到的读取数据文件的语句以及创建的数据文件名

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:function MATLAB zeros 超额收益率 score 程序 function 基金排名 收益率

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 02:46