Bybit (バイビット) の公式APIはない? | API取得方法や自動売買botの作り方まで徹底解説

編集:
Kasobu 編集部 (Kasobu editorial team)
1分で理解する要約
  • BybitではAPIを設定し、自動取引ができる
  • 外部モジュールなどのインストールなどでAPIを取り入れられる
  • 強力なセキュリティなどの安全確保により、多くの人が安心して使える

Bybitで自動取引システムを使えるようになりたいが、やり方が分からないと悩んでいませんか。APIというシステムを使えば、何もしなくても自動で注文できる仕組みを確立できます。今回はBybitで自動注文ができるようになりたい方のために、APIの接続方法や仕組みなどを解説します。必要なコードの記述もありますので、この記事を参考にしながら設定を進めていただければ幸いです。

先に口コミ評価をチェックする方はこちら

Bybit (バイビット) とはどんな仮想通貨取引所?

Bybitの基本情報

取引所名

Bybit Fintech Limited

設立

2018年

代表者

Ben Zhou

本社

シンガポール

取扱通貨

ビットコイン、イーサリアム、リップル、イオス、テザー

取引形式

レバレッジのみ

最大レバレッジ

100倍

追加証拠金

なし

取引手数料

Maker: -0.025%、Taker: 0.075%

日本円対応

×

スマートフォン対応

日本語対応

サポート

お問い合わせフォーム

法人口座

×

Bybitは2018年にスタートした仮想通貨取引所ですが、レバレッジ倍数の大きさや対応言語の多さなどで世界中から支持を受けています。開設1年で24時間取引量が20億ドル相当に達するなど、急成長企業としても要注目です。

Bybit (バイビット) のAPI設定方法

Bybit HTTP APIを採り入れれば、忙しいときでも自動取引システムに投資を任せられます。ユーザーが直接作業せずして利益を上げられるかもしれません。接続にはプログラミングコードなどが必要ですが、知識が深くない方でも設定可能なのでぜひ参考にしてください。

外部モジュールのインストール

自動注文用のAPIをBybitに適用するなら、以下の3つが必要です。

  • requests
  • pandas
  • websocket-client

「pip install requests pandas websocket-client」というコードを準備すればインストールに踏み出せます。

上の画像のページへ向かい、右上のRawボタンを押せばモジュール本体のダウンロードスタートです。使っているPythonファイルと同一のフォルダへ向かい、pybybit.pyを添えましょう。画像は以下のリンクよりアクセス可能です。

使い方

以下はpybybitが動くかをテストするためのサンプルコードで、「view raw」からダウンロードできます。テスト用の手順と対応コードは以下のとおりです。

  1. 取引完了後で決済前の注文を表示
  2. 買い板を取得して示す
  3. 目当ての通貨を、そのときの相場から100ドル分引いて指値注文
  4. 5秒後に注文キャンセル
import json
import time

# 1.クラスをインポートする
from pybybit import Bybit

if __name__ == '__main__':
    # 2.インスタンスを生成、パラメーターを設定する
    bybit = Bybit(api_key='xxxx',
                  secret='yyyy', symbol='BTCUSD', ws=True, test=True)

    # 3.各種メソッドを使用する

    # ポジションを取得
    position = bybit.get_position()
    print('Position ----------------------------------------------------------')
    print(json.dumps(position, indent=2))

    # 板情報を取得
    orderbook_buy = bybit.get_orderbook(side='Buy')
    print('Orderbook (Buy) ---------------------------------------------------')
    print(orderbook_buy.head(5))
    best_buy = float(orderbook_buy.iloc[0]['price'])

    # オーダーを送信
    print('Sending Order... --------------------------------------------------')
    order_resp = bybit.place_active_order(
        side='Buy', order_type='Limit', qty=100, price=best_buy - 100, time_in_force='PostOnly')
    print(json.dumps(order_resp, indent=2))
    order_id = order_resp['result']['order_id'] if order_resp['result'] else None

    time.sleep(5.0)

    # オーダーをキャンセル
    print('Cancel Order... ---------------------------------------------------')
    cancel_resp = bybit.cancel_active_order(order_id=order_id)
    print(json.dumps(cancel_resp, indent=2))

パラメーターの内容

インスタンス生成時に出てくる5つのパラメーターを確かめましょう。

  • api_key : APIキー
  • secret : 秘密鍵
  • symbol : 売買できる銘柄
  • ws : WebSocketへの接続。デフォルトは「接続する」
  • test : testnet設定。デフォルトは「使用しない」

