Trading and Execution

BTC の大口執行で実効価格はどれだけずれるか — 公開データで測れる範囲

国内 3 取引所(bitbank / bitFlyer / Coincheck)の BTC/JPY 板を 48 時間観測した実測。1 億円の買い成行で実効価格は最良気配から中央値 8.61〜117.49bps ずれ、サイズ 10 倍で乖離は 5.82〜21.95 倍。公開 API で算出できる上限も取引所で異なります。

加藤 豪輝

Futaba Lab 代表/Futaba Market Structure Research

[プロフィールを見る]
約23分

この記事の要点

  1. 国内 3 取引所(bitbank / bitFlyer / Coincheck)の BTC/JPY 現物の板を、2026 年 9 月 9 日〜11 日の 48 時間・10 秒間隔で観測した
  2. 1 億円の買い成行で、実効価格が最良売り気配から乖離する幅の中央値は 3 社で 8.61〜117.49bps だった(1 億円の注文では 100bps が 100 万円に相当)
  3. 注文サイズを 1,000 万円から 1 億円へ 10 倍にすると、乖離の中央値は 5.82〜21.95 倍に増え、線形(10 倍)の両側に分かれた
  4. 公開 API の板から算出できた注文サイズは、bitbank と Coincheck が 1 億円まで、bitFlyer が 5 億円までで、API が返す板の範囲と対応している

金融機関から見た重要なポイント

本分析の 3 取引所では、1 億円の規模で最良気配による試算は実効価格を中央値で 8.61〜117.49bps 過小に見積もることになります*1。本記事が示すのは、執行サイズごとに見込むべき乖離の幅と、公開データで板の厚みを確認できる規模の範囲です。

最良気配は「表示値」であり、まとまった金額を成行で執行したときの約定価格ではありません。成行注文は板の複数の段を順に消費するため、実際に支払う加重平均価格は最良気配より不利になります。本記事ではこの加重平均価格を実効価格と呼び、最良売り気配からの乖離を bps で示します。最良気配と実効価格の概念の違いそのものは別稿で扱います。

実務上の論点は 3 つです。第一に、自分の執行サイズに対して乖離がどの幅で分布するか。第二に、サイズを増やしたときに乖離がどの速さで増えるか。第三に、公開データで確認できるのはどの規模までか。本分析では、2026 年 9 月 9 日〜11 日の 48 時間に国内 3 取引所の BTC/JPY 板を 10 秒間隔で取得し、この 3 点を実測しました。3 点目の論点は見落とされやすい点です。板が薄いのか、API が板を返していないのかは公開データからは区別できない場合があり、区別できない範囲を外挿すると見積もりの根拠が失われます。

対象データと分析条件

本分析は、次の条件で取得した公開 API の板データに基づきます。

項目 内容
対象 BTC/JPY 現物の板 3 板。bitbank btc_jpy / bitFlyer BTC_JPY / Coincheck btc_jpy
観測期間 2026-09-09 20:35:56 〜 2026-09-11 20:35:46 JST(3 社の共通期間 47.997 時間、水曜夜〜金曜夜、週末を含まない)。板 API は取得時点の板だけを返すため、観測は収集を開始した時点から始まる
取得間隔 10 秒。期待スナップショット数 17,280 / 社(48 時間 × 10 秒間隔から算出)
板の取得 各社の公開 REST API(bitbank GET /btc_jpy/depth、bitFlyer GET /v1/board?product_code=BTC_JPY、Coincheck GET /api/order_books)。段数は各社の API が返したまま保存
執行方向 買い(ask 側を安い順に消費)のみ。売り(bid 消費)は算出していない
実効価格の定義 VWAP(N) = Σ(price × size) / Σ(size)。ask を安い順に N 円分消費した加重平均価格。最後の段は残額分だけ使う。VWAP は Volume Weighted Average Price(出来高加重平均価格)
主指標 最良売り気配からの乖離 dev_best_bps = (VWAP(N) − best_ask) / best_ask × 10,000。本文の bps はすべてこの値
副指標 mid からの乖離 dev_mid_bps = (VWAP(N) − mid) / mid × 10,000。mid は段の除外前の (best_ask + best_bid) / 2。往復実効スプレッドを扱う別稿との接続にだけ使う
サイズ梯子 1,000 万 / 3,000 万 / 5,000 万 / 1 億円(3 社共通)+ 2 億 / 5 億円(算出できる取引所だけ)
約定し得ない段の除外 mid から ±10% を超える段を除外し件数を記録。数量 0 の段は捨てて件数を記録
無効スナップショット crossed(best_bid ≥ best_ask)、quoted spread(最良気配スプレッド。最良 bid と最良 ask の差を mid で割った値)が 1,000bps 超、片側が空、非有限値を含む板を除外
fill rate と表示規則 fill rate = API が返した板(除外後)を消費して N 円に到達したスナップショットの割合。90% 以上を full として値を示す。50〜90% は partial として fill rate のみ記す。50% 未満は値なし。標本 21 件未満は値を出さない。埋まらない板の値は分布に入れない
手数料・FX 手数料を含まない。円建てのため FX は使わない
統計量 中央値 / p25 / p75 / p95 / 最大値。p25・p75・p95 はそれぞれ 25 / 75 / 95 パーセンタイル(観測値を小さい順に並べたとき下から 25% / 75% / 95% の位置にある値、線形補間)。bps・倍率は小数 2 桁、fill rate は小数 4 桁、円は整数に丸める
有効スナップショット bitbank 17,274 / bitFlyer 17,274 / Coincheck 17,279

