この種のテンプレートコードは、あなたが特に必要とするものを手に入れるのに役立ちます。あなた自身の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
'Reduce(merge、list(lo、mid、hi))は不要です。 TTR関数をテンプレートとして使用し、 'try.xts' /' reclass'パラダイムを使用します。 'Reduce'行を' keltner < - cbind(lo、mid、hi) 'に置き換えることができます。 –
@Joshua Ulrichアドバイスをいただきありがとうございます – FXQuantTrader