Bot CEX DEX 開発ログ

🛠️開発記録#563(2026/9/7)CEX-DEX横断研究の更新|「見える」のに「取れない」仮説をどこで切るか

こんにちは、よだかです。

ここしばらく、BinanceなどのCEXとHyperliquidを横断して、価格変化がどのように伝わるのかを調べていました。

出発点にあった仮説はかなり単純です。

CEXとHyperliquidでは市場の仕組みが違う。
それなら、片方で起きた価格変化がもう片方へ反映されるまでに、わずかな時間差が残るのではないか。

実際に観測を続けると、

Binanceが先に動き、その後Hyperliquidが同じ方向へ追随する

という現象はかなり見えるようになりました。

別期間のデータを使ったOOS(Out-of-Sample:開発時とは別のデータで再現するか確かめる検証)でも、この傾向は再現しています。

では、これはbotで取れるedgeなのか。

今回、ようやくそこまで検証を進めました。

結論から書くと、

価格の追随遅延は見える。
しかし、個人botterが実際に注文を出して往復するところまで落とすと、現時点ではかなり厳しい。

という結果になりました。

そのため、この研究はactiveな研究対象から外し、WATCH_ONLY(常時研究は止め、市場条件が変わったときに再評価する状態)へ移しています。

今回は、なぜ「見えている仮説」をあえて切ったのかを書いてみます。


「見える」と「取れる」は別の話

以前の記事でも、

市場の現象を観測できることと、その現象をbotで利益へ変えられることは別

という話を書きました。

関連記事
🛠️開発記録#558(2026/9/1) 高頻度なら細かいほどいい?|個人botterの「必要十分な観測粒度」を具体例で考える話

続きを見る

今回の研究は、まさにその続きになりました。

最初に確認したかったのは、

Binanceの値動きに対してHyperliquidが遅れて動く現象そのものが、本当に再現するのか

です。

そのためにBinanceとHyperliquidのmarket dataを同じPCで受信し、local monotonic clock(PC内部で時間が逆戻りしない時計)を使って受信順序を並べています。

ここで注意したいのは、今回測っているものを

true exchange latency

と呼んでいないことです。

取引所内部でイベントが発生してから何msで届いたかを直接測っているわけではありません。

あくまで、

自分の観測環境から見たとき、Binance側の変化が先に観測され、その後Hyperliquid側が追随しているか

を調べています。

この範囲では、現象はかなりはっきりしてきました。


まずは「価格差が残っているか」を見た

今回使った24時間データでは、Binance側の価格変化を次のように定義しています。

  • baseline_lookback = 1s
  • shock threshold = 2bps
  • cooldown = 5s

bps(basis point)は価格変化率の単位で、1bps = 0.01%です。

つまり大まかには、

直近1秒を基準としてBinanceが2bps以上動いたイベントを拾い、同じ値動きを何度も数えないよう5秒間のcooldownを入れる

という定義です。

ここから、Hyperliquid側にまだ価格の追随余地が残っているかを調べました。

ただし、単純にmid price(買い気配と売り気配の中間値)同士を比較しても、実際にbotがその価格で売買できるとは限りません。

そこで、

executable-side residual

を見るようにしました。

難しそうな名前ですが、意味は単純です。

上昇方向なら実際に買う価格であるask、下落方向なら実際に売る価格であるbidを使い、

実際に注文を出す側の価格で見ても、まだ追随しきっていない価格差が残っているか

を確認しています。

この段階では、結果はかなり強く見えました。

100〜300ms付近では、実行側residualの中央値がおおむね2.3bps程度残っています。

300ms時点でもpositive residual rateは約98%。

さらに、BBO(Best Bid and Offer:板の最良買い気配・最良売り気配)に表示されているsizeも確認しました。

300ms時点では中央値で約0.78 BTC。

ここまでを見ると、

「思ったより残っているな」

という印象でした。

ただし、時間を伸ばすと別のものが見えてきます。

500msではvisible sizeの中央値が約0.08 BTC。

1000msでは約0.0055 BTCまで減少しました。

つまり、

価格差そのものが完全に消える前に、実際に触れそうな板の量がかなり減っている

可能性があります。

なお、このvisible sizeはあくまで画面上のtop-of-bookに見えていた数量です。

その全量を自分が確実に約定できる、という意味ではありません。


ここまでは、まだ「入れそう」に過ぎない

この段階で、一度かなり期待しました。

ただ、ここには大きな問題が残っています。

