Bot DEX 開発ログ

🛠️開発記録#461(2026/2/23)EVを確定せよ:DeFiアービトラージ探索の設計論

DeFiアービトラージに、本当にエッジは存在するのでしょうか。

価格差を見つければ儲かる――。
そう考えてボットを走らせた経験は、多くのbotterが持っているはずです。しかし現実はそれほど単純ではありません。ガス代、スリッページ、MEV、ブロック遅延。理論上はプラスに見えた差分が、実行段階であっさりと消えていきます。

それでも私たちは、「どこかに非効率はあるはずだ」と考え続けます。ただし、その思い込みのまま探索を続けると、いつの間にか事実と解釈が混ざり、前提が曖昧になり、検証が終わらない状態に陥ってしまいます。特にAIを設計補助として使っている場合、その傾向は強まります。

本記事では、DeFiアービトラージにおいて「勝てそうかどうか」を議論するのではなく、「EV(期待値)を事実ベースで確定する」ための設計論を整理します。
TVL変化から戦場候補を抽出する工程、atomicと半arbの構造的な違い、DEXクォートとガス見積を用いたEV-B測定器の設計、そして「ここまでやればEV≤0(あるいはEV>0)と確定できる」という終了条件の明文化までを扱います。

ガチのbotterにも耐えるだけの技術的視点を保ちつつ、中級者の方にも理解できるように、事実と解釈を分離しながら順を追って説明します。

速度で勝てないなら、構造で測る。
感覚で判断せず、データで確定する。

「EVを確定せよ」。
それが、個人botterとして市場で戦い続けるための出発点だと考えています。

1. なぜ「EVを確定する」という発想が必要なのか

DeFiアービトラージにおいて最も危険なのは、「勝てそうだ」という感覚です。

DEX間に価格差がある。
TVLが急増している。
新興チェーンで流動性が不安定に見える。

こうした状況は、一見すると“非効率の匂い”がします。しかし、それはあくまで観測事実であって、エッジの証明ではありません。価格差があることと、実行後に利益が残ることは、まったく別の話です。

実際の現場では、次のような要素が必ず介在します。

  • ガスコスト
  • スリッページ
  • ブロック遅延
  • MEVによるフロントラン
  • 約定失敗リスク

理論値上はプラスに見えた差分が、これらを差し引いた瞬間にゼロ、あるいはマイナスになることは珍しくありません。にもかかわらず、「たまたま取れた一回の成功体験」や「理論計算上のスプレッド」を根拠に戦略を正当化してしまうと、検証は歪みます。

ここで必要になるのが、「EV(期待値)を確定する」という発想です。

EVを確定するとは、単に「プラスかマイナスかを計算する」ことではありません。
それは、次のような問いに明確に答えられる状態を指します。

  • この条件下で、十分なサンプル数を取ったとき、平均的に利益は残るのか?
  • その利益はガスや失敗率を織り込んでも正か?
  • 上位数%の一時的な成功ではなく、分布としてプラスなのか?
  • この範囲ではEV≤0である、と事実ベースで言い切れるか?

つまり、「勝てそう」ではなく、「この前提では勝てる(あるいは勝てない)と断言できる」状態を作ることが目的です。

特に個人botterにとって重要なのは、探索を終わらせる基準を持つことです。
市場に非効率が存在しない可能性も、十分にあり得ます。にもかかわらず、「もう少し閾値を変えれば」「サイズを変えれば」「チェーンを変えれば」と無限に探索を続けてしまうと、時間と資本を消耗するだけになります。

EVを確定する設計とは、次の二つを同時に満たすものです。

  1. EVが0を上回ることを、統計的に示せる
  2. EVが0を上回らないことも、同じく統計的に示せる

どちらの結論でも構いません。重要なのは、「どちらかを事実として確定させる」ことです。

これは、感覚を否定するためではありません。
むしろ、感覚を正しく検証するための手段です。

DeFiの世界では、価格差は常にどこかにあります。しかし、その価格差が「取れる価格差」なのか、「見えているだけの価格差」なのかを区別しなければ、戦略は成立しません。

だからこそ、アービトラージ探索においては、

  • 事実と解釈を分離する
  • 仮説と検証を分離する
  • 観測と実行を分離する

という姿勢が必要になります。

EVを確定するという発想は、単なる数式の話ではありません。
それは、botterとして市場と向き合うための態度そのものです。


2. 事実と解釈を分離する:研究のレイヤー設計

DeFiボットの研究で最も起きやすい事故は、「事実」と「解釈」が混ざることです。

たとえば、次のような流れです。

  • TVLが急増しているチェーンを見つけた
  • 価格差が一瞬広がっているのを観測した
  • 「ここは戦場だ」と判断した

このとき、最初の二つは事実です。しかし三つ目は解釈です。この違いが曖昧なまま進むと、いつの間にか「仮説」が「前提」にすり替わります。そして検証は、その前提を正当化する方向へと傾いていきます。

そこで必要になるのが、研究をレイヤーで設計することです。


レイヤー1:観測(事実)

ここでは、ただデータを取得します。

  • DeFiLlamaからTVLを取得した
  • 1日・7日・30日の変化率を計算した
  • 特定のDEX間で価格差が観測された

