#author("2018-04-26T23:26:10+09:00","","") #author("2018-04-26T23:28:00+09:00","","") #navi(../) * PowerShellでCoincheckの板情報を取得・order_books(PowerShell) [#z19cb484] &color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。}; ---- PowerShellを使って&htmlinsert(coincheck.html);の[[板情報>https://coincheck.com/ja/documents/exchange/api#order-book]]APIの使用例を以下に記します。 #contents #htmlinsert(cc-top.html) * 関連記事 [#cf0e1b24] -[[API動作環境構築>API/環境構築]] -[[ティッカー(PHP)>API/coincheck/ティッカー(PHP)]] -[[全取引履歴(PHP)>API/coincheck/全取引履歴(PHP)]] -[[板情報(PHP)>API/coincheck/板情報(PHP)]] -[[レート取得(PHP)>API/coincheck/レート取得(PHP)]] -[[販売レート取得(PHP)>API/coincheck/販売レート取得(PHP)]] -[[ティッカー(PowerShell)>API/coincheck/ティッカー(PowerShell)]] -[[板情報(PowerShell)>API/coincheck/板情報の取得(PowerShell)]] -[[CoincheckのAPIキー生成手順>API/coincheck/APIキー生成手順]] -[[アカウントの残高確認(PHP)>API/coincheck/残高確認(PHP)]] -[[新規注文・現物売買(PHP)>API/coincheck/新規注文・現物売買(PHP)]] -[[レバレッジアカウントの残高サンプル(PHP)>API/coincheck/レバレッジアカウントの残高取得]] -[[レバレッジ取引注文サンプルコード(PHP)>API/coincheck/レバレッジ取引注文(PHP)]] -[[レバレッジ取引のポジション一覧を取得する・positions(PHP)>API/coincheck/ポジション一覧(PHP)]] -[[最近の取引履歴を取得する(PHP)>API/coincheck/最近の取引履歴の取得(PHP)]] * 板情報APIの仕様など [#j2d1bcfc] public APIなので&htmlinsert(coincheck.html);に取引口座を開設していなくても使用することができます。 板情報のAPI仕様(Coincheck APIページから抜粋) ~ https://coincheck.com/ja/documents/exchange/api#order-book 板情報 板情報を取得できます。 HTTP REQUEST GET /api/order_books RESPONSE ITEMS asks 売り注文の情報 bids 買い注文の情報 板情報APIを試してみた結果、asks, bids の情報が400件(asks200件、bids200件)返却されました。~ * ブラウザで板情報(order_books)を取得する [#o4f10e35] GETなのでブラウザで板情報を取得することができます。~ 以下のようなURLになります。~ https://coincheck.com/api/order_books * ブラウザで板情報APIにアクセスした結果 [#b033ca9d] 以下ブラウザから上記URLにアクセスしたときの出力です。 JSONが整形され表示されています。~ 見やすいですね。~ (生データをクリックすると上記同様にJSON形式の返却された文字列が表示されます。) #ref(01.png) * Invoke-RestMethodコマンドレットでCoincheckの板情報を取得する [#r14b0659] +板情報を取得するURL(API)を設定します。 PS C:\> $order_books_api = "https://coincheck.com/api/order_books" +Invoke-RestMethodコマンドレットを使用し、返却された情報を$order_books_api変数に代入します。 PS C:\> $order_books = Invoke-RestMethod -UseBasicParsing $order_books_api +取得した板情報を表示しています。 PS C:\> $order_books asks bids ---- ---- {963999.0 0.015, 964584.0 0.0106, 964585.0 0.005, 964687.0 0.206...} {963724.0 0.1, 963723.0 1.2893, 963722.0 0.8468... +取得した数を確認しています。bid,askともに200件取得できています。 PS C:\> $order_books.asks.Count 200 PS C:\> $order_books.bids.Count 200 以下のようにして取得した、板情報にアクセスできます。 +askを表示 PS C:\> $order_books.asks 963999.0 0.015 964584.0 0.0106 964585.0 0.005 964687.0 0.206 964854.0 <省略> これでは見にくいので、以下にしました。 -- askを10件表示 PS C:\> $order_books.asks | % { "$($_[0]) : $($_[1])" } | Select-Object -First 10 963999.0 : 0.015 964584.0 : 0.0106 964585.0 : 0.005 964687.0 : 0.206 964854.0 : 0.04 964999.0 : 0.015 965043.0 : 0.005 965045.0 : 0.04 965185.0 : 0.05 965236.0 : 0.8839 -- bidsを10件表示 PS C:\> $order_books.bids | % { "$($_[0]) : $($_[1])" } | Select-Object -First 10 963724.0 : 0.1 963723.0 : 1.2893 963722.0 : 0.8468 963677.0 : 0.08 963603.0 : 0.05522457 963557.0 : 0.3 963523.0 : 0.005 963520.0 : 0.05 963516.0 : 0.426 963473.0 : 0.1 *HTTPステータスなどを一緒に取得したい場合 † [#g9b40a02] 上記では、Invoke-RestMethodにてJSONをPowerShellで扱いやすい状態に変換してくれます。 しかし、Webサーバから返却された値を変換せず、取得後JSONを別のコマンドレットで変換する操作手順を以下に記します。 + 板情報を取得するURLを設定します。 PS C:\> $order_books_api = "https://coincheck.com/api/order_books" PS C:\> $order_books_api = "https://coincheck.com/api/order_books" + Invoke-WebRequestコマンドレットでサーバからのレスポンスを$resに格納します。 PS C:\> $res = Invoke-WebRequest -UseBasicParsing $order_books_api PS C:\> $res = Invoke-WebRequest -UseBasicParsing $order_books_api + 取得したレスポンスは以下の通りです。 PS C:\> $res StatusCode : 200 StatusDescription : OK Content : {"asks":[["964476.0","0.01"],["964481.0","0.07"],["964624.0","0.04997196"],["964672.0","0.8818"],[" 964673.0","0.1"],["964674.0","0.1"],["964716.0","0.005"],["964924.0","0.1"],["964994.0","0.1"],["96 50... RawContent : HTTP/1.1 200 OK Transfer-Encoding: chunked Connection: keep-alive X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Request-Id: 939121fa-5fd2-4cfa-bf2... Forms : Headers : {[Transfer-Encoding, chunked], [Connection, keep-alive], [X-Frame-Options, SAMEORIGIN], [X-XSS-Prot ection, 1; mode=block]...} Images : {} InputFields : {} Links : {} ParsedHtml : RawContentLength : 8573 +HTTPステイタスを取得しています。 PS C:\> $res.StatusCode 200 +値も取得しています。 PS C:\> $json = ($res.Content | ConvertFrom-Json) PS C:\> $json asks bids ---- ---- {964476.0 0.01, 964481.0 0.07, 964624.0 0.04997196, 964672.0 0.8818...} {964145.0 0.6, 964110.0 0.015, 964001.0 0.01... PS C:\> $json.asks[0] 964476.0 0.01 以上、PowerShellを使って、Coincheckの板情報を取得・order_booksからの返却値を表示する方法でした。 #htmlinsert(cc-btm.html)