有効スナップショットは 3 社で 17,274〜17,279 件です。欠測と、無効として除外した板の内訳は注記に示します*3。生データは 3 社の公開 API から取得した板スナップショットで、集計はコードで行いました*4。板の掃除・fill rate・標本数の規約は、国内と海外の往復実効スプレッドを扱った別稿と同一で、本記事固有の閾値は作っていません*5。

収集間隔 10 秒(5 分間に 30 回)が公式の呼出制限内であることを一次情報で示せるのは bitFlyer のみです(HTTP API は同一 IP アドレスあたり 5 分間で 500 回)。bitbank と Coincheck の Public API の呼出制限はドキュメントに記載がありません。

公開 API が返す板の範囲

3 社のうち、公開 API が返す板の段数が公式ドキュメントで確定しているのは bitbank のみです。板の深さを比較する前提として、この違いを先に示します。

取引所 ドキュメント上の段数 観測期間中の ask 段数(最小 / 中央値 / 最大)
bitbank 各 200 段と明記。原文「Asks and bids data is restricted to 200 entries each from best bid offer」 200 / 200 / 200
bitFlyer 記載なし。クエリパラメータは product_code のみで、段数上限・深さ指定・全板を返す旨の記述は日本語・英語版とも無い 1,194 / 1,346 / 1,436
Coincheck 記載なし。説明は「Fetch order book information.」のみで、パラメータは pair のみ 200 / 200 / 200

bitbank は「仕様で各 200 段」です。Coincheck は「観測期間中は常に 200 段が返ったが、仕様に記載が無い」ため、200 段が API の返却上限なのか板の末端なのかは判定できません。bitFlyer は段数上限の記載が無く、観測期間中は ask 1,194〜1,436 段が返りました。取得した板が全注文を含むかは公式ドキュメントで確認できません。このため bitFlyer については、板の全体ではなく実測の段数と名目のみを示します。

注文サイズ別の実効価格乖離

BTC/JPY を 1,000 万円から 1 億円まで買い成行で執行したときの実効価格の最良売り気配からの乖離は、中央値で bitbank 3.67 → 80.66bps、bitFlyer 1.48 → 8.61bps、Coincheck 9.24 → 117.49bps でした*1。同じ板で消費額を増やせば加重平均価格は下がらないため、サイズとともに乖離が増えること自体は定義上の帰結です。本分析で問題にするのは、増え方と、取引所間でその形が異なることです。

表の値は最良売り気配からの乖離の中央値で、単位は bps です。bps は 0.01% で、1 億円の注文では 100bps が 100 万円の差に相当します。

注文サイズ bitbank(bps) bitFlyer(bps) Coincheck(bps)
1,000 万円 3.67 1.48 9.24
3,000 万円 15.27 2.89 25.23
5,000 万円 25.45 4.35 46.44
1 億円 80.66 8.61 117.49(fill 99.98%)
2 億円 —(fill 84.21%) 39.15 —(fill 0.38%)
5 億円 —(fill 0%) 237.88 —(fill 0%)

fill rate の記載がないセルは 100%。「—」は fill rate が 90% 未満で値を示さないセルです*2。bitbank の 2 億円は 84.21% のスナップショットで埋まりましたが、埋まった板だけの分布は下方に偏るため水準として示しません。

注文サイズ 1,000 万円から 5 億円までの買い成行で、実効価格が最良 ask から乖離する幅(bps)の中央値を対数目盛の折れ線で示し、p25〜p75 を帯で重ねた図。系列は bitbank、bitFlyer、Coincheck。bitbank と Coincheck は 1 億円まで、bitFlyer は 5 億円まで描かれ、線の傾きは取引所ごとに異なる。手数料除く。観測期間 2026-09-09 20:35〜2026-09-11 20:35 JST、10 秒間隔

bitFlyer の 2 億円と 5 億円は fill rate 100% で算出でき、中央値は 39.15bps と 237.88bps でした。bitbank と Coincheck には同じサイズの比較値がありません。1 億円から 2 億円、2 億円から 5 億円への倍率は本分析では算出していないため、値を並べるにとどめます。

5,000 万円と 1 億円で 3 社を対等に比較した結果

3 取引所すべてで fill rate 90% 以上で算出できたサイズのうち、実務で見積もりの対象になりやすい 5,000 万円と 1 億円の乖離の中央値は、5,000 万円で bitbank 25.45bps / bitFlyer 4.35bps / Coincheck 46.44bps、1 億円で bitbank 80.66bps / bitFlyer 8.61bps / Coincheck 117.49bps でした*1。fill rate は Coincheck の 1 億円が 99.98%(17,276 / 17,279 件)で、他はすべて 100% です。