この段階では、「なぜそうなっているのか」「勝てるかどうか」は考えません。
あくまで、起きている現象を記録するだけです。


レイヤー2:数値変換(加工)

観測した事実を、分析可能な形に変換します。

  • 変化率が±15%以上のチェーンを抽出
  • TVLが20M〜5Bの範囲にあるものだけを残す
  • edge_after_cost_usdを計算する

ここで初めてフィルタや指標が入ります。ただし、まだ解釈はしません。
このフィルタは「正しい」とは言いません。「この条件で抽出した」というだけです。


レイヤー3:仮説(意味づけ)

ここでようやく解釈が登場します。

  • TVL急増は資金流入の兆候かもしれない
  • TVL急減は流動性が抜け、歪みが出やすい可能性がある
  • 中型帯の方がMEV密度が低いかもしれない

これらはすべて仮説です。
仮説は悪いものではありません。ただし、「仮説である」と明示しなければなりません。


レイヤー4:検証(EVの確定)

最後に、仮説をデータで検証します。

  • 持続条件を満たすエッジは何件あるか
  • 上位10%の平均EVは正か
  • ガスとバッファ込みでも残るか

ここで初めて、「この範囲ではEV>0である」「この範囲ではEV≤0である」と言えるようになります。


なぜこの分離が重要なのか

AIを使って設計や分析を進めると、特にレイヤーの混在が起きやすくなります。

AIは、事実の提示と同時に、自然な形で解釈や方向性を提示します。それ自体は強力な支援ですが、レイヤーが曖昧なまま進むと、どこまでが観測で、どこからが推論なのかが分からなくなります。

その結果、次のような事態が起きます。

  • フィルタが悪いのか、仮説が悪いのか分からない
  • EVが出ない理由が、閾値なのか市場構造なのか不明確
  • 「ここまでやってダメなら引き返す」という基準が持てない

研究が迷走するのは、能力不足ではなく、レイヤー設計の不在が原因であることが多いのです。


実務上のルール

私が今回採用しているルールは、単純です。

  1. 事実だけを書き出す
  2. その事実をどう加工したかを明示する
  3. そこから生まれた解釈を「仮説」として扱う
  4. 最終的な判断はEVの検証に委ねる

この順序を守るだけで、議論は驚くほどクリアになります。


研究とは、「正しい前提」を探す作業ではありません。
「前提をどこで疑うか」を設計する作業です。

事実と解釈を分離するというのは、単なる思考整理ではなく、
botterとして生き残るための技術的態度そのものだと考えています。


3. TVLはエッジの証拠ではない

DeFiを触っていると、どうしてもTVL(Total Value Locked)が気になります。

TVLが急増しているチェーン。
TVLが急減しているプロトコル。
ランキング上位に食い込んできた新興L2。

これらは確かに「何かが起きている」兆候です。しかし重要なのは、TVLはエッジの証拠ではないという点です。

TVLは、あくまで「資金がどこに滞在しているか」を示す指標です。
そこから直接的に分かるのは、資金の流入・流出という事実だけです。


TVLが示すもの

TVLから分かるのは、次のようなことです。

  • どのチェーンに資金が集まっているか
  • どのプロトコルが注目されているか
  • 流動性が増減しているか

これは、戦場の地図としては非常に有用です。
しかし、それは「価格差が存在する」「裁定が成立する」ということを意味しません。

TVLが増えたからといって、価格が歪むとは限りません。
TVLが減ったからといって、必ずスプレッドが広がるとも限りません。


TVLと価格効率は別物

よくある誤解は、次の二つです。

  1. TVLが大きい=効率的
  2. TVLが小さい=非効率的

どちらも単純化しすぎです。

巨大TVLのチェーンでも、新規プロトコルは未成熟かもしれません。
逆にTVLが小さいチェーンでも、参加者が少なく価格更新が遅いだけで、約定可能なエッジはほとんど存在しないかもしれません。

価格効率を決めるのは、TVLそのものではなく、

  • 流動性の分布(プール深さ)
  • ボリューム / TVL比
  • 価格更新頻度
  • 競争密度(MEVボットの数)
  • ブロック内優先度競争

といった構造的要素です。

TVLは、それらの代理変数の一つに過ぎません。


なぜTVLを使うのか

それでも、TVLを最初のフィルタに使った理由は明確です。

TVLは、

  • 砂場レベルの流動性不足を除外する
  • 完全成熟市場を除外する
  • 探索空間を縮める

という意味では有効です。

つまり、TVLは「エッジの証拠」ではなく、
探索対象を定義するための実行可能性フィルタです。

20M〜5Bというレンジも、「正解」ではありません。
それはあくまで暫定的な探索レンジであり、後にEVで検証されるべき仮説です。


エッジの証拠は何か

エッジの証拠は、TVLではありません。

エッジの証拠は、

  • ガス込みで正の期待値が残る
  • 持続時間を持つ歪みが観測される
  • サンプル数を積んでも平均が正に保たれる

という、EVの分布そのものです。

TVLがどう動いているかは、その前段階に過ぎません。


研究としての姿勢

TVL急増を見て「チャンスだ」と感じること自体は自然です。
しかしその感覚は、あくまで仮説生成のトリガーです。

そこから、

  • 実際に価格差を測り
  • ガスとスリッページを差し引き
  • 持続条件を確認し
  • EVを分布で評価する

というプロセスを踏まなければ、
TVLは単なる「盛り上がり指標」にとどまります。


TVLは重要です。
しかし、それはスタート地点であって、ゴールではありません。

DeFiアービトラージにおいて本当に問うべきなのは、

その構造は、実行可能な正のEVを生み出しているのか。

その一点だけです。

TVLは地図です。
エッジは、測定によってしか証明できません。


4. Atomicと半アービトラージの技術的差異

DeFiアービトラージを語るとき、まず整理しておくべきなのが「atomic」と「半アービトラージ(在庫許容型)」の違いです。

両者は同じ“価格差を取る”戦略に見えますが、技術的構造も、競争環境も、必要な前提もまったく異なります。個人botterとしてどこで戦うのかを決めるうえで、この違いの理解は避けて通れません。


Atomicアービトラージとは何か

Atomicアービトラージは、1回のトランザクションの中で完結する裁定です。

具体的には、

  1. DEX_Aで資産を買う
  2. 同じトランザクション内でDEX_Bで売る
  3. 差額を利益として確定する

という流れを、単一のトランザクション内で実行します。

ここでの最大の特徴は、

  • 在庫を持たない
  • ブロック内で完結する
  • 価格変動リスクを負わない

という点です。

理論上は「リスクゼロ」の構造です。トランザクションが成功すれば利益が確定し、失敗すれば状態は巻き戻ります。

しかし現実には、ここにMEV(Maximal Extractable Value)競争が存在します。


Atomicの現実:速度の世界

Atomicは、ほぼ完全に速度の戦場です。

  • 同じ価格差を見ているボットは無数にいる
  • 1ブロック内での優先順位争いがある
  • private relayerやbundle送信が前提になる
  • ガス価格での競争が発生する

つまり、

Atomicは“価格差”ではなく、“順番”の戦い

なのです。

理論上はプラスでも、

  • フロントランされる
  • バックランで抜かれる
  • ガスだけ消費して終わる

ということが頻発します。

そのため、Atomicは

  • 高速インフラ
  • private builder接続
  • 最適化されたガス戦略

を持つプレイヤーが優位に立つ構造です。

個人botterが真正面から殴り合うには、かなり厳しい世界です。


半アービトラージとは何か

一方、半アービトラージは在庫リスクを許容する裁定です。

例えば、

  1. DEX_Aで買う
  2. 数ブロック待つ
  3. DEX_Bで売る

あるいは、

  • DEXで買い、CEXでヘッジする
  • 価格が理論値に戻ることを前提に保有する

といった戦略です。

Atomicと決定的に違うのは、

  • トランザクション内で完結しない
  • ブロックを跨ぐ
  • 価格変動リスクを負う

という点です。


技術的な差異

両者の違いを整理すると、次のようになります。

項目Atomic半アービトラージ
完結単位1トランザクション複数ブロック
在庫リスクなしあり
価格変動リスクなしあり
MEV競争極めて高い相対的に低い
必要速度非常に高い低〜中
優位性の源泉実行順序構造的回帰

Atomicは「価格差がある瞬間」に価値があります。
半arbは「価格差が一定時間持続する構造」に価値があります。


構造という視点

ここで重要なのが、“持続時間”という概念です。

Atomicは、

1ブロックでも価格差があれば成立する

世界です。

半arbは、

2ブロック、3ブロックと歪みが持続するかどうか

が鍵になります。

この違いは、技術実装にも直結します。

  • Atomicは1回のルーター呼び出し設計が中心
  • 半arbは時系列ログと持続判定ロジックが中心

つまり、測るべき指標が違うのです。


個人botterにとっての意味

個人がDeFiで戦う場合、

  • 最高速度のインフラは持てない
  • ブロック内優先権を常に取れるわけではない

という前提があります。

その場合、Atomicを主戦略にするのは合理的とは言えません。

一方で、半arbは

  • 統計的検証が活きる
  • 持続時間を測れる
  • 在庫リスクをコントロールできる

という余地があります。

もちろん、在庫リスクがある分、戦略設計は難しくなります。しかし、競争密度が相対的に低い場所で戦える可能性があります。


どちらが正解か

Atomicが悪いわけではありません。
半arbが必ず勝てるわけでもありません。

重要なのは、

自分がどの構造で戦うのかを明確にすること

です。

そして、その構造に応じたEVを測ることです。

Atomicなら「同一トランザクション内の実行成功率」を含めたEV。
半arbなら「持続時間と回帰確率」を含めたEV。

戦略を決めずにEVを語ることはできません。

だからこそ、Atomicと半アービトラージの技術的差異を理解することは、DeFi探索の出発点なのです。


5. EVの三層構造:EV-A / EV-B / EV-C

DeFiアービトラージで最も混乱しやすいのは、「EVがある」と言ったときに、どのレベルのEVを指しているのかが曖昧になることです。

