#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS