Binanceが日本人追放になってしまい、botが完全に使えなくなりました。結局、Bybitを選んだのですが、全て作り直さないといけない。Bybitでビットコインの売買をするプログラムを自分用メモとして残しておこうと思います。
BybitのAPI
公式のドキュメント
APIのドキュメントは公式サイトから以下のとおり
ドキュメントを見ながらゼロから作ってもよいのですが、pythonの場合は有志の方が取引所に対応したライブラリを作成しているケースが多いです。それを探してみます。
有志のライブラリ
外国人〜日本人に至るまで、有志の方がライブラリを何名か作成していますが、放置気味も多いです。バージョンが古くて動かないケースがあるので、日本語優先というよりは、最終更新日優先で選んだほうが良いです。
pybitがおすすめか
バージョン5に対応しているということと、更新頻度も高いので、こちらのライブラリがおすすめです。
インストールもpipコマンドで簡単です。
1 |
pip install pybit |
ちなみにソースコードや使い方はGithubに公開しています(英語のみ)
APIキーとシークレットキーの発行
Bybitに登録して本人確認や2FA(2段階認証)終了後、以下のページからAPIキーを発行します。
https://www.bybit.com/future-activity/ja-JP/developerホワイトリスト登録
APIを発行するだけでは動かなくて、そのまま動かすとこんなエラーがでます。エラーコード10029番
どうやら通貨ペアごとにホワイトリスト登録しないとAPIを使って売買できません。ホワイトリスト登録は、パソコンから管理画面にログインしてAPI設定の箇所からできます。
何もチェックが入っていないはずなので、自動売買する予定の通貨ペアにチェックを入れておきます。
サンプルソース
pybit使えば、相当簡単でした。売買のみのルーチンです。動かすと現物で50ドル分を買って売り、先物で0.001btc分、売買します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
from pybit.unified_trading import HTTP # # Main関数 # if __name__ == "__main__": #APIキーとシークレットキーの設定 session = HTTP( api_key='xxxxxx', api_secret='xxxxx') #現物売買(lot計算は買いの時はドル、売りの時はBTC計算) r = session.place_order(category="spot",symbol="BTCUSDT",side="Buy",orderType="Market",qty=50) print(r) r = session.place_order(category="spot",symbol="BTCUSDT",side="Sell",orderType="Market",qty=0.002) print(r) #USDT無期限売買(lot計算はBTC) r = session.place_order(category="linear",symbol="BTCUSDT",side="Sell",orderType="Market",qty=0.001) print(r) r = session.place_order(category="linear",symbol="BTCUSDT",side="Buy",orderType="Market",qty=0.001) print(r) |
現物のロット計算
現物売買は買う時はUSDT計算、売りの時はBTC計算なので内部で計算しないといけません。ロット管理が難しいです。
矢野テックの使い方
僕の場合はTradingViewを使って、webhook経由で組み合わせて使っているので、トレードアルゴリズムはそちらで書いて、売買のみ取引所のAPIを使ってます。詳細はこちらの記事をご覧ください。
ご質問はコメント欄からお願いします