価格差があるだけで「期待値がある」と判断してしまうと、実行段階で簡単に裏切られます。逆に、実行結果だけを見て「やはり無理だ」と結論づけると、設計段階の問題と市場構造の問題が混同されます。

そこで必要になるのが、EVを三層構造で整理するという発想です。


EV-A:理論上の期待値(Paper EV)

EV-Aは、最も単純な期待値です。

EV-A = 売値 - 買値

あるいは、

EV-A = edge_before_cost

という形で計算されます。

これは、DEX間の価格差やCEXとの乖離など、「見えている差分」をそのまま数値化したものです。

EV-Aは、

  • 戦場に価格差が存在するか
  • どの程度のスプレッドが観測されているか

を把握するには有効です。

しかし、EV-Aには重大な欠点があります。

  • ガスを考慮していない
  • スリッページを考慮していない
  • 実行順序やMEVを考慮していない

つまり、理論上の差分であって、実行可能な差分ではありません。

EV-Aが正であることは、「歪みが存在する」ことの証拠にはなりますが、「利益が残る」ことの証明にはなりません。


EV-B:実行前提の期待値(Simulated Execution EV)

EV-Bは、実際に実行した場合に残るであろう期待値を、シミュレーションで計算したものです。

EV-B = (売りクォート - 買いクォート)
- ガスコスト
- safety buffer

ここで初めて、

  • DEXクォートによる実効価格
  • ガスコストのUSD換算
  • 滑りや誤差を吸収するバッファ

が入ります。

EV-Bは、

  • このサイズで
  • このルートで
  • この時間帯で

実行した場合、理論的にプラスが残るかどうかを測る段階です。

さらに、半アービトラージを扱う場合は、

  • 持続時間(何ブロック連続で正か)
  • 発生頻度(1時間あたり何回か)

といった構造的条件も含めます。

EV-Bは、「実行してもよいかどうか」を判断するためのフィルタです。
しかし、まだ実行していません。

ここでプラスが出ても、実際のネットワーク環境では負ける可能性があります。


EV-C:実行後の期待値(Realized EV)

EV-Cは、実際にトランザクションを送信し、実現した損益を含む期待値です。

ここには、

  • 実際の約定価格
  • 実際に消費したガス
  • フロントランやバックランによる損失
  • 失敗トランザクションのコスト

が含まれます。

EV-Cは最も強い証拠です。

しかし、コストがかかります。
そして、サンプル数を十分に集めるには時間も資本も必要です。

そのため、いきなりEV-Cから始めるのは合理的ではありません。


なぜ三層で考えるのか

EV-Aだけを見ると、世界は楽観的に見えます。
EV-Cだけを見ると、世界は悲観的に見えます。

しかし、その間にEV-Bを挟むことで、

  • 価格差はあるのか(EV-A)
  • 実行前提でも残るのか(EV-B)
  • 本当に残ったのか(EV-C)

という三段階の検証が可能になります。

これにより、

  • フィルタが悪いのか
  • サイズが悪いのか
  • ガスが重すぎるのか
  • MEVに抜かれているのか

といった原因の切り分けが可能になります。


「EVがある」とは何を意味するのか

「EVがある」と言うとき、それがEV-Aなのか、EV-Bなのか、EV-Cなのかを明確にしなければなりません。

個人botterとして重要なのは、

EV-Bが正であることを確認し、
EV-Cでそれを確定させること。

この順番です。

EV-Aは入口に過ぎません。
EV-Cは最終判定です。
そしてEV-Bは、その間をつなぐ最も重要な設計レイヤーです。


アービトラージ探索において最も危険なのは、「EVがありそうだ」と感じたまま実装に進むことです。

三層構造で整理することで、
私たちはようやく「どの段階で、何が証明されたのか」を正確に言語化できるようになります。

EVを確定するとは、
この三層を混同しないことから始まります。


6. 構造エッジとは「持続時間」である

DeFiアービトラージにおいて、多くの人が最初に見るのは「価格差の大きさ」です。

10bpsのスプレッドがある。
0.5ドルのedgeが出ている。
理論計算ではプラスだ。

しかし実際に戦場に立つと分かるのは、“大きさ”よりも“持続時間”の方が圧倒的に重要だという事実です。


一瞬の歪みはエッジではない

DEX間で価格差が発生すること自体は珍しくありません。
問題は、それがどれくらい続くのかです。

  • 1ブロックだけ正
  • 1サンプルだけプラス
  • 数百ミリ秒で解消

こうした歪みは、理論上はプラスでも、現実ではほぼ取れません。

なぜなら、

  • MEVサーチャーが優先順位を取りに来る
  • 同じ差分を見ているボットが存在する
  • 実行順序の競争に負ける

からです。

つまり、

一瞬の価格差は「ノイズ」である可能性が高い。

それをエッジと呼ぶのは危険です。


構造エッジとは何か

構造エッジとは、

価格差が「持続」する状態

を指します。

例えば、

  • 2ブロック連続でEVが正
  • 5秒以上価格差が残る
  • 数サンプル連続で回帰圧力が確認できる

といったケースです。

