geom_ma 中移动平均线的对齐

问题描述 投票:0回答:1
  • 我正在尝试修改一些旧代码来绘制 7 天移动平均线。
  • 旧代码使用
    zoo::rollmean
    ,默认对齐为中心
  • 当我使用
    geom_ma
    包中的
    tidyquant
    时,默认对齐方式是正确的。
  • 我使用的是简单移动平均线
    ma_fun = SMA

在我的图中是否有一个参数可以传递给

geom_ma
,可以使移动平均线与中心对齐?

我确实阅读了

geom_ma
的文档,并被定向到
TTR::SMA()
。这有一个偏移参数,可以将百分位数作为分布的对齐方式。该参数在我的代码中被忽略了。

感谢您提供的任何帮助。

r ggplot2 moving-average
1个回答
0
投票

你可以使用

seismicRoll
包使用
roll_mean
参数,它有一个类似于
zoo::rollmean
的对齐参数。我认为偏移参数仅适用于 ALMA(),而 SMA(geom_ma 使用的是什么)没有该参数。

使用 tq 数据进行演示,红线显示重新对齐的 MA 到中心,黄色突出显示 geom_ma(虚线)如何右对齐。

AAPL <- tq_get("AAPL", from = "2013-01-01", to = "2016-12-31")

AAPL %>% 
    mutate(rolling_mean1 = seismicRoll::roll_mean(adjusted, n = 50, align = "right"),
           rolling_mean2 = seismicRoll::roll_mean(adjusted, n = 50, align = "center")) %>% 
ggplot() +
geom_line(aes(x = date, y = rolling_mean1), color = "yellow",size = 4)+
geom_ma(aes(x = date, y = adjusted), ma_fun = SMA, n = 50, size = 3) +
geom_line(aes(x = date, y = rolling_mean2), color = "red") 

© www.soinside.com 2019 - 2024. All rights reserved.