向 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)
。
我创建了枝形吊灯指示器。函数为:
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)
。