この「持続」があるとき、初めて次のような可能性が生まれます。

  • MEVよりも遅いが、まだ間に合う
  • 在庫を持っても回帰確率が高い
  • 実行順序ではなく構造で勝負できる

なぜ持続時間が重要なのか

価格差の大きさは、期待値の“振幅”です。
持続時間は、期待値の“安定性”です。

大きくても一瞬で消える差分は、実行難易度が高い。
小さくても持続する差分は、戦略設計次第で取れる可能性があります。

特に半アービトラージ(在庫許容型)では、

  • 回帰確率
  • 回帰までの時間
  • 持続runの分布

が重要になります。

このとき初めて、「positive_run_len(連続プラス回数)」という指標が意味を持ちます。


持続時間を測るという発想

構造エッジを扱うには、単にedge_after_cost_usdを記録するだけでは不十分です。

必要なのは、

  • EVが正になった瞬間を記録すること
  • それが何サンプル続いたかを測ること
  • その分布を統計的に集計すること

です。

例えば、

  • 正のrunが平均1サンプルで終わる市場
  • 正のrunが平均3〜4サンプル続く市場

では、戦略の難易度がまったく異なります。

前者は速度勝負、後者は構造勝負です。


Atomicと持続の関係

Atomicアービトラージは、「持続しなくても取れる」構造です。
だからこそ、速度が支配的になります。

一方で、半アービトラージは、

持続する歪みがあることが前提

になります。

持続がなければ、在庫リスクだけを抱えることになります。

したがって、半arbを志向する場合、

  • 持続時間の測定
  • 持続条件の定義
  • 連続runの頻度

は、エッジの本体そのものです。


持続時間は“市場の性格”を表す

ある市場では、

  • 歪みが瞬間的に吸収される
  • 常に高速競争がある

別の市場では、

  • 流動性が偏在している
  • 価格更新が遅い
  • LPの移動が遅れる

この違いは、価格差の大きさよりも、持続時間に現れます。

持続時間を測ることで、

その市場が「速度の市場」か「構造の市場」か

を判断できるのです。


結論

構造エッジとは、価格差そのものではありません。

構造エッジとは、

価格差が、一定時間存在し続けること。

その持続が確認できたときに初めて、

  • EV-Bを測る意味が生まれ
  • 半アービトラージ戦略が成立し
  • 個人botterが戦える余地が出てきます。

価格差の大きさを見る前に、
まず持続時間を測る。

それが、構造で戦うための出発点です。


7. 判定基準を先に決めるという設計

DeFiアービトラージの探索で最も危険なのは、「検証が終わらないこと」です。

価格差が出ない。
EVがわずかにマイナス。
サンプルが少ない。

そのたびに、

  • 閾値を変える
  • サイズを変える
  • チェーンを変える
  • 期間を延ばす

という調整を続けてしまうと、研究は無限ループに入ります。
これは能力の問題ではなく、終了条件が設計されていないことが原因です。

だからこそ重要なのが、「判定基準を先に決める」という発想です。


なぜ後から決めてはいけないのか

検証が終わったあとに、

  • 「もう少し様子を見よう」
  • 「この期間はノイズだったかもしれない」
  • 「サイズを半分にすれば良かったのでは」

といった理由で基準を変更すると、結論は永遠に出ません。

これは研究の典型的な罠です。
結果に合わせて基準を動かすと、仮説は否定されなくなります。

そのため、

検証前に「どこまでやれば白黒をつけるか」を固定する

必要があります。


判定基準は何を含むべきか

アービトラージ探索における判定基準は、最低でも次の要素を含むべきです。

  1. 対象範囲の固定
  2. 観測期間の固定
  3. サンプル数の下限
  4. EVの評価方法
  5. 成功/失敗の定義

1. 対象範囲を固定する

まず固定すべきは、

  • チェーン
  • DEXの組み合わせ
  • トークンペア
  • 取引サイズ

です。

ここが曖昧だと、「条件を変えれば勝てるかもしれない」という逃げ道が残ります。

たとえば、

Arbitrum × Uniswap v3 ↔ Camelot v3 × WETH/USDT × size=0.05 WETH

と明示することで、検証対象は明確になります。


2. 観測期間を固定する

市場は常に変動しています。
だからこそ、

  • 72時間
  • 7日間

といった観測期間を先に決めます。

短すぎると偶然に左右されますし、
長すぎるとレジームが変わります。

期間を固定することは、検証を時間軸で切ることです。


3. サンプル数の下限を決める

EVを語るには、十分なサンプルが必要です。

例えば、

  • 500サンプル以上
  • 200件以上の機会

といった基準を決めます。

サンプルが少ない状態で結論を出すのは、統計的に危険です。


4. EVの評価方法を固定する

EV-Aなのか、EV-Bなのか、EV-Cなのか。

ここを明確にします。

今回の探索では、

  • EV-B(クォート+ガス+バッファ)
  • 持続条件付きのedge

を基準にする、といった具合です。

さらに、

  • 上位10%の平均が正か
  • 中央値が正か
  • 持続runが何回あるか

といった指標も事前に決めます。


5. 成功/失敗の定義を明文化する

