Loop for rolling window
4 次查看(过去 30 天)
显示 更早的评论
Hi, I need to divide a time series of returns into portfolios based on stocks that showed the lowest turnover. The problem is that I need to do this over a period of 20 years for each month. Here a little part of the code only for two months. I'm wondering whether there is a much shorter way to write this, for example using a loop which allows me to sort the stocks every month and compute the mean of returns. I was thinking about a "while" loop but I actually do not really know how to implement this. Any little hint??
Thank you!
%%Year 2011 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
R_T_Y11=[R_T(:,1) R_T(:,242:254) R_T(:,542:554)];
%%Month 1 Year 11
R_T_Y11_M1=[R_T_Y11(:,1) R_T_Y11(:,2) R_T_Y11(:,14) R_T_Y11(:,3)];
R_T_Y11_M1_S=sortrows(R_T_Y11_M1,3);
%%Dividing into portfolios
data.ptf1_Y11_M1=R_T_Y11_M1_S(1:43,:);
data.ptf2_Y11_M1=R_T_Y11_M1_S(44:86,:);
data.ptf3_Y11_M1=R_T_Y11_M1_S(87:128,:);
data.ptf4_Y11_M1=R_T_Y11_M1_S(129:170,:);
data.ptf5_Y11_M1=R_T_Y11_M1_S(171:212,:);
data.ptf6_Y11_M1=R_T_Y11_M1_S(212:254,:);
data.ptf7_Y11_M1=R_T_Y11_M1_S(255:297,:);
data.ptf8_Y11_M1=R_T_Y11_M1_S(339:383,:);
data.ptf9_Y11_M1=R_T_Y11_M1_S(384:428,:);
%%Computing mean for each portfolio month 1
MediaM1=zeros(9,3);
MediaM1(1,:)=mean(data.ptf1_Y11_M1(:,2:4),1);
MediaM1(2,:)=mean(data.ptf2_Y11_M1(:,2:4),1);
MediaM1(3,:)=mean(data.ptf3_Y11_M1(:,2:4),1);
MediaM1(4,:)=mean(data.ptf4_Y11_M1(:,2:4),1);
MediaM1(5,:)=mean(data.ptf5_Y11_M1(:,2:4),1);
MediaM1(6,:)=mean(data.ptf6_Y11_M1(:,2:4),1);
MediaM1(7,:)=mean(data.ptf7_Y11_M1(:,2:4),1);
MediaM1(8,:)=mean(data.ptf8_Y11_M1(:,2:4),1);
MediaM1(9,:)=mean(data.ptf9_Y11_M1(:,2:4),1);
%%Month 2 Year 11
R_T_Y11_M2=[R_T_Y11(:,1) R_T_Y11(:,3) R_T_Y11(:,15) R_T_Y11(:,4)];
R_T_Y11_M2_S=sortrows(R_T_Y11_M2,3);
%%Dividing into portfolios
data.ptf1_Y11_M2=R_T_Y11_M2_S(1:43,:);
data.ptf2_Y11_M2=R_T_Y11_M2_S(44:86,:);
data.ptf3_Y11_M2=R_T_Y11_M2_S(87:128,:);
data.ptf4_Y11_M2=R_T_Y11_M2_S(129:170,:);
data.ptf5_Y11_M2=R_T_Y11_M2_S(171:212,:);
data.ptf6_Y11_M2=R_T_Y11_M2_S(212:254,:);
data.ptf7_Y11_M2=R_T_Y11_M2_S(255:297,:);
data.ptf8_Y11_M2=R_T_Y11_M2_S(339:383,:);
data.ptf9_Y11_M2=R_T_Y11_M2_S(384:428,:);
%%Computing mean for each portfolio month 2
...as above!
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Portfolio Optimization and Asset Allocation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!