トライアングルアービトラージ完全実践ガイド:CEX/DEX横断で取りこぼさない裁定の組み立て方

取引手法

本稿では、暗号資産の「トライアングルアービトラージ(三角裁定)」を、実務フローと数式、具体的な約定設計まで突っ込んで解説します。三角裁定は、3つの通貨ペアの価格関係にゆがみが生じた瞬間に、同時に3取引を組み合わせて理論価格へ戻る力を収益化する手法です。株やFXの経験がない方でも、この記事の手順に沿って検証すれば、裁定が“どの程度の条件で安全に回るのか”の感覚が掴めます。

スポンサーリンク
【DMM FX】入金

1. 三角裁定の骨子と価格式

代表例は BTC/USDTETH/BTCETH/USDT の3ペアです。理論上、ETH/USDT(ETH/BTC) × (BTC/USDT) に一致します。市場実勢では手数料やスリッページ、最良気配の板厚、約定遅延により微小な乖離が常に生まれます。

裁定の基本条件は次の不等式です:

Edge = 価格差率 − 総コスト率 − リスクバッファ > 0

ここで総コスト率は、取引手数料(メイカー/テイカー)、資金調達コスト(パーペチュアルをヘッジに使う場合)、スリッページの期待値、ガス代(DEXを用いる場合)などの合算です。リスクバッファは、同時約定失敗や一部約定・価格ジャンプに対する余白です。

2. 実行形態の3タイプ

2-1. 単一CEX内での三角裁定

同一取引所内の3ペアで同時成行(または指値クロス)を使う形です。資金移動不要・約定遅延が最小化でき、最もシンプルです。留意点はテイカーフィーとAPIのレート制限、板厚です。板の厚いペア(BTC/USDT、ETH/USDT)は良いですが、ETH/BTC は板が薄く、スリッページが乗りやすいです。

2-2. 複数CEXをまたぐ三角裁定

価格ゆがみが大きくなる一方で、資金を複数所に分散して常時待機させる必要があります。資金移動(入出金)を伴うアービトラージは基本的に遅すぎるため、同時約定のみで完結させ、残高のリバランスは相場が落ち着いたタイミングで行うのが定石です。

2-3. CEX×DEX混成(オンチェーンを絡める)

DEXを1レッグに組み込むと機会が増えます。代わりにガス代、ブロックタイム、MEV(サンドイッチ)リスクを背負います。ルーター(例:複数プール横断)を使うと見かけ上の価格は良化しますが、オンチェーンの込み具合で実行価格が悪化することがあります。スリッページ許容を厳しめに設定し、deadline は短く、private txやプロテクトRPCの活用も選択肢です。

3. コスト分解と“勝てる閾値”

勝率よりもまず エッジの下限 を定量化します。単一CEXの例で、各レッグのテイカーフィーを0.04%とすると、手数料だけで往復0.12%です。スリッページ期待値を0.03%、失敗時リカバリー損失の期待値を0.02%織り込めば、最低でも 0.17% 以上の価格差が必要です。実運用では余裕を見て 0.25%〜0.35% をトリガーにするのが現実的です。

4. 数値例:ETH三角の即時実行

ある瞬間、最良気配が次のとおりだったとします:

BTC/USDT = 60,000.00(買気配) / 60,000.50(売気配)
ETH/BTC = 0.055000(買) / 0.055010(売)
ETH/USDT = 3,300.20(買) / 3,301.50(売)

合成理論価格は (ETH/BTC 売) × (BTC/USDT 売) = 0.055010 × 60,000.50 ≒ 3,300.83
現物の売気配は 3,301.50 なので、ETH/USDT 側が約 +0.020% 割高です。

実行プラン:
(1) ETH/USDT を売り(USDTを受け取り)、
(2) 受け取った USDT で BTC/USDT を買い、
(3) 購入した BTC を ETH/BTC で売って ETH に戻す。

想定サイズ 10 ETH、各レッグのテイカーフィー 0.04%、スリッページ 0.03% を見込むと、総コストは概ね 0.21%。今回のエッジは 0.20% 程度で僅少、見送りが妥当です。実際は“やらない”判断が最も利益に効きます。