中央値だけでなく分布の幅も添えます。5,000 万円の p25 / p75 / p95 は bitbank 14.89bps / 44.34bps / 62.86bps、bitFlyer 3.04bps / 5.81bps / 8.60bps、Coincheck 37.14bps / 54.55bps / 67.04bps でした。1 億円では bitbank 49.44bps / 105.49bps / 131.75bps、bitFlyer 6.71bps / 10.63bps / 18.69bps、Coincheck 101.45bps / 134.84bps / 165.13bps です。p25 と p75 の間、つまり観測の中央 50% だけを取っても、1 億円の乖離は bitbank で p25 49.44bps から p75 105.49bps まで動いていました。

往復の実効スプレッド(mid 基準)を扱う別稿と数値を接続する場合は、副指標の mid からの乖離を使います。1 億円の mid 基準の中央値は bitbank 80.80bps / bitFlyer 10.12bps / Coincheck 118.19bps、1,000 万円では bitbank 3.78bps / bitFlyer 3.05bps / Coincheck 9.94bps でした。主指標との差は分母と基準点の違い(最良売り気配か mid か)によるもので、式の上ではおおむね最良気配スプレッドの半分に相当します。本記事の水準はすべて最良売り気配基準の主指標です。

同じサイズでも取引所により異なる乖離の幅

同じ注文サイズでも乖離の中央値の水準は取引所により異なり、3 社の幅(最大 − 最小)は 1,000 万円で 7.76bps、3,000 万円で 22.34bps、5,000 万円で 42.09bps、1 億円で 108.87bps と、サイズが大きいほど広がりました*1。

注文サイズ 3 社の中央値の範囲(bps) 幅(最大 − 最小、bps)
1,000 万円 1.48〜9.24 7.76
3,000 万円 2.89〜25.23 22.34
5,000 万円 4.35〜46.44 42.09
1 億円 8.61〜117.49 108.87

1,000 万円では 3 社の中央値がいずれも 10bps 未満に収まりますが、1 億円では 100bps 以上の幅になります。小さいサイズで取引所間の差が見えにくくても、サイズを上げると差が開くということです。

本記事は、この幅から取引所の順位づけや執行先の推奨を導きません。理由は 2 つあります。板の厚みは時点で変わり、48 時間の観測は 1 回の標本にすぎないこと。そして本記事の値は板の気配値からの算出であり、約定実績ではないことです。幅そのものは、執行サイズごとに取引所差を確認する必要があることを示す指標として使います。

サイズを 10 倍にすると乖離は何倍になるか

注文サイズを 1,000 万円から 1 億円へ 10 倍にしたとき、最良売り気配からの乖離の中央値は bitbank で 21.95 倍、bitFlyer で 5.82 倍、Coincheck で 12.71 倍になりました*1。線形(10 倍)を挟んで両側に分かれており、乖離は注文サイズに比例しません。

倍率には 2 つの算出方法があり、本記事は両方を示します。「中央値の比」は 1 億円の中央値を 1,000 万円の中央値で割った値です。「同一スナップショット内の比の中央値」は、各スナップショットで 1 億円の乖離を同じ板の 1,000 万円の乖離で割り、その比の中央値を取った値です。1,000 万円が最良 1 段で埋まって乖離が 0 になった板(bitbank 914 件、bitFlyer 235 件、Coincheck 45 件)は後者から除外しています。

取引所 中央値 @ 1,000 万円(bps) 中央値 @ 1 億円(bps) 中央値の比 同一スナップショット内の比の中央値 同 p25 / p75 標本
bitbank 3.67 80.66 21.95 倍 16.45 倍 10.39 / 33.00 16,360
bitFlyer 1.48 8.61 5.82 倍 5.78 倍 3.81 / 9.96 17,039
Coincheck 9.24 117.49 12.71 倍 12.87 倍 9.54 / 17.24 17,231

同一スナップショット内で、注文サイズ 1,000 万円から 1 億円に増やしたときに最良 ask からの乖離が何倍になるかの度数分布を、bitbank、bitFlyer、Coincheck の 3 段に分けて対数目盛で示した図。10 倍(比例)の位置に破線、各社の中央値に実線を置き、100 倍以上は右端にまとめている。bitFlyer の分布は 10 倍より左に、Coincheck と bitbank の分布は 10 倍より右に中心がある。分母 0 の板は除外し件数を注記。観測期間 2026-09-09 20:35〜2026-09-11 20:35 JST、10 秒間隔

bitbank は「中央値の比」21.95 倍と「同一スナップショット内の比の中央値」16.45 倍の差が 3 社で最も大きく、2 つの指標に開きがあるため、本記事では「約 20 倍」のような 1 つの値にまとめず、両方を示します。1,000 万円の中央値が 3.67bps と小さく、分母の分布(p25 1.70 / p75 7.28bps)の広がりが比を不安定にしているためです。同一スナップショット内の比も p25 10.39 倍から p75 33.00 倍まで広がっており、bitbank ではスナップショットにより倍率が大きく異なりました。

この対で 10 倍を超えたのは bitbank と Coincheck です。bitFlyer は中央値の比 5.82 倍、同一スナップショット内の比の中央値 5.78 倍で、同一スナップショット内の比の p75(9.96 倍)も 10 倍を下回りました。したがって「乖離は線形より速く増える」を 3 社に共通する結論にはしません。本分析で言えるのは、乖離はサイズに比例せず、その増え方は取引所により 10 倍の両側に分かれるということまでです。

倍率が 10 倍を超える形は、最良気配付近の厚みに対して奥の段が薄い板と整合し、10 倍を下回る形は、板の厚みが奥まで比較的一様に続いていることを示唆します。ただし板の形状(段ごとの数量分布)は本分析では集計しておらず、この説明は推論にとどまります。また、倍率を算出した対は 1,000 万円 → 1 億円の 1 対のみで、他の対の倍率は算出していません。

公開データで測れる範囲の上限

公開 API の板から fill rate 90% 以上で算出できた最大の注文サイズは、bitbank 1 億円、bitFlyer 5 億円、Coincheck 1 億円でした*1。梯子は 1,000 万 / 3,000 万 / 5,000 万 / 1 億 / 2 億 / 5 億円で、上限はこの粒度での値です。1 億円と 2 億円の間は測っていません。

取引所(bitbank、bitFlyer、Coincheck)× 注文サイズ(1,000 万〜5 億円)の fill rate を格子で示した図。セルは full(90% 以上)、partial(50〜90%)、none(50% 未満)で塗り分け、埋まったスナップショット数と分母を併記。bitbank は 1 億円まで full で 2 億円が partial、bitFlyer は 5 億円まで full、Coincheck は 1 億円まで full で 2 億円以上が none。観測期間 2026-09-09 20:35〜2026-09-11 20:35 JST

注文サイズ bitbank bitFlyer Coincheck
1,000 万〜5,000 万円 100%(17,274 / 17,274) 100%(17,274 / 17,274) 100%(17,279 / 17,279)
1 億円 100%(17,274 / 17,274) 100%(17,274 / 17,274) 99.98%(17,276 / 17,279)
2 億円 84.21%(14,546 / 17,274) 100%(17,274 / 17,274) 0.38%(66 / 17,279)
5 億円 0%(0 / 17,274) 100%(17,274 / 17,274) 0%(0 / 17,279)

fill rate(埋まった有効スナップショット数 / 有効スナップショット数)。90% 以上を full、50〜90% を partial、50% 未満を none とし、full の梯子だけ乖離の水準を示します*2。

bitbank の 2 億円は 84.21% の観測で API が返した板の範囲内に収まりましたが、90% に届かないため partial とし、乖離の水準は示しません。Coincheck の 2 億円は 0.38%(66 件)で none です。両社の 5 億円は 1 件も埋まりませんでした。「2 億円を執行できない」という意味ではなく、公開 API が返した板だけでは 2 億円分の実効価格を 90% 以上の観測で算出できなかったという意味です。

200 段の名目が決める算出上限

bitbank と Coincheck で 2 億円の fill rate が 100% にならないのは、API が返す 200 段の ask 側の名目(各段の価格 × 数量の合計)が 2 億円を下回るスナップショットがあるためです。観測期間中、bitbank の 200 段の ask 名目は約 1.53 億〜2.90 億円(中央値 約 2.19 億円)、Coincheck は約 0.90 億〜2.05 億円(中央値 約 1.50 億円)の範囲を動きました*1。正確な値は次の表のとおりです。

bitbank、bitFlyer、Coincheck の公開 API が返した ask 側の板の名目(mid +10% 以内、円)の分布を箱ひげで示した図。箱は p25〜p75、中線は中央値、ひげは最小〜最大で、1 億円・2 億円・5 億円の水平線を重ねている。bitbank と Coincheck の分布は 2 億円の線をまたぎ、bitFlyer の分布は 5 億円の線より上にある。観測期間 2026-09-09 20:35〜2026-09-11 20:35 JST、10 秒間隔

取引所 ask 段数(API 返却値) ask 名目 API 返却値 最小 / 中央値 / 最大(円) ask 名目 mid +10% 以内 最小 / 中央値 / 最大(円) 除外段数の中央値
bitbank 200 / 200 / 200 152,645,049 / 218,886,381 / 290,322,699 同左 0
bitFlyer 1,194 / 1,346 / 1,436 1,419,073,369 / 1,560,252,611 / 1,670,395,732 699,279,859 / 1,007,118,492 / 1,104,065,932 428
Coincheck 200 / 200 / 200 90,219,384 / 149,507,654 / 204,789,095 同左 0

有効スナップショットの分布。段数は最小 / 中央値 / 最大。

