以下代码提供了示例数据:
library(TTR)
set.seed(15)
r <- rnorm(1000, 0, .01)
P_1 <- 100
P <- P_1*cumprod(1+r)
zz <- ZigZag(P, change = 5, percent = TRUE)
set.seed(15)
volume <- round(runif(1000, 50, 550), digits = 0)
data <- as.data.frame(cbind(P, zz, volume))
plot(P, type = "l")
lines(zz, col = "red")
最后我想在新列中创建体积的累积总和,当锯齿线(zz)改变方向时会发生重置。我试过玩s <- sign(diff(data$zz, lag = 1))
,它会显示那些转折点,但无法使用 cumsum 。