HTTP API用メソッドの詳細

Bybitの公式ドキュメントを見ながら対応しましょう。メソッド名が公式と違いますが、上から順にコードを並べてあるので、手を加える必要はありません。ただしHTTP APIの性質上レート制限に気をつけましょう。

#
# Http Apis
#

place_active_order(side=None, symbol=None, order_type=None,
                      qty=None, price=None,
                      time_in_force='GoodTillCancel', take_profit=None,
                      stop_loss=None, order_link_id=None)
   """
   オーダーを送信
   """

get_active_order(order_id=None, order_link_id=None, symbol=None,
                    sort=None, order=None, page=None, limit=None,
                    order_status=None)
   """
   オーダーを取得
   """

cancel_active_order(order_id=None)
   """
   オーダーをキャンセル
   """

place_conditional_order(side=None, symbol=None, order_type=None,
                           qty=None, price=None, base_price=None,
                           stop_px=None, time_in_force='GoodTillCancel',
                           close_on_trigger=None, reduce_only=None,
                           order_link_id=None)
   """
   条件付きオーダーを送信
   """

get_conditional_order(stop_order_id=None, order_link_id=None,
                         symbol=None, sort=None, order=None, page=None,
                         limit=None)
   """
   条件付きオーダーを取得
   """

cancel_conditional_order(order_id=None)
   """
   条件付きオーダーをキャンセル
   """

get_leverage()
   """
   レバレッジを取得
   """

change_leverage(symbol=None, leverage=None)
   """
   レバレッジを変更
   """

get_position_http()
   """
   ポジションを取得(HTTP版)
   """

change_position_margin(symbol=None, margin=None)
   """
   ポジションマージンを変更
   """

get_prev_funding_rate(symbol=None)
   """
   ファンディングレートを取得
   """

get_prev_funding(symbol=None)
   """
   アカウントのファンディングレートを取得
   """

get_predicted_funding(symbol=None)
   """
   予測資金調達レートと資金調達手数料を取得
   """

get_my_execution(order_id=None)
   """
   アカウントの約定情報を取得
   """

#
# New Http Apis (developing)
#

symbols():
   """
   シンボル情報を取得
   """

kline(, symbol=None, interval=None, _from=None, limit=None):
   """
   ローソク足を取得 (developing)
   """

place_active_order_v2(, symbol=None, side=None, order_type=None,
                         qty=None, price=None,
                         time_in_force='GoodTillCancel',
                         order_link_id=None):
   """
   オーダーを送信 v2 (developing)
   """

cancel_active_order_v2(order_id=None):
   """
   オーダーをキャンセル v2 (developing)
   """

※ developingのAPIを使う場合、注文が機能しないなどの不調が出ることがあります。

エラーが出る場合

APIをBybitに接続しようとしても、エラーに阻まれて途方に暮れてしまう方がいるかもしれません。エラーコードのチェックと、冷静な対処を心がけることが重要です。エラー別の対応のしかたをまとめました。

「ret_code:10004 error sign!」

signatureが不完全だと上記のエラーコードが出ます。Bybox公式サイトのサンプル結果を参考にしながら、結果の一致をチェックしましょう。

「symbol」のあとに「leverage」がくるように、URLパラメーターがアルファベット順になっていなくてもエラーコードが返ってきます。項目をアルファベット順に入れ替えるなどの配慮も大切です。

「ret_code:10002 invalid request, please check your timestamp and recv_window param.」

プログラム実行とサーバーのそれぞれの環境で、タイムスタンプが離れすぎているとエラーが出ます。「recv_window」にてサーバーと送信タイムスタンプの初期時間差は「5000milisecond」ですが、エラーを解決するためにこのパラメーターを大きくすることも考えられます。

タイムスタンプがサーバー時間より前に来ていれば、recv_windowを大きくすれば解決できますが、逆だと1000ミリ秒を超えた時点でrecv_windowをいじるだけではエラーを終わらせられません。動作を安定させるために以下のように設定を変えることも考えましょう。

timestamp = int(time.time() * 1000) - 100000
url = self.api_endpoint + ‘/position/list’
param = {
‘api_key’:self.token_id,
‘recv_window’:500000,
‘timestamp’:timestamp
}

Bybit (バイビット) のAPIの管理方法

