【python/bitFlyer】目指せ仮想通貨自動売買システム開発!Public API その2 ticker/executions

python
スポンサーリンク

このシリーズではbitFlyer Lightning APIを使用することで、常に情報収集/テクニカル分析し、 ここだと思えるタイミングで自動売買を行えるシステム開発を目指します。

今回は、bitFlyer Lightning Public API を使用して情報収集をしてみようと思います。

-- 実行環境 --
Windows 10 64ビット版(1903)、python 3.7.4

-免責事項-
当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねます。当サイトの情報を利用する場合には、自己責任でご利用下さい。

API制限
HTTP API は、以下のとおり呼出回数を制限いたします。
Private API の呼出は 5 分間で 500 回を上限とします。上限に達すると呼出を一定時間ブロックします。また、ブロックの解除後も呼出の上限を一定時間引き下げます。同一 IP アドレスからの API の呼出は 5 分間で 500 回を上限とします。上限に達すると呼出を一定時間ブロックします。また、ブロックの解除後も呼出の上限を一定時間引き下げます。

0.1 以下の数量の注文は、すべての板の合計で 1 分間で 100 回を上限とします。上限に達するとその後 1 時間は 1 分間で 10 回まで注文を制限します。システムに負荷をかける目的で注文を繰り返していると当社が判断した場合は、API の使用を制限することがあります。ご了承ください。

bitFlyer API API Documentation より抜粋
スポンサーリンク

bitFlyer Lightning Public API の使用

約定履歴の取得

分析やバックテストの基本である約定履歴を取得してみます。API Documentation を確認すると、マーケット一覧のリクエストは下記となっています。
GET /v1/getexecutions
GET /v1/executions

また、パラメーターを指定することでデータの絞り込みが可能です。

product_codeマーケット一覧で取得できるコードを指定。省略時はBTC_JPY
count取得件数を指定、省略時は100件
beforeIDを指定。指定IDより小さいIDを持つデータを取得。
IDは約定履歴毎に割り当てられる一意の連番
afterIDを指定。指定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はその時の価格だったり出来高だったりの情報が取得できるので非常に重要です。この情報を活用して自動売買システムを作っていきましょう。

ご覧いただきありがとうございました。
次回は取得した情報の保存方法についてご紹介していきます。

コメント

タイトルとURLをコピーしました