これが最も重要です。

たとえば、

Fail条件

  • 観測機会が少ない
  • 持続runがほぼ出ない
  • 上位10%の平均EVがバッファ未満

この条件を満たしたら、

この範囲ではEV≤0と判断する

と決めます。

逆に、

Pass条件

  • 持続runが十分存在
  • 上位10%の平均EVが明確に正

であれば、

次段階(最小実行)へ進む

とします。


判定基準を持つことの意味

判定基準を先に決めるというのは、

  • 自分の楽観を制御する
  • 自分の悲観を制御する
  • AIの提案を評価する

ための仕組みです。

これがないと、

  • 「もう少しで取れそうだ」
  • 「今回は市場が悪かっただけだ」

という解釈が入り込みます。


終わらせる勇気

研究において重要なのは、成功することだけではありません。

「この範囲ではEVが出ない」と確定させることも成果です。

判定基準があると、
「ダメだった」という結論も前進になります。

それがないと、
探索は永遠に続き、資本と時間だけが失われます。


DeFiアービトラージ探索において、
技術力や発想と同じくらい重要なのは、

どこで止めるかを設計する力

です。

判定基準を先に決めることは、
自分の思い込みと戦うための、最も実践的な武器なのです。


8. AIは設計補助であって、結論装置ではない

DeFiボット開発にAIを使うことは、もはや特別なことではありません。
コードの雛形を作る、API仕様を整理する、分析ロジックを組み立てる。AIは非常に優秀な設計補助者です。

しかし、ここで一つ明確にしておきたいことがあります。

AIは「設計補助」であって、「結論装置」ではない。

この違いを理解していないと、研究は簡単に歪みます。

この記事も、最終的な生成部はAIですが、発想や検証の原液は私自身のものです。


AIが得意なこと

AIは、

  • 論点の整理
  • 設計の分解
  • 仮説の列挙
  • ロジックの形式化
  • コードの生成

といった作業を、非常に高速に行います。

今回の探索でも、

  • TVLフィルタの設計
  • EV-B測定器の構造
  • 判定基準の明文化

といった工程は、AIの補助によって効率的に進めることができました。

この点については、疑う必要はありません。
むしろ積極的に使うべきです。


AIがやっていないこと

しかし、AIは次のことはしていません。

  • あなたの実行環境での約定状況を観測していない
  • あなたの資金サイズを考慮していない
  • その瞬間のブロック競争状況を体験していない
  • 失敗トランザクションの痛みを感じていない

AIが出す「妥当そうな閾値」や「合理的なレンジ」は、
過去の知識や一般論を圧縮したものであって、あなたの市場での事実ではありません。

ここを混同すると、

  • AIが言ったから正しい
  • このレンジが最適だろう
  • この構造なら勝てるはずだ

という思考に滑っていきます。


レイヤーを意識する

AIとの協働で最も重要なのは、レイヤーの分離です。

  • AIは仮説を出す
  • あなたは事実を取りに行く
  • 判定はデータで行う

この役割分担を崩さないことです。

例えば、TVLの20M〜5Bというレンジも、
AIが出した“妥当そうな”初期値に過ぎません。

それを採用するかどうかは、

  • EVが改善するか
  • 実行成功率が上がるか
  • 持続runが増えるか

といった事実で評価すべきです。


AIを疑うタイミング

AIを疑うべきなのは、次のようなときです。

  • データと矛盾したとき
  • 結果に対して説明が抽象的すぎるとき
  • 再現性が取れないとき

逆に、疑わなくてよいのは、

  • 設計の骨組み
  • ロジックの整形
  • コード生成

の部分です。

AIを疑いすぎると前に進めなくなります。
AIを信じすぎると検証が止まります。

重要なのは、「どこを疑うか」を設計することです。


結論は必ず人間が出す

最終的に、

  • EVが0を上回るのか
  • この範囲ではEV≤0なのか
  • どのチェーンで戦うのか

といった結論は、必ず人間が出すべきです。

AIは、結論を“もっともらしく”提示できます。
しかし、それは確率的に整合した文章であって、あなたの実行環境の現実ではありません。


AIと戦略の関係

AIは、探索空間を広げる装置です。
戦略の成否を確定させる装置ではありません。

設計補助として使うことで、

  • 仮説生成が速くなる
  • レイヤー整理が進む
  • コード実装が加速する

一方で、結論をAIに委ねると、

  • 思考停止が起きる
  • 判定基準が曖昧になる
  • 失敗の原因が不明瞭になる

というリスクがあります。


AIを使うこと自体は、強力な武器です。
しかし、武器と判断装置は別物です。

DeFiアービトラージ探索において、

設計はAIと共に行う。
結論はデータと共に出す。

この姿勢を崩さないことが、
長期的に生き残るための前提だと考えています。


9. ここまでやったこと(事実ベース整理)

ここで一度、ここまでの進捗を解釈を排除して、事実だけ整理しておきます。

アービトラージ探索において最も危険なのは、「やった気になること」です。
TVLを見た。候補を抽出した。議論を重ねた。
しかし、それが“何を証明したのか”は曖昧なまま、という状態に陥りやすい。

