このシリーズではbitFlyer Lightning APIを使用することで、常に情報収集/テクニカル分析し、 ここだと思えるタイミングで自動売買を行えるシステム開発を目指します。
今回は、bitFlyer Lightning Public API を使用して情報収集をしてみようと思います。
-- 実行環境 --
Windows 10 64ビット版(1903)、python 3.7.4
API制限
bitFlyer API API Documentation より抜粋
HTTP API は、以下のとおり呼出回数を制限いたします。
Private API の呼出は 5 分間で 500 回を上限とします。上限に達すると呼出を一定時間ブロックします。また、ブロックの解除後も呼出の上限を一定時間引き下げます。同一 IP アドレスからの API の呼出は 5 分間で 500 回を上限とします。上限に達すると呼出を一定時間ブロックします。また、ブロックの解除後も呼出の上限を一定時間引き下げます。
0.1 以下の数量の注文は、すべての板の合計で 1 分間で 100 回を上限とします。上限に達するとその後 1 時間は 1 分間で 10 回まで注文を制限します。システムに負荷をかける目的で注文を繰り返していると当社が判断した場合は、API の使用を制限することがあります。ご了承ください。
bitFlyer Lightning Public API の使用
約定履歴の取得
分析やバックテストの基本である約定履歴を取得してみます。API Documentation を確認すると、マーケット一覧のリクエストは下記となっています。
GET /v1/getexecutions
GET /v1/executions
また、パラメーターを指定することでデータの絞り込みが可能です。
product_code | マーケット一覧で取得できるコードを指定。省略時はBTC_JPY |
count | 取得件数を指定、省略時は100件 |
before | IDを指定。指定IDより小さいIDを持つデータを取得。 IDは約定履歴毎に割り当てられる一意の連番 |
after | IDを指定。指定IDより大きいIDを持つデータを取得。 IDは約定履歴毎に割り当てられる一意の連番 |
import requests
import json
def main():
html = requests.get("https://api.bitflyer.com/v1/getexecutions?product_code=BTC_JPY&count=10")
executions = json.loads( html.text)
for execution in executions:
print( execution["price"],"/",execution["size"])
if __name__ == '__main__':
main()
1057202.0 / 0.125
1057202.0 / 0.005
1057202.0 / 0.13
1057202.0 / 0.06
1057202.0 / 0.01
1057549.0 / 0.1
1057549.0 / 0.01
1057549.0 / 0.01
1057549.0 / 0.0049
1057549.0 / 0.03
約定履歴が取得できました。データとしては下記情報が取得できるのでうまく活用しましょう。
id, side, price, size, exec_date, buy_child_order_acceptance_id, sell_child_order_acceptance_id
Tickerの取得
Public APIでは一番利用すると思われるTickerを取得してみます。Tickerというのは株式などとは意味が違い、そのタイミングの価格や出来高などのデータ一式を指すようです。( 明確に説明しているサイトが確認できませんでした。間違っていたらご指摘お願いします)
import requests
import json
def main():
html = requests.get("https://api.bitflyer.com/v1/getticker?product_code=BTC_JPY")
ticker = json.loads( html.text)
print( ticker)
if __name__ == '__main__':
main()
{‘product_code’: ‘BTC_JPY’, ‘timestamp’: ‘2019-09-02T15:14:11.617’, ‘tick_id’: 3451408, ‘best_bid’: 1051152.0, ‘best_ask’: 1052535.0, ‘best_bid_size’: 0.01, ‘best_ask_size’: 0.09, ‘total_bid_depth’: 964.34095417, ‘total_ask_depth’: 2025.03895327, ‘ltp’: 1052017.0, ‘volume’: 84969.5821243, ‘volume_by_product’: 3284.57061196}

Tickerが取得できたね。この情報を蓄えていけばよく見るチャートなどが描けるようになるよ。

自分なりに情報付加したり分析出来たりできるんですね。

そうだね。データの蓄積/保存する方法については次回紹介するよ。
まとめ
今回は目指せ自動売買シリーズの第三弾として、bitFlyer Lightning Public API から約定履歴取得とTickerを取得してみました。特にTickerはその時の価格だったり出来高だったりの情報が取得できるので非常に重要です。この情報を活用して自動売買システムを作っていきましょう。
ご覧いただきありがとうございました。
次回は取得した情報の保存方法についてご紹介していきます。
コメント