米国時間足の作成
米国時間を8時~16時(日本時間で冬時間は22時~6時、夏時間は21時~5時)とする。
時間の分け方については以下を参照。
Intraday patterns in FX returns and order flow
http://www.econ.qmul.ac.uk/papers/doc/wp694.pdf
時間の分け方については以下を参照。
Intraday patterns in FX returns and order flow
http://www.econ.qmul.ac.uk/papers/doc/wp694.pdf
# パッケージの呼び出し
library(quantmod)
# 四本値の抽出
for (i in 1:16) {
temp <- switch(i, AUDJPYH1, AUDUSDH1, CHFJPYH1, EURCHFH1,
EURGBPH1, EURJPYH1, EURUSDH1, GBPCHFH1,
GBPJPYH1, GBPUSDH1, NZDUSDH1, USDCADH1,
USDCHFH1, USDJPYH1, XAGUSDH1, XAUUSDH1
)
temp <- temp[.indexhour(temp) >= 15 & .indexhour(temp) < 23]
op <- apply.daily(temp[, 1], first)
hi <- apply.daily(temp[, 2], max)
lo <- apply.daily(temp[, 3], min)
cl <- apply.daily(temp[, 4], last)
switch(i, AUDJPYUSD <- merge(op, hi, lo, cl),
AUDUSDUSD <- merge(op, hi, lo, cl),
CHFJPYUSD <- merge(op, hi, lo, cl),
EURCHFUSD <- merge(op, hi, lo, cl),
EURGBPUSD <- merge(op, hi, lo, cl),
EURJPYUSD <- merge(op, hi, lo, cl),
EURUSDUSD <- merge(op, hi, lo, cl),
GBPCHFUSD <- merge(op, hi, lo, cl),
GBPJPYUSD <- merge(op, hi, lo, cl),
GBPUSDUSD <- merge(op, hi, lo, cl),
NZDUSDUSD <- merge(op, hi, lo, cl),
USDCADUSD <- merge(op, hi, lo, cl),
USDCHFUSD <- merge(op, hi, lo, cl),
USDJPYUSD <- merge(op, hi, lo, cl),
XAGUSDUSD <- merge(op, hi, lo, cl),
XAUUSDUSD <- merge(op, hi, lo, cl)
)
}
# Date型への変換
index(AUDJPYUSD) <- as.Date(paste(index(AUDJPYUSD), "%Y/%m/%d"))
index(AUDUSDUSD) <- as.Date(paste(index(AUDUSDUSD), "%Y/%m/%d"))
index(CHFJPYUSD) <- as.Date(paste(index(CHFJPYUSD), "%Y/%m/%d"))
index(EURCHFUSD) <- as.Date(paste(index(EURCHFUSD), "%Y/%m/%d"))
index(EURGBPUSD) <- as.Date(paste(index(EURGBPUSD), "%Y/%m/%d"))
index(EURJPYUSD) <- as.Date(paste(index(EURJPYUSD), "%Y/%m/%d"))
index(EURUSDUSD) <- as.Date(paste(index(EURUSDUSD), "%Y/%m/%d"))
index(GBPCHFUSD) <- as.Date(paste(index(GBPCHFUSD), "%Y/%m/%d"))
index(GBPJPYUSD) <- as.Date(paste(index(GBPJPYUSD), "%Y/%m/%d"))
index(GBPUSDUSD) <- as.Date(paste(index(GBPUSDUSD), "%Y/%m/%d"))
index(NZDUSDUSD) <- as.Date(paste(index(NZDUSDUSD), "%Y/%m/%d"))
index(USDCADUSD) <- as.Date(paste(index(USDCADUSD), "%Y/%m/%d"))
index(USDCHFUSD) <- as.Date(paste(index(USDCHFUSD), "%Y/%m/%d"))
index(USDJPYUSD) <- as.Date(paste(index(USDJPYUSD), "%Y/%m/%d"))
index(XAGUSDUSD) <- as.Date(paste(index(XAGUSDUSD), "%Y/%m/%d"))
index(XAUUSDUSD) <- as.Date(paste(index(XAUUSDUSD), "%Y/%m/%d"))
# データの結合
dataUSD <- merge(AUDJPYUSD, AUDUSDUSD, CHFJPYUSD, EURCHFUSD,
EURGBPUSD, EURJPYUSD, EURUSDUSD, GBPCHFUSD,
GBPJPYUSD, GBPUSDUSD, NZDUSDUSD, USDCADUSD,
USDCHFUSD, USDJPYUSD, XAGUSDUSD, XAUUSDUSD
)
# 列名の変更
colnames(dataUSD) <- c("AUDJPY.Open","AUDJPY.High","AUDJPY.Low","AUDJPY.Close",
"AUDUSD.Open","AUDUSD.High","AUDUSD.Low","AUDUSD.Close",
"CHFJPY.Open","CHFJPY.High","CHFJPY.Low","CHFJPY.Close",
"EURCHF.Open","EURCHF.High","EURCHF.Low","EURCHF.Close",
"EURGBP.Open","EURGBP.High","EURGBP.Low","EURGBP.Close",
"EURJPY.Open","EURJPY.High","EURJPY.Low","EURJPY.Close",
"EURUSD.Open","EURUSD.High","EURUSD.Low","EURUSD.Close",
"GBPCHF.Open","GBPCHF.High","GBPCHF.Low","GBPCHF.Close",
"GBPJPY.Open","GBPJPY.High","GBPJPY.Low","GBPJPY.Close",
"GBPUSD.Open","GBPUSD.High","GBPUSD.Low","GBPUSD.Close",
"NZDUSD.Open","NZDUSD.High","NZDUSD.Low","NZDUSD.Close",
"USDCAD.Open","USDCAD.High","USDCAD.Low","USDCAD.Close",
"USDCHF.Open","USDCHF.High","USDCHF.Low","USDCHF.Close",
"USDJPY.Open","USDJPY.High","USDJPY.Low","USDJPY.Close",
"XAGUSD.Open","XAGUSD.High","XAGUSD.Low","XAGUSD.Close",
"XAUUSD.Open","XAUUSD.High","XAUUSD.Low","XAUUSD.Close"
)
# NAの補間
dataUSD <- na.locf(dataUSD)
# 使用済みオブジェクトの削除
rm(cl, hi, i, lo, op, temp)
rm(AUDJPYUSD, AUDUSDUSD, CHFJPYUSD, EURCHFUSD,
EURGBPUSD, EURJPYUSD, EURUSDUSD, GBPCHFUSD,
GBPJPYUSD, GBPUSDUSD, NZDUSDUSD, USDCADUSD,
USDCHFUSD, USDJPYUSD, XAGUSDUSD, XAUUSDUSD
)