BybitではAPIキーの新規追加や管理を必要に応じて行えます。公式サイトの情報などを参考にしながら、正しい手順で進めることが大切です。APIキーの新規追加や管理のプロセスを解説します。

新規追加

ホーム画面のアカウントメニューから「アカウント&セキュリティ」へ進みます。

「API管理」タブより新しいキーを作成可能です。

ユーザー名とIPアドレス、アクティブな注文とポジションのどちらでキー認可を行うかを決めたあと、Google二段階認証コードを入力し手続きを確定させましょう。

API管理

APIキーリストに作成済みの分が現れ、削除も可能です。複数のキー作成もできるので、状況に応じて使い分けたり、持て余しているようなら削除ボタンを押したりできます。 作成時にIPアドレスへの接続を行わなかった場合、キーの有効期限は3ヶ月なので注意しましょう。

Bybit (バイビット) のAPIは安全なのか?

BybitでAPIを作っても、安全に使えるか分からないという方も多いでしょう。Bybitはセキュリティに優れた取引所なので、Pythonなどを使った自動投資システムが悪用を受ける心配もありません。

安全を確保する仕組み

Bybitは取引形態をレバレッジに限定し、ICOやIEOなどの新しいトークンを使ったイベントにも関わらないなど、事業範囲の限定などでユーザーの安全確保に力を入れています。ユーザーから預かった資産もコールドウォレットを使っています。インターネットの範囲外で資産を管理しているので、ハッキングを受けても盗まれるリスクを減らせるのがポイントです。

Bybitでは1日の出金制限などの対策も行なっており、トラブルの可能性を最小限に抑える取り組みに定評があります。このように妥協のない安全確保が、世界中の投資者が安心してBybitを使える環境につながっており、自動取引用のAPIも安心して使えるのでしょう。

公平な環境

Bybitは、仮想通貨の市場価格の影響を受けすぎないように、公平な環境を保つよう取り組んでいます。同じ仮想通貨の種類でも、取引所によって価格が異なり、ときには特定の場所に限って価格が異様に上がってしまう可能性も考えられるでしょう。

しかしBybitは他社のスポット取引価格を参考にしながら、平均値で1枚あたりのレートを決めています。相場に合わせたフェアな価格を提供することで、世界中の投資者が安心してデリバティブ取引に参加できるでしょう。

Bybitが参考にしている取引所で万が一異常な高騰や暴落があったときは一時的に参照を止めています。このような取り組みにより、投資者は納得のいく相場で取引を進めやすいといえます。

セキュリティへの投資強化

Bybitはセキュリティに優れた取引所として有名ですが、安全面に対する投資を積極的に行うことで、トラブル回避に力を注いでいます。

セキュリティ強化のためにITビジネスへの投資比率を高めており、ハッカーから取引所を守る取り組みを徹底しているのがBybitの特徴です。これまで国内外で多くの仮想通貨取引所がハッキングなどの被害を受けており、セキュリティの強化は世界共通の課題でしょう。

Bybitはユーザーをトラブルに巻き込ませないために、セキュリティへの投資や取り組みを惜しみません。仮想通貨業界において15%以上あれば高水準とされるセキュリティレベルを、Bybitは20%レベルに持ってきており、今後もさらなる強化を視野に入れています。

レバレッジ取引を始めたい人が安心して使える取引所として、Bybitはお手本のような存在を目指しているのでしょう。

Bybit (バイビット) のAPI まとめ

Bybitでは外部モジュールのインストールでAPIをつなげることで、自動取引システムをスタートさせられます。仕事などで時間がない間でも取引を進められるので、利益のチャンスを広げられます。

セキュリティへの取り組みが強いのがBybitの特徴なので、APIの悪用おけるリスクは最小限に抑えられるでしょう。今回の記事でセキュリティ面への安心感をもったら、Bybitに自動取引システムをつなげてはいかがでしょうか。

Important

Bybit (バイビット) が一概に悪徳業者と断定はできませんが、日本人にも人気の海外業者の中には詐欺まがいの行為を行なっている業者が紛れていることも事実です。また暗号資産(仮想通貨)交換業として登録していない取引所が日本でサービスを行うことは法律で禁じられています。海外暗号資産(仮想通貨)取引所の多くは、日本国内での法律に違反していることが多いため、被害に遭って大きな損害を受けてしまう恐れもあります。当サイトとしては万が一のリスクに備え、安全な国内業者を利用されることをおすすめいたします。

関連記事