こんにちは、はやたす(@hayatasuuu )です。
第6回目の本記事では、ビットコインの板情報を取得していきたいと思います。
前回の記事 : #5 Python×ビットコイン自動売買 | Coincheck APIを使って全取引履歴を取得しよう!
板情報が分かると、どれくらい「買い」と「売り」の指値が入っているか把握できるようになります。
自動売買に限らずビットコインを取引するなら便利な指標です。
今回はそんな板情報を、APIで取得していきましょう。
なお今回のチュートリアルまではCoincheckの口座を持っている必要がありません。誰でもAPIを利用できるので、安心して取り組んでいただけたらと思います!
Coincheck APIを使って板情報を取得しよう!
今回は、第4回目の記事で書いた以下のコードを編集していきます。
import requests
BASE_URL = 'https://coincheck.com'
url = BASE_URL + '/api/ticker'
r = requests.get(url)
r = r.json()
print('最新価格:', r['last'])
STEP① : URLの変更
前回と同様に、まずはアクセス先のURLを変更しましょう。
板情報を取得するには、/api/order_books
へのアクセスが必要です。
URLだけでなく出力も合わせて、以下のようにコードを書き換えましょう。
import requests
BASE_URL = 'https://coincheck.com'
url = BASE_URL + '/api/order_books' # 変更点
r = requests.get(url)
r = r.json()
print(r) # 変更点
これでOKです。
STEP② : プログラムの実行
コードの作成が完了したので、プログラムを実行していきましょう。
ターミナルでpython main.py
と入力してエンターキーを押します。
そうすると以下のような画面になるはずです。
はい、だいぶ見辛いですね(^_^;)
こんなときは、例によってpprint()
を使っていきましょう。
from pprint import pprint
import requests
BASE_URL = 'https://coincheck.com'
url = BASE_URL + '/api/order_books'
r = requests.get(url)
r = r.json()
pprint(r)
この状態でPythonファイルを実行すると、以下のようになるはずです。
これで多少は見やすい形になりました。
とはいえ、表示件数が多く把握しづらいことには変わりないです。
そこで今回の骨子になる構造を抜き出してみると、以下のようになっていることが分かります。
{'asks': [['price1', 'volume1']], 'bids': [['price1', 'volume1']]}
つまり「asks
とbids
について、価格と枚数がたくさん書かれている」わけですね。
“たくさん”と表現した部分は、具体的にいうと直近200件のデータが入っています。
要するに/api/order_books
へアクセスすると、買い板と売り板を200件ずつ取得できるわけです。
補足 : 取得件数の指定方法
今回はデフォルトの状態で、直近200件の板情報を取得しました。
ただ毎回200件ずつ出力されるのも鬱陶しいので、取得件数に制限をかけてAPIにアクセスしてみましょう。
その方法は、第5回目と同じようにrequests.get()
でlimit
というパラメータを渡してあげるだけです。
コードで書くと以下のようになります。
from pprint import pprint
import requests
BASE_URL = 'https://coincheck.com'
url = BASE_URL + '/api/order_books'
params = {
'limit': 1
}
r = requests.get(url, params=params)
r = r.json()
pprint(r)
今回はlimit=1
なので「買い板と売り板を1件だけ取得する」ということになります。
アクセス結果が以下です。
出力結果だけ見てみましょう。
{'asks': [['4737188.0', '0.07898905']], 'bids': [['4736259.0', '0.04']]}
買いと売りで1件ずつ板情報を取得できていますね!
まとめ : Coincheck APIを使って板情報を取得しよう!
この記事ではビットコインの板情報を取得する方法を紹介しました。
ここまで学習すると、APIのアクセスに慣れてきたのではないでしょうか。
このタイミングで、今まで使ったAPIをまとめておきます。
- 最新の価格情報を取得する :
/api/ticker
- 取引履歴を取得する :
/api/trades
- 板情報を取得する :
/api/order_books
これらのAPIは、Coincheckmp口座を持っていなくても利用できました。
でも次回からは「口座を持っている人しか操作できないAPI」を使っていきたいと思います。
もし学習を進めていく場合は、このタイミングでCoincheckの口座開設を済ませてしまいましょう!
公式ページ : 仮想通貨取引所・販売所の口座開設|Coincheck(コインチェック)
口座維持費や登録料は一切かからないので、ビットコインを売買しなければ損することはありません。