R-Keltner通道
有没有已经实现Keltner通道的R包,我想知道的是每日收盘价定位在哪个通道(-3,-2,-1,1,2,3) 我在TTR中找到了ATR函数,但我不确定是否有办法使用它,我试图得到的是与链接描述的类似的东西,我只需要值,而不是图表,这样我就可以比较每日收盘价和通道R-Keltner通道,r,quantmod,R,Quantmod,有没有已经实现Keltner通道的R包,我想知道的是每日收盘价定位在哪个通道(-3,-2,-1,1,2,3) 我在TTR中找到了ATR函数,但我不确定是否有办法使用它,我试图得到的是与链接描述的类似的东西,我只需要值,而不是图表,这样我就可以比较每日收盘价和通道 如果您能为我指明正确的方向,我们将不胜感激。这种模板代码将帮助您获得您特别想要的东西。选择自己的n值等 library(quantmod) getSymbols("AAPL") get_Keltner_channels <-
如果您能为我指明正确的方向,我们将不胜感激。这种模板代码将帮助您获得您特别想要的东西。选择自己的n值等
library(quantmod)
getSymbols("AAPL")
get_Keltner_channels <- function(ohlc, n_EMA = 10, n_ATR = 14, multiplier = 2) {
mid <- EMA(Cl(ohlc), n_EMA)
hi <- mid + multiplier * ATR(HLC = HLC(ohlc), n = n_ATR)$atr
lo <- mid - multiplier * ATR(HLC = HLC(ohlc), n = n_ATR)$atr
keltner <- cbind(lo, mid, hi)
colnames(keltner) <- c("Kelt_lo", "Kelt_mid", "Kelt_hi")
keltner
}
out <- get_Keltner_channels(AAPL)
# > tail(out)
# Kelt_lo Kelt_mid Kelt_hi
# 2016-07-15 94.26621 97.09092 99.91563
# 2016-07-18 94.74742 97.58893 100.43045
# 2016-07-19 95.27084 98.00367 100.73651
# 2016-07-20 95.71888 98.35937 100.99986
# 2016-07-21 95.83500 98.55403 101.27306
# 2016-07-22 95.88848 98.57330 101.25811
库(quantmod)
getSymbols(“AAPL”)
get_Keltner_channels这种模板代码将帮助您获得您特别想要的内容。选择自己的n值等
library(quantmod)
getSymbols("AAPL")
get_Keltner_channels <- function(ohlc, n_EMA = 10, n_ATR = 14, multiplier = 2) {
mid <- EMA(Cl(ohlc), n_EMA)
hi <- mid + multiplier * ATR(HLC = HLC(ohlc), n = n_ATR)$atr
lo <- mid - multiplier * ATR(HLC = HLC(ohlc), n = n_ATR)$atr
keltner <- cbind(lo, mid, hi)
colnames(keltner) <- c("Kelt_lo", "Kelt_mid", "Kelt_hi")
keltner
}
out <- get_Keltner_channels(AAPL)
# > tail(out)
# Kelt_lo Kelt_mid Kelt_hi
# 2016-07-15 94.26621 97.09092 99.91563
# 2016-07-18 94.74742 97.58893 100.43045
# 2016-07-19 95.27084 98.00367 100.73651
# 2016-07-20 95.71888 98.35937 100.99986
# 2016-07-21 95.83500 98.55403 101.27306
# 2016-07-22 95.88848 98.57330 101.25811
库(quantmod)
getSymbols(“AAPL”)
获取Keltner频道KCKC如果您喜欢dplyr,这可能会有所帮助。调味
keltnerEmaPeriods = 20
keltnerAtrPeriods = 20
keltnerAtrMultiplier = 1.5
tidyquant::tq_mutate( mutate_fun=EMA, select=close, n=keltnerEmaPeriods) %>%
dplyr::rename( "Keltner_average"="EMA" ) %>%
tidyquant::tq_mutate( mutate_fun=ATR, n=keltnerAtrPeriods ) %>%
dplyr::select( -c("tr", "ATR", "ATR..1") ) %>%
dplyr::mutate( "Keltner_lower" = Keltner_average - keltnerAtrMultiplier * atr) %>%
dplyr::mutate( "Keltner_upper" = Keltner_average + keltnerAtrMultiplier * atr) %>%
如果您喜欢dplyr,这可能会有所帮助。调味
keltnerEmaPeriods = 20
keltnerAtrPeriods = 20
keltnerAtrMultiplier = 1.5
tidyquant::tq_mutate( mutate_fun=EMA, select=close, n=keltnerEmaPeriods) %>%
dplyr::rename( "Keltner_average"="EMA" ) %>%
tidyquant::tq_mutate( mutate_fun=ATR, n=keltnerAtrPeriods ) %>%
dplyr::select( -c("tr", "ATR", "ATR..1") ) %>%
dplyr::mutate( "Keltner_lower" = Keltner_average - keltnerAtrMultiplier * atr) %>%
dplyr::mutate( "Keltner_upper" = Keltner_average + keltnerAtrMultiplier * atr) %>%
Reduce(合并、列表(低、中、高))
是不必要的。使用TTR函数作为模板,并使用try.xts
/reclass
范例。然后您可以将Reduce
行替换为keltner@Joshua Ulrich感谢您的建议Reduce(合并,列表(lo,mid,hi))
是不必要的。使用TTR函数作为模板,并使用try.xts
/reclass
范例。然后您可以将Reduce
行替换为keltner@Joshua Ulrich,谢谢您的建议