見出し画像

BybitのPython自動取引用ライブラリ - PyBybit 2.0

更新履歴

2021/4/22 v2.0.3 WebSocketの再接続性を向上、エンドポイントを最新化しました
2021/3/21 v2.0.2 インバース先物に対応、データストアを刷新(仕様変更)、解説をGitHubのWikiに移行しました
2021/2/16 v.2.0.1 エンドポイントを最新に更新しました
2020/5/7 v2.0 オーバーホールし大幅に機能をアップデートしました!
※前バージョンとの互換はありません
最新API、リニア契約(BTCUSDT)に対応
データストアクラスを実装
2019/6/3 v1.0 初期バージョンリリース

こんにちは、まちゅけん(@MtkN1BXt)です。
Pythonで簡単にBybit APIを叩けるライブラリを作ってみました。
こちらはいわゆる仮想通貨界隈の「botter」な人向けの記事です。
技術的な意味を理解できる方のみ読み進めてください。

✨後発プロジェクトの pybotters にてDiscordサーバーを開設しました

PyBybit用のチャンネルも用意してあるのでご利用ください!

2021/4/22 v2.0.3

・WebSocketの再接続性を向上しました
・エンドポイントのパラメーターを最新化しました
最新版アップデートコマンド

pip install -U git+https://github.com/MtkN1/pybybit.git

何ができるの?

・Bybit REST API への接続
・Bybit WebSocket API への接続
・API取得データを保管・利用できるデータストアクラス

もっと分かりやすく

フルマネージドを目指した自動取引ライブラリです
リニア契約(BTCUSDT)・先物契約対応、テスト環境(testnet)対応、WebSocket完備
汎用ライブラリの ccxt とは違い、Bybitが提供しているAPIを全て利用できます。
(注文送信・キャンセル、ポジション取得、残高参照、ファンディングレート取得、マーク価格取得...)
つまり、このライブラリをインストールすればBybitで自動取引する事が可能です。
使いにくい 公式APIサンプル とは違い、ライブラリ1つでリアルタイムデータ(WebSocket)の受信に対応してるのでマーケットメイキングbotのような高速取引も可能です。
さらに付属のデータストアクラスを利用すれば、板情報やオーダー、ポジションのデータなどを独自に加工する必要はありません。
板のベスト値を取得したり、アクティブオーダーの有無の確認を簡単に行うことができます。

動作環境

Python 3.7以降であれば動くはず

インストール方法

githubリポジトリにソースコードを公開しています。
https://github.com/MtkN1/pybybit
gitが入っていれば下記コマンドでpip installできます。

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

使い方

利用方法はGitHubのWikiに移行しました。
https://github.com/MtkN1/pybybit/wiki

画像1

公式APIドキュメント

本ライブラリはBybitのAPIを使いやすくしたライブラリです。
当然ですがBybitのAPI仕様をよく理解してから利用してください。
インバース無期限
https://bybit-exchange.github.io/docs/inverse
リニア(USDT)無期限
https://bybit-exchange.github.io/docs/linear
インバース先物
https://bybit-exchange.github.io/docs/inverse_futures

タイムスタンプエラーについて

{'ret_code': 10002, 'ret_msg': 'invalid request, please check your timestamp and recv_window param. req_timestamp: 1588825438280 server_timestamp: 1588825436908 recv_window: 5000', 'ext_code': '', 'ext_info': '', 'result': None, 'time_now': '1588825436.908361'}

プライベート用REST API でこのようなエラーが発生する事があります。
これは「無効なリクエストです。タイムスタンプと有効時間を確認してください」と言っています。
コンピューターのローカル時刻の誤差がBybitのサーバー時刻と比べて以下の範囲に収まっている必要があります。(公式ドキュメント参照)
サーバー時刻-5秒 ≦ ローカル時刻 < サーバー時刻+1秒
つまり1秒以上未来にずれていたらアウトでエラーになって返ってきます。
お使いのコンピューターの時刻を調整する方法をググってみてください。

アーカイブ

v2.0.1以前のサンプルコード
https://gist.github.com/MtkN1/6fbdf8e6629e52b36bb3b72ecaea2ebc/raw/82790ce8ff74322f1e50aa2439beb36f601463fa/try_pybybit.py

v1.0 のソースとサンプルコード
https://gist.github.com/MtkN1/50923f4366c3390a1cf4310f77ea7440
https://gist.github.com/MtkN1/9eb91cbf306f10e2396177eaebfdf29f

おわり

ライブラリの説明は以上です!
質問などはTwitterのDMなどからお気軽にどうぞ🙂
不具合を発見した場合GitHubのイシューを上げて頂けるとありがたいです。
もしこのライブラリで儲かって良い気分になった方は、noteのサポートで投げて頂けると励みになります🙏
(サポート投げて頂いた方々、ありがとうございます!🙏🙏)

Bot関連の情報を発信しているのでフォローよろしくお願いします!


この記事が気に入ったらサポートをしてみませんか?