pybotters#
pybotters は仮想通貨取引所向けの 非同期 HTTP / WebSocket API クライアント です。
様々な取引所の Private API 認証に対応しており、素早くトレード bot を構築することができます。 また WebSocket と DataStore の機能を使うことで、リアルタイムデータを簡単に利用できます。
Installation#
pybotters は PyPI または GitHub からインストールできます。
From PyPI (リリースバージョン):
$ pip install pybotters
From GitHub (開発バージョン):
$ pip install git+https://github.com/pybotters/pybotters.git
Quickstart#
bitFlyer の Private HTTP API と WebSocket API を利用する例です。
HTTP API (Get Balance):
import asyncio
import pybotters
async def main():
apis = {"bitflyer": ["BITFLYER_API_KEY", "BITFLYER_API_SECRET"]}
async with pybotters.Client(
apis=apis, base_url="https://api.bitflyer.com"
) as client:
r = await client.fetch("GET", "/v1/me/getbalance")
print(r.data)
if __name__ == "__main__":
asyncio.run(main())
注釈
pybotters.Client
に API 認証情報 apis
を入力することで、HTTP リクエストの 自動認証機能 が有効になります。
WebSocket API (Ticker channel):
import asyncio
import pybotters
async def main():
async with pybotters.Client() as client:
wsqueue = pybotters.WebSocketQueue()
await client.ws_connect(
"wss://ws.lightstream.bitflyer.com/json-rpc",
send_json={
"method": "subscribe",
"params": {"channel": "lightning_ticker_BTC_JPY"},
"id": 1,
},
hdlr_json=wsqueue.onmessage,
)
async for msg in wsqueue: # Ctrl+C to break
print(msg)
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
pass
注釈
pybotters.Client.ws_connect()
により、自動再接続機構を備えた WebSocket コネクションが作成されます。
警告
WebSocket メッセージの受信は永続的に実行されます。 プログラムを終了するには Ctrl+C
を入力します。
What's next#
まずは User Guide ページで pybotters の利用方法を学習しましょう。
💖 Sponsor#
Please sponsor me!
このプロジェクトはオープンソースで運営されています。 pybotters のソフトウェアとコミュニティの継続していく為に、是非 GitHub スポンサーによるサポートをお願いします 🙏
GitHub スポンサーになっていただくと、開発者がより多くの時間とリソースをプロジェクトに費やすことができ、新しい機能の開発やバグの修正、コミュニティのサポートなど、より良いプロダクトを提供できるようになります。
GitHub Sponsors: