メインコンテンツへ移動
AIチュートリアル

クロス取引所アービトラージボットの設定と使い方

READMEで紹介されているクロス取引所アービトラージボットについて学び、依存関係のインストール、対応取引所への接続、スプレッドルールの設定、コンソール出力の解釈、取引の確認、一般的な運用リスクの軽減を行います。

クロス取引所アービトラージボットの設定と使い方

クロス取引所アービトラージボットの機能

Cross Exchange Arbitrage Botは、暗号資産取引所間の価格差を特定するためのWindowsデスクトップツールとして紹介されています。READMEによると、Binance、OKX、Bybit、Kraken、Gate、および分散型取引所をリアルタイムで監視します。

同じ資産が異なる価格で取引されている場合、ボットはテイカー手数料、出金コスト、予想スリッページを差し引いて、その価格差がなお利益を生むかを推定します。スプレッドが設定したしきい値を超えると、安い取引所で買い、高い取引所で同時に売ることを試みます。

このプロジェクトは、READMEによって独立検証されていない取引および収益性に関する主張をしています。ダウンロードしたファイルを慎重に確認し、少額でテストを行い、失っても困らない資金だけを使用してください。

主な機能

  • 取引所間スキャン:対応する中央集権型取引所とDEXを監視し、価格差を探します。
  • 同時執行:機会が生じた際に資産を送金するのではなく、買い注文と売り注文を同時に送信することを試みます。
  • 手数料を考慮したフィルタリング:純スプレッドの計算時に、テイカー手数料、スリッページ、出金コストを考慮します。
  • 三角裁定モード:1つの取引所内で、BTCからアルトコイン、次にUSDT、そしてBTCへ戻るような3市場の循環経路を探します。
  • 資金調達率の監視:無期限市場における資金調達率の差を追跡します。
  • ローカルAPI設定:READMEでは、取引所のキーはローカル設定に保存し、出金権限なしで取引権限のみを付与すべきだと説明されています。
  • セッション記録:スプレッド、拒否された機会、約定をarb.csvに書き込みます。

取引モデルを理解する

取引を開始する前に、クロス取引所アービトラージでは両方の取引所に残高が必要です。たとえば、資産を買うためのクォート通貨をBinanceに、その資産自体を売るためにBybitに保有しておく必要があります。この事前配置により、ブロックチェーン送金を待つ必要がなくなりますが、在庫リスクと取引所のカストディリスクが生じます。

表示されたスプレッドは、利益が出る取引と同じではありません。READMEでは、Binanceで2.841ドル、Bybitで2.849ドルと表示される例が示されています。表示上の差は約0.28%ですが、手数料と推定スリッページにより、予想純スプレッドは0.15%に低下します。

[15:22:09] SPREAD ALT9: Binance $2.841 vs Bybit $2.849 (+0.28%)
[15:22:09] FEES   Taker x2: 0.10%   Slippage est: 0.03% | Net: +0.15%
[15:22:09] PLAN   Buy 0.35 BTC worth on Binance | Sell same on Bybit

READMEでは、総スプレッドがコスト控除後に消失するため、多くの機会は拒否すべきだと強調されています。したがって、拒否はスキャナーの動作として想定される処理です。

インストールとセットアップ

1. パッケージをダウンロードして確認する

プロジェクトのダウンロードページを使用し、C:\Bots\Cross-Arbのような専用ディレクトリにパッケージを展開します。

セットアップではダウンロードした実行ファイルを実行しますが、READMEにはチェックサムやソースからのビルドによる検証手順が記載されていません。そのため、開く前にアーカイブと実行ファイルをスキャンしてください。ダウンロード元を確認し、利用可能な場合はファイルの署名を確認したうえで、まず隔離された環境でテストすることを検討してください。

2. 依存関係をインストールする

PowerShellを開き、展開したディレクトリに移動して、READMEに記載された依存関係のインストールコマンドを実行します。この手順には、システム上でnpmが利用できることが必要です。

cd C:\Bots\Cross-Arb
npm install

3. 制限付きの取引所APIキーを作成する

各取引所の公式アカウントダッシュボードから、個別のAPI認証情報を作成します。取引に必要な権限だけを有効にしてください。出金は有効にしないでください。その後、提供されているキー追加コマンドで認証情報を登録します。

.\carb.exe keys add binance --trade-only
.\carb.exe keys add bybit --trade-only

インストールしたパッケージが対応している取引所に限り、記載されたパターンを繰り返してください。最終的な権限は、各取引所のダッシュボードで直接確認します。出金権限のないキーによりリスクの一部は軽減されますが、取引権限のあるキーは、侵害された場合や設定を誤った場合に有害な注文を出す可能性があります。

4. スキャン上限を設定する

次のコマンドは、Binance、Bybit、OKXを選択し、最小純スプレッドを0.15%に設定し、各レッグを350ドルまでに制限します。

.\carb.exe config --min-net-spread 0.15 --max-leg 350 --exchanges binance,bybit,okx

手数料、流動性、口座残高、リスク許容度を踏まえて値を選択してください。低すぎるしきい値では、レイテンシーや予期しないスリッページによって消失する機会を取り込む可能性があります。

5. ボットを起動する

.\carb.exe start

最初のセッションは注意深く監視してください。取引所、シンボル、注文サイズ、手数料の前提、口座残高が意図した設定と一致していることを確認します。

config.jsonでルールを設定する

READMEには、config.jsonの例も記載されています。

