欧州時間足の作成
欧州時間を7時~15時(日本時間で冬時間は16時~0時、夏時間は15時~23時)とする(ちょっと早くないか?)。
米国と欧州では夏時間の時期が若干ずれているが、その調整はしていない。
時間の分け方については以下を参照。
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) >= 9 & .indexhour(temp) < 17]
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, AUDJPYEUR <- merge(op, hi, lo, cl),
AUDUSDEUR <- merge(op, hi, lo, cl),
CHFJPYEUR <- merge(op, hi, lo, cl),
EURCHFEUR <- merge(op, hi, lo, cl),
EURGBPEUR <- merge(op, hi, lo, cl),
EURJPYEUR <- merge(op, hi, lo, cl),
EURUSDEUR <- merge(op, hi, lo, cl),
GBPCHFEUR <- merge(op, hi, lo, cl),
GBPJPYEUR <- merge(op, hi, lo, cl),
GBPUSDEUR <- merge(op, hi, lo, cl),
NZDUSDEUR <- merge(op, hi, lo, cl),
USDCADEUR <- merge(op, hi, lo, cl),
USDCHFEUR <- merge(op, hi, lo, cl),
USDJPYEUR <- merge(op, hi, lo, cl),
XAGUSDEUR <- merge(op, hi, lo, cl),
XAUUSDEUR <- merge(op, hi, lo, cl)
)
}
# Date型への変換
index(AUDJPYEUR) <- as.Date(paste(index(AUDJPYEUR), "%Y/%m/%d"))
index(AUDUSDEUR) <- as.Date(paste(index(AUDUSDEUR), "%Y/%m/%d"))
index(CHFJPYEUR) <- as.Date(paste(index(CHFJPYEUR), "%Y/%m/%d"))
index(EURCHFEUR) <- as.Date(paste(index(EURCHFEUR), "%Y/%m/%d"))
index(EURGBPEUR) <- as.Date(paste(index(EURGBPEUR), "%Y/%m/%d"))
index(EURJPYEUR) <- as.Date(paste(index(EURJPYEUR), "%Y/%m/%d"))
index(EURUSDEUR) <- as.Date(paste(index(EURUSDEUR), "%Y/%m/%d"))
index(GBPCHFEUR) <- as.Date(paste(index(GBPCHFEUR), "%Y/%m/%d"))
index(GBPJPYEUR) <- as.Date(paste(index(GBPJPYEUR), "%Y/%m/%d"))
index(GBPUSDEUR) <- as.Date(paste(index(GBPUSDEUR), "%Y/%m/%d"))
index(NZDUSDEUR) <- as.Date(paste(index(NZDUSDEUR), "%Y/%m/%d"))
index(USDCADEUR) <- as.Date(paste(index(USDCADEUR), "%Y/%m/%d"))
index(USDCHFEUR) <- as.Date(paste(index(USDCHFEUR), "%Y/%m/%d"))
index(USDJPYEUR) <- as.Date(paste(index(USDJPYEUR), "%Y/%m/%d"))
index(XAGUSDEUR) <- as.Date(paste(index(XAGUSDEUR), "%Y/%m/%d"))
index(XAUUSDEUR) <- as.Date(paste(index(XAUUSDEUR), "%Y/%m/%d"))
# データの結合
dataEUR <- merge(AUDJPYEUR, AUDUSDEUR, CHFJPYEUR, EURCHFEUR,
EURGBPEUR, EURJPYEUR, EURUSDEUR, GBPCHFEUR,
GBPJPYEUR, GBPUSDEUR, NZDUSDEUR, USDCADEUR,
USDCHFEUR, USDJPYEUR, XAGUSDEUR, XAUUSDEUR
)
# 列名の変更
colnames(dataEUR) <- 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の補間
dataEUR <- na.locf(dataEUR)
# 使用済みオブジェクトの削除
rm(cl, hi, i, lo, op, temp)
rm(AUDJPYEUR, AUDUSDEUR, CHFJPYEUR, EURCHFEUR,
EURGBPEUR, EURJPYEUR, EURUSDEUR, GBPCHFEUR,
GBPJPYEUR, GBPUSDEUR, NZDUSDEUR, USDCADEUR,
USDCHFEUR, USDJPYEUR, XAGUSDEUR, XAUUSDEUR
)