pybotters#

pybotters は仮想通貨取引所向けの 非同期 HTTP / WebSocket API クライアント です。

様々な取引所の Private API 認証に対応しており、素早くトレード bot を構築することができます。 また WebSocketDataStore の機能を使うことで、リアルタイムデータを簡単に利用できます。

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 の利用方法を学習しましょう。

Indices and tables#