{
  "exchanges": ["binance", "bybit", "okx"],
  "min_net_spread_pct": 0.15,
  "max_leg_usd": 350,
  "daily_profit_target_usd": 100,
  "fee_math": {
    "taker_both_sides": true,
    "slippage_buffer_pct": 0.05,
    "reject_below_net": true
  },
  "triangular_mode": false,
  "funding_monitor": true
}
  • exchanges: スキャン対象に含める取引所を定義します。
  • min_net_spread_pct: モデル化したコスト控除後の最低スプレッドを設定します。
  • max_leg_usd: 各取引レッグに設定できる値の上限を制限します。
  • daily_profit_target_usd: 設定で使用する1日の目標値を記録します。
  • taker_both_sides: 手数料計算に両側のテイカーコストを含めます。
  • slippage_buffer_pct: 観測価格と約定価格の差に備えるバッファを追加します。
  • reject_below_net: ネットスプレッド要件を下回る機会を拒否します。
  • triangular_mode: 単一取引所内の三角スキャンを有効または無効にします。
  • funding_monitor: 無期限契約の資金調達率の差の監視を有効にします。

例の値がすべての取引所や市場に適しているとは限りません。各取引所が公開している現在の手数料体系と最小注文要件を確認し、設定と比較してください。

コンソール出力を読む

コンソールのラベルにより、機会のライフサイクルを追跡できます。

  • SCAN: 監視中のペア数と取引所数を報告します。
  • SPREAD: 2つの価格と総差分率を表示します。
  • FEES: モデル化した手数料、スリッページ、算出後のネットスプレッドを表示します。
  • PLAN: 予定している買いレッグと売りレッグを説明します。
  • EXEC: 送信した各注文の約定価格を報告します。
  • DONE: アプリケーションが表示する実現率と金額を報告します。
[15:22:11] EXEC   Leg 1: BUY filled @ 2.8412 (Binance)
[15:22:11] EXEC   Leg 2: SELL filled @ 2.8487 (Bybit)
[15:22:11] DONE   +0.14% realized — $4.90 on this leg

予定収益と実現収益は異なる場合があります。結果を確認する際は、アプリケーションの概要だけに頼らず、実際の取引所の約定、手数料、口座残高の変動を使用してください。

すべての取引を確認する

  1. 両方の約定IDを記録する。 ボットが出力した識別子を各取引所の注文履歴と照合します。
  2. 約定数量を確認する。 買いレッグと売りレッグが予定した数量で約定したことを確認します。
  3. 実際の価格と手数料を確認する。 取引所が報告した約定価格と手数料を使って結果を再計算します。
  4. arb.csvを確認する。 セッションログを取引所の公式記録と比較します。
  5. 拒否されたスプレッドを調べる。 設定した手数料およびスリッページフィルターが、ネットしきい値を下回る機会を除外していることを確認します。
  6. API権限を再確認する。 すべてのキーで出金権限が無効のままであることを確認します。

高度なヒントとリスク管理

取引サイズを控えめにする

大きな注文は複数の板の価格帯を消費し、より大きなスリッページが発生する可能性があります。READMEでは、小さなサイズを使用するよう明示的に推奨しており、実際に利用できるスプレッド容量には限りがあると説明しています。まず低いmax_leg_usd値から始め、変更を検討する前に、推定スリッページと実際の約定を比較してください。

両方の取引所に在庫を維持する

同時執行には、両側で資産を利用できる必要があります。ある取引所で繰り返し買い、別の取引所で売ると口座間の残高が偏る可能性があるため、各取引後の残高のずれを監視してください。READMEでは、この在庫要件をボットでは解消できないリスクとして挙げています。

現実的なネットスプレッド下限を使用する

最低しきい値は、遅延や流動性の変動に見合う余裕をもって、モデル化したコストを上回る必要があります。注文が約定するまでは、手数料モデルはあくまで推定値です。テイカー手数料率、アカウントの手数料ティア、スリッページの前提を定期的に見直してください。

三角モードと資金調達モードを個別に評価する

三角裁定と資金調達率の監視は、2取引所間の現物スプレッドとは異なる市場構造を使用します。3つの交換レッグと累積手数料を理解していない場合は、triangular_modeを無効のままにしてください。資金調達率の差は、保証された収益ではなく監視情報として扱ってください。

API認証情報を保護する

  • 既存の認証情報を再利用せず、このアプリケーション専用の一意のキーを作成する。
  • 出金権限を決して付与しない。
  • 環境に適している場合は、取引所が対応するIP制限を適用する。
  • ローカル設定ファイルを、暗号化されていない共有フォルダーやバックアップに置かない。
  • マシンまたはダウンロードしたパッケージが侵害された可能性がある場合は、直ちにキーを無効化する。

まとめ

Cross Exchange Arbitrage BotのREADMEは、複数の取引所をスキャンし、手数料とスリッページの推定値でスプレッドを絞り込み、ペア取引を送信できるツールについて説明しています。特に有用な設定は、最低ネットスプレッド、レッグごとの最大サイズ、取引所の選択、手数料モデル、そしてローカルで取引専用に設定したAPIです。

裁定取引にリスクがないわけではありません。部分約定、価格変動、取引所の障害、在庫エクスポージャー、誤った手数料の前提、API認証情報の侵害は、いずれも損失につながる可能性があります。実行前にソフトウェアを確認し、控えめに始め、報告されたすべての結果を取引所自身の記録と照合してください。