ビットコインバブルに乗っかりまして、
仮想通貨取引所でおなじみbitFlyerの、開発者向けAPIを操作して、
億り人を目指します。
bitFlyer Lightning APIでは3種類のAPIが提供されています。
・HTTP Public API
→ログイン不要で、板情報、歩み情報等取引所が公表する値を取得出来ます。
・HTTP Private API
→ログインが必要で、入出金やトレードなど取引が行なえます。
・Realtime API
→板情報をリアルタイムに取得出来ます。
今回はRcurlを使ってPublic APIにアクセスしてみたいと思います。
#使用パッケージをインストール install.packages("RCurl") install.packages("rjson") #ライブラリロード library(rjson) library(RCurl) #エンドポイントを設定 endpoint <- "https://api.bitflyer.jp/v1/" #パラメータに対応 getboard <- paste(endpoint,"getboard?product_code=BTC_JPY",sep="") #json→リスト変換 json <-getURL(getboard) board <- fromJSON(json) #リストを分割してデータフレームへ asks <- data.frame(do.call("rbind",board$asks)) bids <- data.frame(do.call("rbind",board$bids)) asks <- data.frame(unlist(asks$price),unlist(asks$size)) bids <- data.frame(unlist(bids$price),unlist(bids$size)) #askは降順 asks <-asks[order(asks$unlist.asks.price.,decreasing = TRUE),] #それぞれを3列に修正 asks <- data.frame(asks,rep(0,nrow(asks))) bids <- data.frame(rep(0,nrow(bids)),bids) #askはpriceとvolmeを入替 asks <- asks[,c(2,1,3)] #列名を統一 colnames(asks) <- c("ask", "price", "bid") colnames(bids) <- c("ask", "price", "bid") #結合 ita <- rbind(asks,bids)
jsonの扱いが初めてだったため、無理やり感が凄いですが、板情報のような形に出来ました。
適当に分析します。
dim(ita) [1] 5344 3 #約5000行のデータです。 #中値が178万位なので、150万以上200万以下で抽出してみます sub <- dplyr::filter(ita,ita$price > 1500000 & 2000000 > ita$price ) #askの合計は1281BTC sum(sub$ask) [1] 1281.779 #bidの合計は1100BTC > sum(sub$bid) [1] 1100.294
売り圧力が強いため、今後の価格は下落方向でしょう!!!(錯乱)