本稿では、取引所内の3通貨を循環させて価格のゆがみを刈り取るトライアングルアービトラージ(三角裁定)を、暗号資産市場の特性(手数料、板厚、ファンディング、スリッページ、入出金制約)まで含めて実務レベルで解説します。単なる概念紹介ではなく、どのように検出し、どう計算し、どの順番で発注し、どこで撤退するかまでを具体的に示します。
1. 戦略の骨子
3つの通貨 A・B・C と、それぞれの交換レート(A/B, B/C, C/A)を用いて、理論価格の積が1から乖離した瞬間に循環取引で利ざや(アービトラージ)を確定します。暗号資産では「BTC・ETH・USDT」の三角が代表例です。
例:USDT → BTC → ETH → USDT と回す場合、R = P(USDT→BTC) × P(BTC→ETH) × P(ETH→USDT)
を計算し、R > 1 なら利得が見込めます(逆回転は R < 1)。ここで P は「実際に約定できるレート(成行でぶつけたときの加重平均)」を使います。
2. 実効レートの計算(理論ではなく約定ベース)
机上の最良気配ではなく、板をどれだけ食うかを前提に、スリッページ込みの加重平均価格(VWAP)で R を算出します。発注数量 q に対して、オーダーブックの各板厚を順に食い、約定価格の加重平均を取り、手数料(taker手数料)を乗算して実効価格を得ます。
計算式(買い時):VWAP_buy = (∑ price_i × fill_i) / (∑ fill_i)
、実効コストは VWAP_buy × (1 + fee)
。売りは VWAP_sell × (1 - fee)
。この実効買値・売値で R を構成します。
3. シミュレーションの最小セット
最低限、以下のパラメータで R を刻々と評価します。
- 各ペアの板(上位5~20本)
- taker 手数料(VIP ランク、BBO マッチング特典)
- 最小発注数量・最小価格刻み
- 想定数量 q(ロットサイズ)
- API レイテンシ(送信&約定までの時間)
このセットだけでも、机上の R と約定ベースの R のギャップが明確になります。ロットを2倍にしても収益は2倍になりません。板厚が薄いペアが1本でも混じると、R は急速に 1 に収斂します。
4. 回転の順番設計(価格リスクの封じ込め)
もっとも薄いペアを最初に処理します。最後に残すと、価格変動の打撃を全て受けます。基本は「薄い→厚い→厚い」。さらに価格リスクを縮めるため、3本をほぼ同時に成行で投げるか、もしくは IOC/PO 併用で滑りを抑えます。
暗号資産特有の工夫として、現物三角にパーペチュアル(無期限先物)をオーバーレイして、途中の片張りリスクをヘッジする方法があります。具体的には、2本目の発注と同時に逆方向の perp を小口で当て、3本目の約定でクローズするやり方です。ファンディングの支払い/受け取りがあるため、純粋な現物三角より設計が難しいですが、瞬間的な価格ショックに強くなります。
5. 収益の算定とブレークイーブン条件
循環後の残高を USDT に戻したときの純増分 Δ を利益とし、Δ / 初期USDT
を日次・年率で把握します。ブレークイーブンは R × (1 – 手数料総和) × (1 – 期待スリッページ) > 1 が目安です。スリッページは経験的にロットの 0.5~3.0bp/ペア程度からスタートして実測で更新します。
6. 典型パスと数値例
ペア:USDT/BTC, BTC/ETH, ETH/USDT。初期 10,000 USDT、ロットはすべて成行で同時送信。
- USDT → BTC:実効買値 65,000、手数料 0.04% → 0.1538 BTC
- BTC → ETH:実効売買比 1 BTC = 14.75 ETH、手数料 0.04% → 2.2680 ETH
- ETH → USDT:実効売値 4,300、手数料 0.04% → 9,998.7 USDT
このケースでは -1.3 USDT の損失。見た目の裁定があっても、実効価格と手数料で相殺される典型です。ここから発注順序を「薄いペアを先に」「VWAP を浅くするロットに縮小」「一部をperpヘッジ」の3点で再設計し、R を 1.0006 程度まで押し上げるのが現実的レンジです。
7. 執行ロジック(擬似コード)
戦術は「検出→同時発注→約定監視→異常時の撤退」。以下の擬似コードは考え方の骨子です。
// 1) Rの検出(板VWAPベース)
if (R(q) > 1 + threshold_bp) {
// 2) 同時IOC成行を3本送る(最薄ペアを最初)
send_ioc(order1);
send_ioc(order2);
send_ioc(order3);
// 3) 約定監視(部分約定の穴はperpでヘッジ)
while(open_legs()) { hedge_with_perp(); }
// 4) どれかが失敗→全レグをクローズ、残ポジはVWAPで即時解消
}
8. 失敗パターンと対処
部分約定:最も多い失敗。残りの未約定分だけ逆回転で解消するフローを自動化します。価格ジャンプ:イベント時は R が立っても持続しないため、イベントカレンダー(米雇用統計、FOMC、主要上場のカタリスト)時間帯はロットを極小化します。
手数料の見落とし:VIP ランク、トークン払い割引、BBO マッチング、リベートを常時更新。資金調達コスト:perp を使う場合、ファンディングコスト年率と予定保有時間の積を常に収支に織り込みます。
9. 取引所選定と通貨セット
板厚・API 安定性・手数料・KYC/AML 体制・上場ペア数で総合評価します。通貨セットは「BTC-ETH-USDT」が鉄板ですが、USDC・FDUSDなどステーブルの多様化で、USDT-ETH-USDCのようなステーブル絡み三角もチャンスが出ます。ただし、一方のステーブルのペグ崩れがあると裁定どころではなくなるため、リスク管理を最優先します。
10. 資金配分と回転数の管理
資金は回転可能額(板厚×許容スリッページ)で決めます。回転速度は API 制限と約定の安定性で頭打ちになるため、回転数を増やすより、1回転あたりのRを0.5bp底上げする改善のほうが効きます。スロットリング(毎秒の新規注文数上限)にぶつからないよう、バースト→クールダウンのリズムを設計します。
11. リスク管理チェックリスト
- 3本のうち最薄ペアはどれか(板更新頻度とスプレッド)
- 1回転の理論収益 bp と、手数料・スリッページ見込み bp
- perp ヘッジのファンディング見込み(支払/受取)
- 部分約定時の自動解消フロー(逆回転 or VWAP)
- API 制限・レイテンシ監視(遅延検出で自動停止)
- 法令・税務の確認(KYC、報告、帳簿)
12. 実装メモ(データとアルゴ)
オーダーブックは Level 2(板の深さ)をサブスクライブし、スナップショットと差分を突合。R の再計算は 50~200ms 程度で十分です。同時性を担保するため、送信を非同期化しつつ、約定イベントで次手をトリガーします。ポジションは随時インベントリ計測して偏りをゼロに保ちます。
13. いつやめるか(停止条件)
R の出現頻度が下がる、手数料ランクが下がる、API 遅延が増える—このいずれかが起きたら即時にサイズ縮小し、勝率・平均R・スリッページの3指標が3日連続で悪化したら一旦停止します。撤退の速さがこの戦略の寿命を伸ばします。
14. まとめ
トライアングルアービトラージは「見つける」より「約定させる」戦略です。R を机上で作るのは簡単ですが、利益は板を食い、手数料を払い、滑りを受け入れた後にしか残りません。薄いペアを先に、同時IOC、VWAP計測、部分約定の即時解消、perpのピンポイント活用—この5点を揃えれば、0.5~2.0bp/回転の安定回収が現実的になります。
コメント