だからこそ、現時点で確定している事実だけを書き出します。


1. DeFiLlamaのデータを取得した

  • チェーン別TVL(現在値)
  • チェーン別TVL履歴(1日・7日・30日)
  • プロトコル別TVL
  • プロトコル履歴データ

これらをAPI経由で取得し、ローカルに保存しました。

ここに解釈はありません。
データを取得した、という事実だけです。


2. TVL変化率を計算した

取得した履歴データから、

  • 1日変化率
  • 7日変化率
  • 30日変化率

を算出しました。

さらに、絶対額の増減も計算しました。

ここも事実です。
“伸びているからチャンス”とはまだ言っていません。


3. 閾値でフィルタリングした

暫定的な探索条件として、

  • チェーンTVLのレンジ
  • プロトコルTVLのレンジ
  • 7日変化率の閾値

を設定し、候補を抽出しました。

この閾値は「正しい」と証明されたものではありません。
あくまで探索空間を絞るための仮設定です。

ここで確定したのは、

「この条件を満たす対象が存在する」

という事実のみです。


4. 候補リストをCSVで出力した

  • チェーン候補
  • プロトコル候補
  • チェーン×プロトコル分解

これらを構造化データとして出力しました。

つまり、

戦場候補の“母集団”を数値ベースで定義した

という状態です。


5. まだやっていないこと

重要なのは、ここです。

  • 価格データの取得
  • DEXクォートの比較
  • ガス込みEVの算出
  • 持続時間の測定
  • 実行テスト(EV-C)

これらはまだ実施していません。

したがって、

エッジがある
エッジがない

という結論は、まだ出していません。


6. 現在地の正確な表現

ここまでの進捗を、過不足なく言うと、

TVL変化を用いて、探索対象の候補集合を定義した段階

です。

それ以上でも、それ以下でもありません。

  • 非効率があるとは言っていない
  • 勝てるとも言っていない
  • 市場が死んでいるとも言っていない

ただ、

どこを見るかを、数値で決めた

だけです。


7. なぜこの整理が必要か

研究を進めると、自然と解釈が入り込みます。

  • 「動いているからチャンスだ」
  • 「中型帯が狙い目だ」
  • 「成熟市場は効率的だ」

これらはすべて仮説です。

事実と仮説を混ぜると、

  • どこまでが検証済みなのか分からなくなる
  • どこに引き返せばよいのか不明確になる

だからこそ、いまの段階で一度、事実だけを固定する必要があります。


ここまでの作業は、探索の前段階としては有効です。
しかし、EVを確定するための本丸にはまだ踏み込んでいません。

次にやるべきは、

価格と実行条件を含めたEV-B測定

です。


10. 次の一手:EV-B測定器の実装

ここまでで、

  • TVLデータを取得し
  • 戦場候補を数値で抽出し
  • 事実と解釈を分離し
  • EVの三層構造

を整理しました。

しかし、最も重要な問いにはまだ答えていません。

この条件下で、本当にEVは正なのか?

それを確定させるための次の一手が、EV-B測定器の実装です。


なぜEV-Bから始めるのか

EVには三層あります。

  • EV-A:理論価格差
  • EV-B:クォート+ガス込みの期待値
  • EV-C:実行後の実現損益

いきなりEV-C(実行)に進むのは非効率です。
まだ「取れる可能性」があるかどうかも分からない段階で、資本を投じる必要はありません。

逆にEV-Aだけでは、ガスやMEVを無視してしまいます。

だからこそ、

実行はしないが、実行前提で期待値を測る

EV-Bが、探索フェーズの中核になります。


EV-B測定器とは何か

EV-B測定器とは、単純に言えば次の計算を継続的に行う装置です。

edge_before_cost = sell_quote - buy_quote
edge_after_cost = edge_before_cost - gas_cost - safety_buffer

ここで重要なのは、

  • 実効クォート(実際にそのサイズでスワップした場合の見積)
  • ガスコストのUSD換算
  • 安全バッファ(滑り・MEV吸収分)

を含めることです。

理論値ではなく、「実行したらどうなるか」を測るのが目的です。


構造エッジを組み込む

さらに重要なのは、持続時間を測ることです。

EV-B測定器は、単発のedgeだけでなく、

  • 何サンプル連続でEV>0が続いたか
  • 何ブロック持続したか
  • 1時間あたり何回発生したか

を記録します。

ここで初めて、

一瞬のノイズなのか
構造的な歪みなのか

を区別できます。


判定基準を組み込む

EV-B測定器は、単にログを出すだけでは不十分です。
最初から判定ロジックを組み込むことが重要です。

例えば:

  • サンプル数が500未満なら保留
  • 持続runが20回未満なら薄い
  • 上位10%平均が+0.3USD未満なら実装見送り

このように、

どこまでやれば次に進むか
どこで打ち切るか

をコードに落とし込むことが、研究を終わらせる鍵になります。


技術的な実装の骨格

EV-B測定器の基本構成はシンプルです。

  1. 対象ルートを固定する
    • chain
    • DEX_A / DEX_B
    • token pair
    • size
  2. 一定間隔でクォートを取得する
  3. ガス見積を計算する
  4. edge_after_costを算出する
  5. 持続runを計算する
  6. 集計して分布を出す

