Thanks to visit codestin.com
Credit goes to github.com

Skip to content

camaocande/pybotters

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[ALPHA] pybotters

An advanced api client for python botters.

📌 Description

pybotters仮想通貨botter向けのPythonライブラリです。

複数取引所に対応した非同期APIクライアントであり、bot開発により素晴らしいDXを提供します。

👩‍💻👨‍💻 Work In Progress

pybotters は現在 ** 開発中 ** です。

main ブランチのバージョンは APLHAリリース です。 機能は少なく、テストは充分ではないため実験的な利用のみを推奨します。

BETAリリースの開発状況については こちら を参照してください。

🚀 Features

  • ✨ HTTP / WebSocket Client
    • 複数取引所のプライベートAPIを自動認証
    • aiohttpライブラリを基盤とした非同期通信
    • WebSocketの自動再接続、自動ハートビート
  • ✨ DataStore
    • WebSocket用の自動データ保管クラス
    • 参照渡しによる高速なデータ参照
    • 取引所別データモデルの実装
  • ✨ Developer Experience
    • asyncioライブラリを利用した非同期プログラミング
    • typingモジュールによる型ヒントのサポート

🏦 Exchanges

Name API auth DataStore
Bybit
BTCMEX
Binance WIP
bitFlyer WIP
GMO Coin WIP
Liquid WIP
bitbank WIP
FTX WIP
BitMEX WIP

🐍 Requires

Python 3.7+

🛠 Installation

pip install git+https://github.com/MtkN1/pybotters

🔰 Usage

Single exchange

import asyncio
import pybotters

apis = {
    'bybit': ['BYBIT_API_KEY', 'BYBIT_API_SECRET'],
}

async def main():
    async with pybotters.Client(apis=apis, base_url='https://api.bybit.com') as client:
        # REST API
        resp = await client.get('/v2/private/position/list', params={'symbol': 'BTCUSD'})
        data = await resp.json()
        print(data)

        # WebSocket API (with print handler)
        ws = await client.ws_connect(
            url='wss://stream.bybit.com/realtime',
            send_json={'op': 'subscribe', 'args': ['trade.BTCUSD', 'order', 'position']},
            hdlr_json=lambda msg, ws: print(msg),
        )
        await ws # this await is wait forever (for usage)

try:
    asyncio.run(main())
except KeyboardInterrupt:
    pass

Multiple exchanges

apis = {
    'bybit': ['BYBIT_API_KEY', 'BYBIT_API_SECRET'],
    'btcmex': ['BTCMEX_API_KEY', 'BTCMEX_API_SECRET'],
    'binance': ['BINANCE_API_KEY', 'BINANCE_API_SECRET'],
}

async def main():
    async with pybotters.Client(apis=apis) as client:
        await client.post('https://api.bybit.com/v2/private/order/create', data={'symbol': 'BTCUSD', ...: ...})
        ...
        await client.post('https://www.btcmex.com/api/v1/order', data={'symbol': 'XBTUSD', ...: ...})
        ...
        await client.post('https://dapi.binance.com/dapi/v1/order', data={'symbol': 'BTCUSD_PERP', ...: ...})
        ...

Wiki

詳しい利用方法は👉Wikiページへ

🗽 License

MIT

💖 Author

https://twitter.com/MtkN1XBt

About

An advanced api client for python botters.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%