1. 程式人生 > >關於matlab中movavg的用法

關於matlab中movavg的用法

movavg是一個取移動平均很好用的命令。

之前對於一個股價序列wdata,為了取ma5和ma20,我不得不寫好幾個迴圈。

其中ma5是:

for t=i-4:i

ma5(t,1)=wdata(i)/5+ma5(t,1);

end

還需要考慮到初始項,不能讓資料發生溢位,比如出現wdata(0)或者wdata(-1)這樣的項。

而使用movavg命令的話,程式碼就簡化成了

[ma5,ma20]=movavg(wdata,5,20);

ma5就直接成為了時間段為5的移動平均項。其中ma5(1,1)=wdata(1,1)/5 ,ma5(2,1)=sum(wdata(1:2))/5。

而不需要考慮最前端的資料了。拿來用的時候直接從ma5(20)與ma20(20)開始使用,資料就是正常的了。

[Short, Long] = movavg(Asset, Lead, Lag, Alpha)

最後一項可以新增alpha,預設為0,簡單的移動平均。0.5意味著平方根權重的移動平均,1意味著線性移動平均,2意味著平方權重的移動平均。e意味著指數權重的移動平均。