你这个收益率的计算应该是量化交易 欧内斯特陈 写的那本书里面提到的吧。
lag1这个函数在matlab里面可以另外开一个 .m 为后缀的文件来写,然后文件里面写以下code:
function y = lag1(x)
if (isnumeric(x))
y = [NaN(1, size(x,2)) ; x(1:end-1, :) ]; elseif(ischar(x))
y = [repmat('''', [1 size(x,2)]) ; x(1:end-1, :) ]; else error('Can only be numeric or char array');
End
这code是2014东北财大出版社的版本,p52提供的。意思就是把一列数或字符串 往后挪一下,如果是数字的话第一行数就用NaN代替,如果是字符串的话第一行就用 '' 代替。