botはentryしたら、最終的にexitしなければならない。

「その瞬間に割安な価格が見えている」だけでは、利益になりません。

そこで次の検証では、分析方法をもう一段実際の取引に近づけました。

重要なのは、前段階で見つけた「良さそうな440件」だけを使わなかったことです。

良い結果が出たイベントを後から選んでsimulationすると、look-ahead bias(未来の情報を使って都合のよいイベントを選ぶ偏り)が入ります。

そこで改めて、

Binance 2bps crossing + 1s lookback + 5s cooldown

だけでイベントを作り直しました。

Hyperliquid側に価格差が残ったかどうかは、イベントの採用条件に入れていません。

その結果、

ALL_ELIGIBLE_BINANCE_SHOCKS = 446

となりました。

そこから、

signalを観測する
→ 一定のlatency(注文が届くまでの遅延)を置く
→ HyperliquidのBBOでentryする
→ 一定時間保有する
→ 反対側のBBOでexitする

という順番でoffline simulationを行いました。

300msのlatencyを置いても、422件はentry候補として残っています。

つまり、

現象の頻度そのものが少なすぎたわけではありません。


entryとexitを入れたところで景色が変わった

ここからが今回の判断材料になった部分です。

買う場合はaskでentryして、売るときはbidでexitする。

売りから入る場合はその逆です。

つまり、mid priceではなく、

実際に往復するときに触る価格

を使いました。

例えば、500ms保有したケースでは次のようになりました。

注文到達までの想定latencygross PnL中央値2bps cost scenario後
100ms+0.376bps-1.624bps
200ms+0.754bps-1.246bps
300ms+0.879bps-1.121bps

ここでいうgross PnLは、entryとexitの実行側BBOを使った、コスト控除前の損益proxyです。

そして2bps cost scenarioは、

実際の自分のfeeが2bpsだと確定した

という意味ではありません。

fee、slippage、そのほかの摩擦を含めて往復で2bps程度かかった場合に、どの程度耐えられるのかを見るための仮定です。

0bps / 1bps / 2bps / 3bps / 5bpsと複数のscenarioを置いて確認しました。

結果として、1bpsでもかなり弱くなり、2bpsでは中央値がすべてマイナス。

500ms保有という比較的grossが残った条件でも、2bps cost後にプラスだった割合は、

  • 100ms latency:9.1%
  • 200ms latency:11.4%
  • 300ms latency:19.0%

でした。

なお、この表だけを見て、

「300ms遅い方が100msより有利」

とは解釈していません。

latencyごとにentry候補やentry時点、そこからのexit時点が少しずつ変わるためです。

ここで確認したいのは最適なlatencyではなく、

現実的な遅延と往復価格を入れてもedge候補が頑健に残るか

です。

その意味では、かなり弱い結果でした。


価格の方向を当てても、利益になるとは限らない

もう一つ気になったのがadverse selectionです。

adverse selectionはここでは、

注文を出した直後に、自分にとって不利な方向へ価格が動くこと

くらいの意味です。

100ms latency / 200ms holdでは、adverse moveの割合が74.4%ありました。

保有時間を500ms程度まで伸ばすと、HyperliquidがBinance側へ追随してgross PnLは改善します。

しかし、そこまで待ってもコストを含めると余地は弱いままです。

つまり今回見えていたのは、

Binanceの値動きがHyperliquidへ伝わる方向をある程度読めること

と、

その予測を、自分が実際に売買して利益へ変換できること

の間にある距離でした。

「ラグがない」と結論したわけではない

ここは今回の研究でかなり大事なところです。

最終判定は、

TRADEABLE_EDGE_CONFIRMED = NO

です。

しかし、

Binance → Hyperliquidの追随現象が存在しなかった

とは結論していません。

むしろ、現象そのものはかなり頻繁に見えています。

今回切ったのは、

この現象を個人botter向けのedgeへ変えるために、さらに研究資本を投入する価値がある

という方です。

実fill(本当に注文が約定するか)、queue position(板の中で自分が何番目に並ぶか)、実際のfee tier、production環境でのlatencyなど、まだ調べていないものはあります。

ただし、それらをさらに精密に調べる前の段階で、

すでに往復のgrossが弱く、少しコストを置くだけで優位性がかなり消える

ところまで確認できました。

そこからさらに実運用条件を加えて、状況が大幅に良くなることを期待して研究を続けるのは、少なくとも今の自分には期待値が低いと判断しました。


