我正在处理1970年至2012年期间100只股票的每日回报。问题是我想计算每年每只股票的月回报率。我拥有的数据是一个单元阵列1x100股票,对于每个股票单元格,我有另一个包含日期的单元格数组,一个带有每个日期的股票回报的双精度向量和带有股票的股票代码的单元格数组。 为了解决这个问题,我正在考虑做以下事情:
for r=1:1:100
name=res.ticker{1,r};
for t=1:1:length(res{1,r}.dates)
for j=1970:1:2012
fecha=datestr(res{1,r}.dates(t),'yyyy/mm/dd');
year =fecha(1:4);
month = fecha(6:7);
anio= num2str(j);
if (strcmp(anio,year)==1)
switch month
case '01'
if (isnan(res{1,r}.cs(t))~=1)
return1=[return1;res{1,r}.cs(t)];
end
case '02'
if (isnan(res{1,r}.cs(t))~=1)
return2=[return2;res{1,r}.cs(t)];
end
.
.
.
case '12'
if (isnan(res{1,r}.cs(t))~=1)
return12=[return12;res{1,r}.cs(t)];
end
end
else
prom1=mean(return1);
prom2=mean(return2);
.
.
.
prom12=mean(return12);
ansyear=[prom1;prom2;...;prom11;prom12];
end
end
end
end
我想要的结果是一个单元阵列1x100,其中每个单元格有1x42(这些是我拥有的42年数据),在这42个单元格中有12x1向量,每个月的回报均值。我希望我能让自己明确,提前非常感谢你。 最好,汤姆。