重要なのは、最初から完璧を目指さないことです。
v1では精度よりも「一貫性」を優先します。


EV-Bで分かること

EV-Bを回すと、次のような事実が得られます。

  • そもそも正の機会が存在するのか
  • 持続する歪みがあるのか
  • その分布はどの程度か
  • サイズを変えるとどう変化するか

これにより、

この範囲ではEV<=0と判断できる
あるいは、実行テストに進む価値がある

という判断が可能になります。


ここで初めて「前に進む」

いまはまだ、

  • TVLが動いている
  • 価格差がありそう

という段階です。

EV-B測定器を実装することで、

実行前提での期待値が見える

段階に進みます。

それでもEVが出なければ、
戦場を変えるべきです。

それでもEVが出るなら、
最小実行(EV-C)へ進みます。


探索を終わらせるための装置

EV-B測定器は、勝つための装置であると同時に、

勝てないと確定させるための装置

でもあります。

これがなければ、探索は永遠に続きます。

だからこそ、次の一手は明確です。

EV-B測定器を実装する。

そこから先は、データが判断してくれます。

11. 個人botterが生き残るための設計思想

DeFiの世界は、技術的にも資本的にも、決して優しい環境ではありません。
高速インフラを持つMEVサーチャー、専業チーム、豊富な資金を持つプレイヤーがひしめき合っています。

その中で、個人botterが生き残るためには、単に「良い戦略」を持つだけでは不十分です。
必要なのは、生き残るための設計思想です。

ここでは、その思想を整理します。


1. 速度で勝てないなら、構造で勝つ

個人が最も陥りやすい誤解は、「プロと同じ戦場で勝とうとする」ことです。

Atomicアービトラージは魅力的に見えます。
理論上はリスクゼロ、成功すれば即利益確定です。

しかしその裏側では、

  • ミリ秒単位の優先順位争い
  • private relayer前提の実行環境
  • ガス競争

が展開されています。

この領域で真正面から戦うのは、合理的ではありません。

個人botterが取るべき道は、

速度ではなく構造を探すこと

です。

持続する歪み、回帰する価格、偏在する流動性。
これらは、速度よりも観測力と設計力が活きる領域です。


2. 感覚ではなく、分布で判断する

一度でも成功すると、「この戦略は行ける」と思ってしまいます。
逆に数回失敗すると、「やはり無理だ」と感じてしまいます。

しかし、単発の結果はノイズです。

個人botterが持つべき姿勢は、

  • 成功の分布を見る
  • 失敗の分布を見る
  • 中央値とテールを確認する

という、統計的な視点です。

EVを測るとは、
感情を排除して分布を読むことです。


3. 終了条件を設計する

探索が終わらないことほど、資本と時間を消耗するものはありません。

  • もう少しで取れそう
  • サイズを変えれば
  • チェーンを変えれば

この思考は無限に続きます。

だからこそ、

どこまでやれば撤退するか

を先に決める必要があります。

「この条件でサンプル500件、上位10%平均が正でなければ撤退」
といった基準を持つことで、研究は前進します。

撤退は敗北ではありません。
それは、非効率がないことを確定させた成果です。


4. AIは加速装置であって、判断装置ではない

AIは強力です。

  • 設計を整理してくれる
  • コードを生成してくれる
  • ロジックを構造化してくれる

しかし、AIは市場で実行していません。

個人botterにとって重要なのは、

AIを使って加速するが、結論は必ず自分で確定する

という姿勢です。

AIが示したレンジや閾値は仮説です。
データがそれを肯定するか否定するかを見極めるのは、自分の役割です。


5. 小さく測り、小さく試す

いきなり本番サイズで勝負する必要はありません。

  • EV-Bで測る
  • 最小サイズでEV-Cを試す
  • 分布を確認する

このステップを踏むことで、
無駄な損失を抑えつつ、事実を積み上げることができます。

個人botterの最大の強みは、
機動力と柔軟性です。


6. 「勝てる市場」を探すのではなく、「勝てない市場」を確定する

意外に思えるかもしれませんが、
生き残るためにはこの発想が重要です。

勝てる市場を見つけることは難しい。
しかし、勝てない市場を排除することは可能です。

  • EVが0を上回らない
  • 持続runが出ない
  • MEVに抜かれる

これらを事実として確定させることで、探索範囲は縮小します。

縮小した先に、本当に戦える場所が見えてきます。


7. 個人botterの武器は「一貫性」

最終的に、個人botterを支えるのは、

  • 派手な一撃
  • 偶然の成功

ではなく、

一貫した検証プロセス

です。

構造を観測し、
EVを測り、
判定基準で白黒をつける。

このプロセスを繰り返すことで、
戦略は洗練されていきます。


DeFiは過酷な環境です。
しかし、個人であることは弱みではありません。

速度で勝てなくても、構造で測れる。
資本が少なくても、設計で守れる。
AIを使っても、思考を手放さない。

それが、個人botterが生き残るための設計思想です。

-Bot, DEX, 開発ログ