仮説を「否定」するのではなく、研究優先度を落とす

そこで、この研究は、

WATCH_ONLY

へ移しました。

完全に捨てるわけではありません。

例えば今後、

  • 300〜500msでも残る価格差が大きくなる
  • visible sizeが増える
  • feeやspreadなどの取引条件が改善する
  • Hyperliquid側のmarket microstructure(市場の注文処理構造)が変わる
  • Binance以外のCEXから、より強いleadが見つかる

といった変化があれば、再び研究を開く余地はあります。

ただ、それまではactiveな研究対象から外します。

この判断に合わせて、repo側も整理しました。

canonical raw(再検証の元になる生データ)と最終的なEvidence Packは残しつつ、rawから再生成できるcommon timelineや途中版artifactなどを整理。

約9.4GBのrebuildable derived/cacheを削除しました。

「容量を減らすこと」そのものが目的ではありません。

再開するために必要な証拠は残し、今の判断に不要な処理や保存物は抱えない

という整理です。


振り返ると、「取れるか?」へ戻るのが少し遅かった

今回の研究過程には、別の反省もあります。

途中から、

  • 観測機が正しく動いているか
  • timestampは十分か
  • 24H Runは壊れていないか
  • 保存方式は適切か
  • 再生成したデータは一致するか

といった確認に、かなり時間を使うようになっていました。

もちろん必要だったものも多いです。

実際、OOS検証やcanonical rawの確保、ストレージ問題への対応がなければ、今回の結果そのものを信用できません。

ただ、

「見えるか?」を十分確認した後も、観測側を磨く運転モードが少し長く残っていた

可能性はあります。

今回、

「今のデータで何が見えるのか」

「それを実際に往復したら何が残るのか」

へ問いを戻してからは、研究判断がかなり速く進みました。

この研究過程そのものの振り返りは、また別の機会に掘ってみたいと思います。

以前、AIを使った研究が進みすぎて、自分自身が何を検証しているのか説明できなくなりかけたときにも、一度研究そのものを監査しました。

関連記事
🛠️開発記録#554(2026/8/27)AIと進めていたアルゴ研究を一度止めて、研究そのものを監査した話

続きを見る

今回も少し違う形で、

研究を進めることと、研究判断を前へ進めることは必ずしも同じではない

と感じています。


「見えた」だけでは、研究を続ける理由にならない

今回のCEX–DEX横断研究では、

仮説の一部はかなりうまくいきました。

Binanceが先に動き、Hyperliquidが後から追う。

別期間でも再現する。

かなりの頻度で起きる。

実行側の価格で見ても、短い時間なら残差がある。

ここまでなら、むしろ「成功した仮説」と言ってもいいかもしれません。

でも、自分が欲しかったのは、

面白い市場現象を見つけることではなく、個人botterが取れるedgeを探すこと

です。

entryして、exitして、摩擦を入れる。

そこまで進めると、今回の仮説は自分が求めていた条件を通りませんでした。

だから、一旦切ります。

仮説を切るというのは、

「間違っていた」と断定することだけではない

のだと思います。

現象は存在する。

研究にも意味はある。

それでも、

今ここへ、自分の限られた研究資本を置き続ける理由はあるか。

と考えたときに答えが弱いなら、別の戦場へ移る。

今回は、そういう形で一つの研究を閉じました。


先行研究・参考資料

今回確認したBinanceとHyperliquidのlead-lag(どちらが先に価格変化するか)そのものは、新規の発見を主張できるものではありません。

より大規模な外部分析でも、BinanceがHyperliquidを先行する傾向が報告されています。

Arrakis Finance|Why Hyperliquid Lags Binance: Perp DEX Lead-Lag Analysis

29のperpetual marketを対象にBinance、Hyperliquid、Lighterのlead-lagを分析した2026年の調査です。Binanceが29銘柄すべてでHyperliquidを先行し、Hyperliquidとのlagは多くの銘柄で600〜700ms付近、BTCでは約800ms付近にピークがあると報告しています。

Arrakis Financeの記事を読む

Boon Chuan Lim|Binance Leads, but Some Wallets Anticipate: Wallet-Level Cross-Venue Informed Flow in BTC Perpetual Futures

BinanceとHyperliquidのBTC perpetual futuresを比較した2026年のpreprintです。venue levelでは、検証したprice-discovery windowすべてでBinanceがHyperliquidを先行したと報告しています。

SSRNで論文を見る

-Bot, CEX, DEX, 開発ログ