2016-07-24 25 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