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
公式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関連の情報を発信しているのでフォローよろしくお願いします!