首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带权重的TTR包的SMA功能?

如何使用带权重的TTR包的SMA功能?
EN

Stack Overflow用户
提问于 2018-08-04 02:52:59
回答 1查看 125关注 0票数 0

我不明白TTR SMA函数是如何处理权重的。首先,wts和w之间的区别是什么?然后,有一个我没有预料到的结果。

我希望在SMA计算的每个位置使用一组线性权重,以便计算的当前值具有最高的权重,而第n个最远的值具有最低的权重。这是一个应该返回权重的示例,如果它们按照我假设的方式工作(我的示例提供了线性滤波器的脉冲函数):

代码语言:javascript
复制
t <- replicate(0, n = 12)
t[5] <- 1
weights <- c(0.25, 0.5, 0.75, 1.0)
SMA(t, n = 4, wts = weights)

但这给出: NA 0.00 0.25 0.25 0.25 0.00 0.00 0.00

这与使用c(1,1,1,1)的一组权重时得到的结果相同。我希望看到第5-8项是1.0,0.75,0.5,0.25。我在互联网上找不到任何关于SMA是如何计算加权SMA函数的解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-05 00:03:49

TTR的SMA不使用权重(w或w)。您可以将w或wts添加到SMA函数,但不会使用它,正如您在下面的检查中所看到的那样。

代码语言:javascript
复制
identical(SMA(t, n = 4), SMA(t, n = 4, wts = weights))
[1] TRUE

wts旨在与WMA一起使用。而w是用来和VMA一起使用的。

我确实同意文档在这一点上应该更清楚一些。来自投资百科的This pageWMA的描述更加清晰。

VMA更像是一种自适应移动平均,并向EMA公式添加了一种权重,如下所示。

代码语言:javascript
复制
# parts from c code from TTR package
d_ratio =  2/(n+1)
EMA[i] = d_x[i] * d_ratio + d_result[i-1] * (1-d_ratio);
VMA[i] = d_x[i] * d_w[i] * d_ratio + d_result[i-1] * (1-d_ratio*d_w[i]);

查看您对所需内容的描述,您应该使用WMA函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51678556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档