2016-07-24 24 views
1

是否有任何已经实现Keltner Channels的R包,我试图找出哪些频道是每日收盘价位置(-3,-2,-1,1,2, 3)R Keltner Channels

我在TTR中找到了ATR函数,但我不确定是否有一种方法来使用它,我试图得到的是类似于链接描述的东西,我只需要值,不是图形,这样我可以比较的日收盘价格与渠道

Keltner Channels : StockCharts.com

Keltner Channels

任何帮助指向我在正确的方向是赞赏

回答

1

这种模板代码将帮助你得到你想要的东西。选择你自己的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 
+0

'Reduce(merge,list(lo,mid,hi))'是不必要的。使用TTR函数作为模板,并使用'try.xts' /'reclass'范例。然后你可以用'keltner < - cbind(lo,mid,hi)'替换'Reduce'行。 –

+0

@Joshua Ulrich感谢您的建议 – FXQuantTrader