How to calculate moving average excluding current data?
2 次查看(过去 30 天)
显示 更早的评论
How to calculate moving average to not include current data for the current period. For example, I'm trying to create the Donchian Channel and the formula is the 20 high or 20 low of the preceding date. If so, this should not include the current date. All the moving and tsmovavg includes the current date.
0 个评论
回答(1 个)
dpb
2016-11-27
N=20; % number above/below midpoint
u=[ones(1,N) 0 ones(1,N)]/(2*N-1); % weighting
mAvg0=conv(data,u,'valid');
4 个评论
Image Analyst
2016-11-27
It's just considering the N points to the right and left of the current point. The center point (i.e. the "current" point) has a weight of zero so it's not included in the sum.
dpb
2016-11-28
>> [x;[nan conv(x,[1 0 1]/2,'valid') nan]]
ans =
1 2 3 4 5 6 7 8 9 10
NaN 2 3 4 5 6 7 8 9 NaN
>>
should make it patently clear, one would think???
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!