FXメモ グラフ作成自動化

約定履歴をグラフにプロットする作業を自動化した。
FX会社の専用ツールやそれっぽい機能が提供されてない様子だったので自作した。
 
為替相場推移のデータはMT4からエクスポート出来る。
約定履歴はFX会社の専用ツールからエクスポート出来る。
R言語+quantmodでMT4から取得したデータが簡単にグラフ化出来る。
 
上記で試行錯誤した結果、なんとかグラフ化出来た。

f:id:youg_bb:20151129181838p:image

 
MT4からエクスポートした為替推移(USDJPY)をR言語に取り込む部分。
試行錯誤した結果、zoo形式を経由しxts形式で取り込むことにした。
 
cn=c("Date","Time","Open","High","Low","Close","Volume")
mt4.xts <- as.xts(read.zoo("USDJPY60-20151128-1min-2015-10_11.csv",
                    index.column = 1:2,
                    format = "%Y.%m.%d%H:%M",
                    header=F,
                    col.names=cn,
                    sep=",",
                    tz="Europe/London"))
 上記xtsをquantmodでグラフ化する部分。
candleChart(to.period(mt4.xts,
                      period = "hours",
                      indexAt = "startof"),
            name="USDJPY",
            major.ticks = T,
            minor.ticks = T)
 
約定履歴のデータは建玉単位でCSV化するよう別途ツールを用意。
建玉単位の約定履歴のCSVは以下のフォーマットとした。
 
(1行目:新規) 日付,時刻,約定価格,ポジション(買/売)
(2行目:決済) 日付,時刻,約定価格,ポジション(買/売),
 
約定履歴を取り込む部分。
試行錯誤の結果、csv形式で取り込んでからxts形式に変換する形とした。
 
position.csv <- read.csv(file,sep=",",header = F)
position.xts <- xts(position.csv[3],
                      order.by = as.POSIXct(paste(position.csv[,1],position.csv[,2],sep=" "),
                                            tz="",
                                            format="%Y.%m.%d %H:%M")
                      )
 
取り込んだ約定履歴は始点と終点だけなので
このまま前述のローソク足のチャートにプロットしてもプロットされなかった。
その為始点と終点の間を補完してからプロットした。
tmp1.xts <- merge.xts(mt4.xts$Close,position.xts)
tmp1.xts <- na.approx(tmp1.xts$V3)
print(addTA(tmp1.xts,on=1,lwd=4,col=c,legend = NULL))
 
これで面倒だったグラフ化の作業が楽になった。