向 ChartSeries Quantmod 添加自定义指标

Adding a custom indicator to ChartSeries Quantmod

我创建了枝形吊灯指示器。函数为:

chandlier_exit_long = function(x,k = 3,  
 n = 22){
 high = rollapplyr(Hi(x), width = n, FUN 
 = max)
 atr = ATR(x, n)[, "atr"]
  z = high - atr
 names(z) = "Chandelier_Exit_Long"
 return(z)
}

我已经使用 quantmods 函数 newTA 创建了:

  addChandExitLong = newTA(FUN = 
  chandlier_exit_long, preFUN = OHLC, col 
  = "red")

我收到一个错误

这是一个警告,不是错误。尽管它确实表明某些事情不太正确。问题是默认情况下 rollapplyr 不会 pad/fill 和 NA。所以你需要把你的函数改成:

chandlier_exit_long = function(x, k = 3, n = 22){
  high = rollapplyr(Hi(x), n, FUN = max, fill = NA)  # add `fill = NA`
  atr = ATR(x, n)[, "atr"]
  z = high - atr
  names(z) = "Chandelier_Exit_Long"
  return(z)
}

或者您可以将 rollapplyr() 调用替换为 runMax(Hi(x), n)