R筋

プログラミングと時々育児

【R】bitFlyerのAPIを操作 public API・ticker編

過去のブログで板情報を取得しました。
anpontan382.hatenablog.com
今回はティッカー情報です。
ティッカー情報は、取得時点のベストプライス・ボリュームなどです。自動売買ツールを作る上では条件判定に必要になるでしょう。
早速コードはこちら~

#最初は前回同様です
#ライブラリロード
library(rjson)
library(RCurl)

#エンドポイントを設定
endpoint <- "https://api.bitflyer.jp/v1/"

#パラメータに対応
getboard <- paste(endpoint,"getticker?product_code=BTC_JPY",sep="")

#tickerを蓄積するデータフレームを作成
ticker_DB <- data.frame(matrix(rep(NA, 12), nrow=1))[numeric(0), ]
colnames(ticker_DB) <- c("product_code","timestamp","tick_id","best_bid","best_ask",  
                          "best_bid_size","best_ask_size","total_bid_depth","total_ask_depth","ltp",              
                          "volume","volume_by_product")

#1000回取得します
for (i in 1:1000){

  #json→リスト変換→data.frame
  json <- getURL(getboard)
  ticker <- fromJSON(json)
  ticker <- as.data.frame(ticker)

  #0.1秒待つ(bitFlyerへのアクセスは1分間に200回が上限です)
  Sys.sleep(0.1)

  #取得したtickerを格納
  ticker_DB <- rbind(ticker_DB,ticker)
}

1000行のティッカー情報が取れました。
f:id:anpontan382:20180115224605p:plain

timestampは世界標準時UTC)のため、日本時間(JST)にすると
2018-01-15 22:27:44から10分間のデータになります。

f:id:anpontan382:20180115225337p:plain
サマリーを見てみますとこの5分間の間は、ltp(最終取引価格)が170万8千円~171万3千円で推移したことがわかります。この5分でうまくやれば5,000円手に入ったわけだ。

plot(ticker_DB$ltp,type="l")

f:id:anpontan382:20180115230551p:plain
プロットするとこんな感じ。
よーしそれじゃ早速タイムマシンで22:27:44に戻ってみんなも5000円ゲットじゃぞ~