bitbank と Coincheck は 48 時間の全有効スナップショットで ask 側がちょうど 200 段で、mid +10% を超えて除外した段は 0 でした*5。したがって API 返却値の名目と除外後の名目は一致し、「200 段の名目が 2 億円未満」と「2 億円が埋まらない」は同じことを指します。bitbank では 84.21%(14,546 / 17,274 件)のスナップショットで 200 段の名目が 2 億円を上回り、fill rate はこの割合になりました。Coincheck では 200 段の名目の最大が約 2.05 億円で、2 億円を上回ったスナップショットは 66 件(0.38%)でした。

bitFlyer は 1,194〜1,436 段を返し、そのうち中央値で 428 段は mid +10% より外にあります。除外後でも ask 名目は約 6.99 億〜11.04 億円あり、5 億円が全有効スナップショットで埋まりました。API 返却値の名目(中央値 約 15.60 億円)をそのまま板の厚みと読むと、本記事の除外規約(mid +10%)の外にある段を含めて評価することになります。公開データを使う場合も同じ除外が要ります。

算出できない原因と板の薄さの区別

bitbank で 2 億円以上を算出できない直接の原因は、公開 API が最良気配から各 200 段までしか返さない仕様にあります。201 段目以降に板が存在するかは公開 API からは観測できないため、「板が 200 段で尽きている(板が薄い)」とは結論できません。同時に、「板は 201 段目以降にも存在する」とも断定しません。本分析で言えるのはここまでです。

bitbank の API 応答は 17,274 件すべてで段数がちょうど 200 でした(min = max = 200)。段数が一度も 200 を下回らなかったことは、API 側で 200 段に打ち切られていることと整合すると考えられます。ただし 200 段より外の注文の有無・数量は収集データに含まれておらず、この点は推論です。

Coincheck も全有効スナップショットで 200 段が返り続けましたが、段数の上限はドキュメントに記載がありません。200 段が API の返却上限なのか板の末端なのかは判定できず、201 段目以降は同様に観測できません。

bitFlyer は 5 億円が全スナップショットで埋まりましたが、取得した板が全注文を含むかは公式ドキュメントで確認できません。段数が 1,194〜1,436 段と変動することは固定段数での打ち切りが無いことと整合しますが、価格範囲などによる打ち切りが無いことまでは示しません。

実務上は、この区別が見積もりの扱いを分けます。bitbank と Coincheck の 2 億円以上は「板が薄いから高コスト」でも「板が厚いから低コスト」でもなく、「公開データでは測れない」領域です。測れない領域を 1 億円までの値から外挿すると、根拠の無い数値になります。

1 時点の板では水準を語れない理由

1 億円の買い成行で最良売り気配から乖離する幅は、同じ取引所でも p25 と p95 の間だけで bitbank 49.44〜131.75bps、bitFlyer 6.71〜18.69bps、Coincheck 101.45〜165.13bps とスナップショットにより動いており、1 時点の板から読んだ値は水準として使えません*1。48 時間・17,274〜17,279 件の分布は次の表のとおりです。

注文サイズ 取引所 p25 中央値 p75 p95 最大
5,000 万円 bitbank 14.89 25.45 44.34 62.86 139.14
5,000 万円 bitFlyer 3.04 4.35 5.81 8.60 63.63
5,000 万円 Coincheck 37.14 46.44 54.55 67.04 144.86
1 億円 bitbank 49.44 80.66 105.49 131.75 198.56
1 億円 bitFlyer 6.71 8.61 10.63 18.69 101.76
1 億円 Coincheck 101.45 117.49 134.84 165.13 242.29

単位 bps。最良売り気配からの乖離。分位点は線形補間。

分布の右裾は中央値に比べて長く伸びています。bitbank の 1,000 万円は中央値 3.67bps に対し p95 17.33bps・最大 45.81bps、bitFlyer の 1 億円は中央値 8.61bps に対し p95 18.69bps・最大 101.76bps でした。平均値は多くの梯子で中央値より大きくなりますが、bitbank の 1 億円は平均 78.64bps が中央値 80.66bps を下回る例外があり、全梯子に一般化はしません。

板の深さそのものも日をまたぐと動きます。2026 年 8 月 26 日に 1 回だけ取得した板では、bitFlyer の ask 名目は約 11.8 億円、Coincheck は約 2.3 億円でした。この 1 回の観測値は、48 時間分布の API 返却値の範囲(bitFlyer 約 14.19 億〜16.70 億円、Coincheck 約 0.90 億〜2.05 億円)の外にあります。bitFlyer は下に、Coincheck は上に外れています。1 回の観測がその後の 48 時間の範囲に入らなかったという事実は、1 時点の板を水準として使えないことの例です。不一致の原因(板の状態の変化か、API 側の変化か)は本記事では検証していません。

本記事が中央値と分位点で示すのはこのためです。見積もりに使うなら、中央値 1 点ではなく p25〜p75 や p95 を含む幅で持つことになります。

実運用上の意味

執行サイズに対して見込むべき乖離を、1 点の値ではなく分布の幅で持ち、公開 API で測れないサイズは「測れない」として扱うこと。この 2 点が本分析の結果を見積もりに使う際の要点です。

