我想乘以每个公司在各自盈利日期的回报和预期回报,例如Return(30-Jan-2017)*Return(31-Jan-2017)*Return(01-Feb-2017)[下一个盈利日期也是如此,依此类推]
我的代码如下:
firms = unique(T.Ticker(:,:))
for i = 1:length(firms)
idx = firms(i);
Dates = T.EarningsDate(T.Ticker == idx,:);
ERDates=unique(Dates);
for n = 1:length(ERDates)
x = strcmpi(Dates,ERDates(n));
T.ret(x) = prod(T.Return(x))
end
end
然而,我得到了APPL的所有正确计算值(前60行),但随后循环不知何故停止了,我只得到了0。
有谁能给我一些提示,我能做什么?
1条答案
按热度按时间lskq00tm1#
Frame Change:如果使用
findgroups
来标识Ticker和EarningsDate的唯一分组,则不需要使用嵌套循环,然后只需在这些分组上执行一次循环。首先,一个最小的示例数据集:
然后是一个简单的循环,有关详细信息,请参阅评论: