このエントリーをはてなブックマークに追加


PowerShellでbitFlyerの板情報を取得・getboard

当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。
当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。
あらかじめご了承ください。


PowerShellを使ってbitFlyerの板情報APIの使用例を以下に記します。


bitFlyer ビットコインを始めるなら安心・安全な取引所で

関連記事

板情報APIの仕様など

HTTP Public APIなのでbitFlyerに取引口座を開設していなくても使用することができます。

板情報のAPI仕様(bitFlyer APIページから抜粋)

リクエスト
GET /v1/getboard
GET /v1/board
クエリパラメータ
product_code: マーケットの一覧で取得できる product_code または alias のいずれかを指定してください。 省略した場合の値は BTC_JPY です。
レスポンス
{
  "mid_price": 33320,
  "bids": [
    {
      "price": 30000,
      "size": 0.1
    },
    {
      "price": 25570,
      "size": 3
    }
  ],
  "asks": [
    {
      "price": 36640,
      "size": 5
    },
    {
      "price": 36700,
      "size": 1.2
    }
  ]
}

ブラウザで板情報(getboard)を取得する

GETなのでブラウザで板情報を取得することができます。
以下のようなURLになります。
https://api.bitflyer.jp/v1/getboard

ブラウザで板情報APIにアクセスした結果

以下ブラウザから上記URLにアクセスしたときの出力です。

FirefoxではJSONが整形され表示されています。
見やすいですね。
(生データをクリックすると上記同様にJSON形式の返却された文字列が表示されます。)

01.png
02.png

Invoke-RestMethodコマンドレットでbitFlyerの板情報を取得する

  1. 板情報を取得するURL(API)を設定します。
    PS C:\> $board_api = "https://api.bitflyer.jp/v1/getboard"
  2. Invoke-RestMethodコマンドレットを使用し、返却された情報を$board変数に代入します。
    $board = Invoke-RestMethod -UseBasicParsing -Uri $board_api
  3. 取得した板情報を表示しています。
    PS C:\> $board
    
    mid_price bids
    --------- ----
     985268.0 {@{price=985140.0; size=0.061}, @{price=984792.0; size=0.01}, @{price=984787.0; size=0.01}, @{price=984777.0; siz...
  4. 取得したmid_priceとasks, bidsの取得件数を表示してみます。
    PS C:\> $board.mid_price
    985268.0
    PS C:\> $board.asks.Count
    2118
    PS C:\> $board.bids.Count
    2869
  5. とても件数が多いので、asks, bidsの先頭から10件表示してみます。 PS C:\> $board.asks | % { "$($_.price) : $($_.size)" } | Select-Object -First 10
    985396.0 : 2.0171
    985400.0 : 0.056
    985499.0 : 0.0199
    985500.0 : 11.885
    985574.0 : 0.003
    985589.0 : 0.01
    985595.0 : 1.0
    985690.0 : 1.2
    985901.0 : 0.02
    985999.0 : 0.50000013
    
    PS C:\> $board.bids | % { "$($_.price) : $($_.size)" } | Select-Object -First 10
    985140.0 : 0.061
    984792.0 : 0.01
    984787.0 : 0.01
    984777.0 : 0.01
    984771.0 : 0.00253457
    984454.0 : 0.48
    984453.0 : 2.67272649
    984452.0 : 0.6034
    984451.0 : 0.039
    984382.0 : 0.01000004

HTTPステータスなどを一緒に取得したい場合 †

上記では、Invoke-RestMethodにてJSONをPowerShellで扱いやすい状態に変換してくれます。 しかし、Webサーバから返却された値を変換せず、取得後JSONを別のコマンドレットで変換する操作手順を以下に記します。

  1. 板情報を取得するURLを設定します。
    PS C:\> $board_api = "https://api.bitflyer.jp/v1/getboard"
  2. Invoke-WebRequestコマンドレットでサーバからのレスポンスを$resに格納します。
    PS C:\> $res = Invoke-WebRequest -UseBasicParsing -Uri $board_api
  3. 取得したレスポンスは以下の通りです。
    PS C:\> $res
    
    StatusCode        : 200
    StatusDescription : OK
    Content           : {"mid_price":984918.0,"bids":[{"price":984788.0,"size":0.039},{"price":984751.0,"size":0.01},{"price":9846
                        51.0,"size":0.23050078},{"price":984650.0,"size":0.50000013},{"price":984649.0,"size":1.411689...
    RawContent        : HTTP/1.1 200 OK
                        Transfer-Encoding: chunked
                        Connection: keep-alive
                        Pragma: no-cache
                        Request-Context: appId=cid-v1:e4fbc941-a2df-48ac-bbac-f2180e904002
                        X-Content-Type-Options: nosniff
                        X-XSS-Protec...
    Forms             :
    Headers           : {[Transfer-Encoding, chunked], [Connection, keep-alive], [Pragma, no-cache], [Request-Context, appId=cid-v
                        1:e4fbc941-a2df-48ac-bbac-f2180e904002]...}
    Images            : {}
    InputFields       : {}
    Links             : {}
    ParsedHtml        :
    RawContentLength  : 158809
  4. HTTPステイタスを取得しています。
    PS C:\> $res.StatusCode
    200
  5. Contentに取得した情報が格納されています。
    PS C:\> $json = ($res.Content | ConvertFrom-Json)
    PS C:\> $json
    
    mid_price bids
    --------- ----
     984918.0 {@{price=984788.0; size=0.039}, @{price=984751.0; size=0.01}, @{price=984651.0; size=0.23050078}, @{price=984650....
    
    
    PS C:\> $json.mid_price
    984918.0
    PS C:\> $json.asks[0]
    
       price       size
       -----       ----
    985049.0 0.68455953

以上、PowerShellを使って、bitFlyerの板情報を取得・getboardからの返却値を表示する方法でした。


bitFlyer ビットコインを始めるなら安心・安全な取引所で

添付ファイル: file02.png 4件 [詳細] file01.png 6件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-05-08 (火) 12:44:55 (17d)