1 億円の買い成行で最良売り気配から乖離する幅は、3 社の中央値で 8.61〜117.49bps、p95 では 18.69〜165.13bps でした*1。1,000 万円から 1 億円への 10 倍で乖離の中央値は 5.82〜21.95 倍に増えます。公開 API の板から fill rate 90% 以上で算出できたのは bitbank と Coincheck が 1 億円まで、bitFlyer が 5 億円まででした。

実務での確認手順は次のとおりです。

  1. 想定する執行サイズを決め、そのサイズが公開 API の板で埋まる割合である fill rate を確認する — 埋まらない回がある取引所では中央値だけを見ても意味を持たない
  2. 最良気配ではなく、そのサイズを板で消費したときの加重平均価格で見積もる — 1 億円では最良気配との差が中央値で 8.61〜117.49bps
  3. 小さいサイズの値からの外挿をしない — 1,000 万円 → 1 億円の倍率は取引所により 5.82〜21.95 倍で、線形を仮定できない
  4. 公開 API が返す板の範囲を先に確認する — bitbank は仕様で各 200 段、Coincheck は実測で常に 200 段、bitFlyer は上限の記載なし。返却範囲の外は「測れない」として扱う
  5. 1 時点の板ではなく期間の分布を見る — bitbank の 1 億円は p25 49.44bps から p75 105.49bps まで動く
  6. 手数料を別途加える — 本記事の値は板の消費による乖離のみ

本記事は買い成行を一度に出した場合の板ベースの乖離だけを扱います。分割執行によるコストの変化、日本時間の時間帯による差、国内と海外の板の比較は、それぞれ別稿で扱います。どの取引所で執行すべきかの推奨は行いません。

Futaba Lab の見解

従来の金融市場と比較すると、暗号資産市場では取引所ごとに流動性や板の厚みが大きく異なります。そのため、画面上に表示されている最良気配だけを基準に大口注文を執行すると、想定以上に不利な価格で約定してしまう可能性があります。

重要なのは、表示価格そのものではなく、注文金額に応じて板のどこまで消費するのかを考慮した「実際に執行可能な価格」を評価することです。

今回の分析でも、注文金額の増加に対して実効価格の乖離は必ずしも比例せず、取引所ごとに異なる非線形な変化を示しています。したがって、少額の注文における執行コストを単純に拡大して大口注文のコストを推計するのではなく、実際の板の深さをもとに、注文金額ごとの平均約定価格を推計することが重要です。

さらに、流動性やスプレッドは市場環境や時間帯によっても変化するため、同じ取引所・同じ注文金額であっても、執行コストが常に一定とは限りません。

こうした特性を踏まえると、特に大口取引では、成行注文を単純に一括執行するのではなく、複数の取引所の流動性を比較し、必要に応じて注文の分割や執行タイミングの調整を行うことが、より良い執行価格を実現するうえで重要だと考えています。

Futaba Lab では、このような板の深さ、注文サイズ、市場環境を総合的に評価し、表示価格ではなく実際の執行コストを基準とした最良執行の実現を目指しています。

本分析の限界

  • 観測は平日 48 時間の 1 回です。2026 年 9 月 9 日〜11 日(水曜〜金曜)の観測で、週末・月末・高ボラティリティ局面を含みません。2 日間の日間差は集計しておらず、48 時間の中央値を長期の水準として読むことはできません
  • 板の気配値からの算出であり、約定実績ではありません。見えない流動性(アイスバーグ注文等)、注文到達までの板の変化、自己の注文が板に与える影響は含みません。板から算出した値と実際の約定コストの一致は検証していません。収集間隔は 10 秒で、板の変化はそれより速いため、スナップショットは板の状態の標本です
  • 買い(ask 消費)のみで、売りは算出していません。手数料も含みません。手数料込みの総コストは本記事の範囲外です
  • bitbank は観測中に 4 サイクル(65.2 秒)欠測しています(coverage 99.98%)。bitFlyer は crossed 5 件を無効として除外しました。いずれも補完していません。時刻と内訳は注記に示します*3
  • bitbank / Coincheck の 201 段目以降は公開 API から観測できず、板の有無を断定できません。bitFlyer は段数上限の記載がなく、取得した板が全注文を含むかは確認できません。REST API と Realtime API で返る深さが同じかどうかも検証していません
  • 段の除外閾値(mid ±10%)・fill rate 規約(90% 以上を full)・標本数下限 21 は往復実効スプレッドを扱った別稿と同一です。閾値の感度は測っていません。閾値を変えると bitFlyer の mid +10% 以内の名目と 5 億円の fill rate は変わりえます。bitbank / Coincheck は除外段 0 のため影響しません
  • 非線形性の指標は 1,000 万 → 1 億円の 1 対のみです。他の対の倍率は算出していません。倍率の差を生む機序(板の形状)は集計しておらず、本文の説明は推論です。「中央値の比」と「同一スナップショット内の比の中央値」は一致せず、bitbank で差が最も大きい(21.95 倍 / 16.45 倍)ため両方を示しています
  • 呼出制限の公式根拠は bitFlyer のみです。bitbank / Coincheck の Public API の呼出制限はドキュメントに記載がなく、bitbank のサポート FAQ は HTTP 403 で取得できませんでした。limit 等のパラメータによる段数拡張、WebSocket、取引所への問い合わせは行っていません
  • 3 社分の生データを本記事側で独立に再検証していません。元データセットの全行検証(判定 WARNING)と、複製時のファイルのハッシュ照合(147 / 147 件一致)に依拠しています*4
  • 生データと集計結果の参照先は本稿に掲載していません。生データは 3 社の公開 API から取得した板スナップショットで、集計はコードで行いましたが、本稿の数値を読者が同じデータで再計算する手順は示していません