5. 在庫とリバランスの設計

三角裁定は「ベース通貨」「見積通貨(クオート)」「クロス通貨」の在庫が偏ります。偏りを放置すると次回の機会でサイズが打てなくなります。ニュートラル在庫の目安を決め、あらかじめ口座ごとに BTC:ETH:USDT = 1:10:30 などの比率でプールしておくと、機会損失を減らせます。乖離が落ち着いた時間帯に、低コストでゆっくりリバランスするのが定石です。

6. 実務フロー(擬似コード)


1) WSで3ペアのベストビッド/アスクと出来高を購読
2) 合成価格 = (ETH/BTC ask) × (BTC/USDT ask)
3) 価格差率 = (ETH/USDT ask − 合成価格) / 合成価格
4) 価格差率 > トリガー && 各板厚がサイズ閾値以上なら go
5) 3レッグ同時IOC(分割)で約定、失敗時はヘッジで中立化
6) ポジションと残高を更新、在庫偏りを記録
7) 日次でコスト・滑り・失敗率を再推定しトリガー再調整

7. オーダー戦術:同時性と分割

同時性の担保が肝です。3レッグを完全同時に投げられないAPIなら、最も流動性が厚いレッグを最後に回し、薄いレッグから先に刺します。各レッグは一発フルサイズではなく、板の厚みに合わせて 等分〜VWAP分割 を基本にし、IOC(即時約定 or 取消)で未約定分を潔く捨てます。

8. 失敗モードと緊急脱出

典型的な失敗は「2レッグだけ通って1レッグが不成立」。この場合は即座にヘッジ(例:同一ペアの反対売買、またはパーペチュアルのクロスで中立化)をかけ、想定損失の上限(例:総エクスポージャーの0.03%)で自動撤退します。撤退ロジックは裁定そのものより重要です。

9. コンプライアンスと運用体制(一般論)

口座開設やKYC/AML、各国の規制、税務、トラベルルール対応は利用地域・個別サービスで要件が異なります。利用規約と提供地域を必ず確認し、適法に運用できる体制(本人確認、取引ログ、資金源確認、リスク管理手順の文書化)を整備してから実装してください。

10. DEXを絡めた応用:ステーブルコイン三角

USDT/USDC/DAI の三角裁定はペッグの微細な崩れとプール在庫偏りを突きます。CEXでUSDT⇄USDC、DEXでUSDC⇄DAI、CEXでDAI⇄USDT のように組み替えると機会が増えます。ガス代が実現益を食い潰しやすいので、L2やガスの安い時間帯に限定、maxPriorityFee を低め・private tx を活用するなど、実行コストを厳格に管理します。

11. 期待値モデルとサイズ最適化

1トレードあたりの期待値は概ね E[PnL] ≒ 発生確率 × 平均エッジ × サイズ − 総コスト − 失敗時損失 × 失敗確率 と表せます。実務では、トリガーを厳しくするほど発生頻度が下がり、期待エッジは上がるというトレードオフになります。日々のログからヒット率・滑り・失敗率を再推定し、0.25% → 0.30% → 0.35% と段階的にトリガーを引き上げ、同時にサイズの上限も増やすのが王道です。

12. 最小構成での自動化チェックリスト

レート制限に達しないサンプリング(例:50〜100ms)、WebSocket優先、板の空約定(見かけの流動性)検知、取引所ごとの丸め・数量最小単位対応、タイムシンク(NTP)、例外時のサーキットブレーカ(一定回数の失敗で自動停止)、監視と通知(失敗時は即座にモバイルへ)など、“止まる安全”を先に作り込みます。

13. まとめ:やらない勇気と、やる時の正確さ

三角裁定は、価格関係とコスト・実行品質の数学です。条件が揃わない時は見送る。揃った時は正確に同時に素早くやる。ログの再推定でトリガーとサイズを毎日磨き込む。この3点を守れば、余計なボラに触らずに“ほぼ市場リスク中立”の収益機会を拾い続けることができます。

コメント

タイトルとURLをコピーしました