結論できないこと

本分析の範囲では、次の事項を結論できません。

  • 実際に成行注文を出した場合の約定価格・約定率 — 板の気配値からの算出であり、約定履歴を収集していない
  • bitbank と Coincheck の 2 億円以上の実効価格 — bitbank 2 億円は fill rate 84.21%、5 億円は 0%。Coincheck 2 億円は 0.38%、5 億円は 0%。公開 API が返す範囲の外
  • bitbank / Coincheck の 201 段目以降に板が存在するか — 公開 API から観測できない。Coincheck は 200 段が API の返却上限か板の末端かも判定できない
  • bitFlyer の板が全注文を含むか — 段数上限の記載がなく、全板を返す旨の記述も無い
  • 「3 社すべてで乖離は線形より速く増える」 — bitFlyer は 1,000 万 → 1 億円で 5.82 倍(10 倍未満)。言えるのは「比例しない。10 倍の両側に分かれる」「bitbank / Coincheck はこの対で 10 倍超」まで
  • bitFlyer の 1 億 → 2 億円、2 億 → 5 億円の倍率 — 算出していない
  • 倍率の差を生む機序 — 板の形状(段ごとの数量分布)を集計していない
  • 時間帯・曜日・週末・高ボラティリティ局面での乖離 — 時間帯別の集計は結論に使っておらず、週末・高ボラ局面は観測に含まれない。時間帯差は別稿の主題
  • 分割執行した場合の総コスト — 単発の成行のみ算出。別稿の主題
  • 48 時間の水準が長期に成立するか — 1 回の観測。2026 年 8 月 26 日の単発観測は 48 時間分布の範囲外にあった

FAQ

Q. 最良気配の価格と、実際に大口を執行したときの価格は何が違うか

最良気配は板の一番上の 1 段の価格で、成行注文はその段を消費し尽くすと次の段へ進みます。まとまった金額の約定価格は消費した段の加重平均になり、最良気配より不利になります。本分析では、1 億円の買い成行でこの加重平均価格が最良売り気配から乖離する幅の中央値が 3 社で 8.61〜117.49bps でした*1。概念の整理は別稿で扱います。

Q. 注文サイズを 10 倍にすると、乖離は何倍になるか

1,000 万円から 1 億円への 10 倍で、最良売り気配からの乖離の中央値は bitbank 21.95 倍(同一スナップショット内の比の中央値 16.45 倍)、bitFlyer 5.82 倍(5.78 倍)、Coincheck 12.71 倍(12.87 倍)でした*1。線形の 10 倍を挟んで両側に分かれており、比例しません。他のサイズの対の倍率は算出していません。

Q. 公開データで板の厚みを確認できるのはどの規模までか

公開 API の板から fill rate 90% 以上で算出できた最大の注文サイズは、bitbank 1 億円、bitFlyer 5 億円、Coincheck 1 億円でした*1。梯子は 1,000 万 / 3,000 万 / 5,000 万 / 1 億 / 2 億 / 5 億円です。bitbank と Coincheck は API が返す 200 段の名目が 2 億円を下回るスナップショットがあり、2 億円の fill rate は 84.21% と 0.38% でした。この上限は板が薄いことを意味せず、201 段目以降は公開 API から観測できません。

Q. 取引所によって乖離はどれだけ違うか

同じサイズでの 3 社の中央値の幅(最大 − 最小)は 1,000 万円で 7.76bps、1 億円で 108.87bps でした*1。サイズが大きいほど幅は広がります。本記事はこの幅から取引所の順位づけや推奨を行いません。

Q. 時間帯によって乖離はどう変わるか

本記事では結論しません。時間帯別の分析は別稿で扱います。本記事の値は 48 時間全体の分布です。

注記

*1 算出条件。対象は bitbank / bitFlyer / Coincheck の BTC/JPY 現物の板。執行方向は買い成行(ask 側を安い順に消費)のみ。実効価格は注文金額分を消費したときの加重平均価格で、乖離は最良売り気配を基準に bps で算出。手数料を含まない。観測期間は 2026-09-09 20:35:56〜2026-09-11 20:35:46 JST(3 社の共通期間 47.997 時間、水曜夜〜金曜夜)、取得間隔 10 秒、有効スナップショット bitbank 17,274 / bitFlyer 17,274 / Coincheck 17,279 件。統計量は中央値・p25・p75・p95・最大値(分位点は線形補間)。bps と倍率は小数 2 桁に丸める。

*2 fill rate と表示規則。fill rate は、API が返した板(除外後)を消費して注文金額に到達したスナップショットの割合。90% 以上を full として乖離の値を示す。50〜90% は partial として fill rate のみ記す。50% 未満は値なし。標本 21 件未満は値を出さない。埋まらない板の値は分布に入れない。規約は国内と海外の往復実効スプレッドを扱った別稿と同一。

*3 欠測と除外。bitbank は 2026-09-11 05:42〜05:43 JST に 4 サイクル(65.2 秒)欠測し、取得 17,276 行・coverage 99.98%。補完していない。4 サイクルのうちエラーとして記録されているのは timeout 1 件で、残り 3 件は収集器がサイクル遅延として落としたもので、エラー記録の件数と欠けサイクル数は一致しない。bitFlyer は 2026-09-11 04:10〜04:11 JST に crossed(買い気配が売り気配以上)の板が 5 件あり、無効として除外。Coincheck は欠測・無効とも 0 件。3 社とも破損行と重複タイムスタンプは 0。いずれも元データセットの全行検証(判定 WARNING)の所見と一致する。

*4 生データの出所と対象 3 社の選定。生データは、国内と海外の往復実効スプレッドを扱った別稿の収集ジョブ(10 秒間隔 × 48 時間)から bitbank / bitFlyer / Coincheck の 3 社分(147 ファイル・51,836 行)を複製したもので、複製時のファイルのハッシュ照合は 147 / 147 件で一致した。本記事側で 3 社分を独立に再検証はしておらず、元データセットの全行検証を引き継いでいる。対象 3 社は、本記事の予備観測(2026-08-26)の時点で定めた対象であり、別稿の国内 10 社の結果や板の厚みの順位に基づいて選んだものではない。集計はすべてコードで行い、手で書いた数値を含まない。

*5 段と板の除外規約。mid(最良買い気配と最良売り気配の中間値)から ±10% を超える段を除外し件数を記録。数量 0 の段は捨てて件数を記録。crossed(最良買い気配 ≥ 最良売り気配)、最良気配スプレッドが 1,000bps 超、片側が空、非有限値を含む板は無効として除外。閾値は別稿と同一で、本記事固有の閾値は作っていない。

開示事項

Futaba Lab および関連会社は、暗号資産市場において自己勘定取引を行っています。本記事に記載された分析は、公開可能な範囲の市場構造に関するものであり、当社および関連会社の取引戦略、ポジション、執行方法、執行先を示すものではありません。

本記事は情報提供を目的としており、特定の取引所での執行や特定の金融商品の取得・処分を推奨するものではありません。本記事の生データは取引所の公開 API から取得したもので、当社の取引データを含みません。投資判断はご自身の責任で行ってください。

出典

  1. bitbank Public API Documentation(bitbank)Depth は best bid offer から各 200 件に制限。時刻指定の板取得は無い
  2. bitbank Private REST API Documentation(bitbank)Rate limit は Private REST のみ。Public API の呼出制限は記載なし
  3. bitFlyer Lightning API Documentation(bitFlyer)板情報 GET /v1/board。段数上限の記載なし。同一 IP で 5 分間 500 回の制限
  4. bitFlyer Lightning API Documentation(English)(bitFlyer)
  5. Lightning Realtime API — 板情報のスナップショット(bitFlyer)
  6. Coincheck API Documentation(Coincheck)Order Book GET /api/order_books。パラメータは pair のみ、段数の記載なし

関連記事

Funding Rate は何を価格に織り込んでいるのか

Funding Rate はプレミアム成分と金利成分からできています。BTC Perpetual を 2,005 時間観測し、Hyperliquid では 54.2% の時間で Funding Rate が金利成分そのものになることを確認しました。

約12分加藤 豪輝

Funding Rate を取引所横断で比較する方法

Funding Rate は取引所ごとに決済間隔が異なるため、API から取得した値をそのまま平均すると比較になりません。本分析では BTC Perpetual の 4 取引所を 89.7 日間観測し、未正規化のままでは取引所別平均の開きが 51.7 倍に見えること、1 時間換算後には 9.4 倍まで縮み順位も入れ替わることを確認しました。集計処理に決済間隔の確認を組み込むことで、時間あたりの保有コストとして比較できるようになります。

約9分加藤 豪輝
Digital Assets解説記事

トークン化 RWA のコーポレートアクションは誰が処理するのか

トークン化 RWA を保有したあとに発生する事象について、本分析では SEC 提出書類および規制当局の公表文書 18 件を確認しました。公式な保有記録がチェーン上にあるか transfer agent 側にあるかは、発行体により設計が分かれます。一方、確認した 3 主体では、記録を変更する統制を持つのはいずれも発行体またはその代理人でした。記録の所在と統制の所在は独立して確認する必要があります。また償還と移転の条件は、保有者が実際に実現できる価格を規定すると考えられます。

約10分加藤 豪輝