Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

マーケットメーカーが損する理由と逆選択

マーケットメーカーが損失を被る主因、逆選択を解説します。マークアウト曲線による測定に加え、在庫リスクと待ち行列順位コストも説明します。

マーケットメーカーは逆選択で損失を被る。オファーを買い上げるトレーダーは、そのオファーがすでに古い価格だと知っていることが多いからだ。約定はすべて、スプレッドの約半分に相当する小さなクレジットから始まる。その後の数秒で、そのクレジットがどれだけ残るかが決まる。測定に使うのがマークアウトだ。これは約定後の一定時点における、符号付きの価格変化を指す。以下のパネルでは、約定データと気配値データから実際のマークアウト曲線を作成している。同じ台帳の収益面を扱った関連解説は、マーケットメーカーが収益を上げる仕組みで確認できる。

取引における逆選択とは

マーケットメーカーは同時に二つの価格を提示する。一つは買い注文であるビッド、もう一つは売り注文であるオファーで、それぞれ提示数量が定められている。両者の差がビッド・アスク・スプレッドであり、ビジネスの計算は単純だ。ビッドで買い、オファーで売る。これを一日に何万回も繰り返せば、平均的な往復取引でスプレッドに近い収益を得られる。

この計算は、買い手と売り手が均衡して到来することを前提としている。しかし、実際にはそうならない。板に残る気配値は、誰でも自分の都合のよいタイミングで行使できる待機中のオプションである。市場を最も注意深く見ているトレーダーほど、最適なタイミングを選ぶ。大口の親注文を執行するファンドは、オファーが割安な間、買い続ける。相関する金融商品の値動きをすでに把握したシステムは、まだ価格改定されていない側を取る。

逆選択とは、この組み合わせの偏りを指す。マーケットメーカーが受ける約定は、その価格を最も必要としていたトレーダーに偏る。その兆候が、マーケットメーカーが提示したスプレッドと、実際に維持できるスプレッドの差である。

マーケットメイクにおけるマークアウトとは

マークアウトは、すべての約定後に一つの問いへ答える。自分が取った側を基準に、一定秒数後の価格はどこにあったか。マーケットメーカーが$50.02で100株を売り、約定時のミッドポイントが$50.00だったとする。この約定は一株当たり2セント、デスク上の単位では20ミルのクレジットから始まる。ミルは0.1セントである。60秒後にミッドポイントが$50.04へ動いていれば、60秒マークアウトはマイナス20ミルとなる。最初のクレジットが失われ、それと同額の損失がさらに発生したことになる。

一定期間内のすべての約定についてこれを平均し、時間軸に対して描くと、マークアウト曲線になる。以下のパネルは、2026年5月14日木曜日の正午をまたぐ三時間の時間帯について、AAPLの曲線を作成したものだ。各約定には、約定が発生した秒のミッドポイントを基準に符号を付けている。ミッドポイントを上回る約定はテイカーの買いとみなし、マーケットメーカーは売り側に立つ。

クエリスプレッドのどれだけが残るか:AAPLのマークアウト曲線、1秒から5分
各数値の背後にある正確なSQL
WITH
  qs AS (
    SELECT toUnixTimestamp(toDateTime(sip_timestamp)) AS ts,
           avg((toFloat64(bid_price) + toFloat64(ask_price)) / 2) AS mid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-05-14 14:00:00'
      AND sip_timestamp <  '2026-05-14 17:06:00'
      AND bid_price > 0 AND ask_price > bid_price
    GROUP BY ts
  ),
  fills AS (
    SELECT t.ts AS ts, t.px AS px, t.shares AS shares, q.mid AS mid_at_fill,
           if(t.px > q.mid, 1, -1) AS taker_side
    FROM (
      SELECT toUnixTimestamp(toDateTime(sip_timestamp)) AS ts,
             toFloat64(price) AS px, toUInt64(size) AS shares
      FROM global_markets.stocks_trades
      WHERE ticker = 'AAPL'
        AND sip_timestamp >= '2026-05-14 14:00:00'
        AND sip_timestamp <  '2026-05-14 17:00:00'
        AND size > 0
    ) AS t
    INNER JOIN qs AS q ON q.ts = t.ts
    WHERE t.px != q.mid AND abs(t.px / q.mid - 1) < 0.02
  )
SELECT
  concat('+', toString(e.secs), 's')                          AS horizon,
  round(1000 * avg(e.taker_side * (e.px - e.mid_at_fill)), 2) AS edge_at_fill_mils,
  round(1000 * avg(e.taker_side * (e.px - f.mid)), 2)         AS edge_after_mils
FROM (
  SELECT toUInt32(ts + secs) AS future_ts, secs, px, mid_at_fill, taker_side
  FROM (SELECT *, arrayJoin([1, 5, 15, 30, 60, 300]) AS secs FROM fills)
) AS e
INNER JOIN qs AS f ON f.ts = e.future_ts
GROUP BY e.secs
ORDER BY e.secs
Run this yourself

最初の系列は約定時点のクレジットであり、約定価格とミッドポイントの差を示す。平均は19.66ミル/株だ。二つ目の系列は、ミッドポイントが動く時間を置いた後の同じ約定の価値である。1秒後は20.5ミル、5分後は9.81ミルとなる。任意の時間軸における二つの系列の差がマークアウトであり、マーケットメーカーが提示したスプレッドから流出する。

曲線が急速に低下した後、平坦になる場合、マーケットメーカーは直後の価格改定でコストを負担するものの、残りのクレジットを維持している。どの時間軸でも同じ方向に傾き続ける場合、価格が動き続ける中で不利な側に約定している。前者は事業運営上のコストである。後者は、気配値を変更する必要があることを示す。

どの約定が有害フローなのか

ここでいう「有害」は技術的な意味を持つ。大規模なサンプルで、約定後のすべての時間軸において、約定したマーケットメーカーに不利な方向へマークアウト曲線が傾く場合、そのフローは有害である。デスクは、確認できるあらゆる属性で約定を分類する。約定数量、取引所、注文タイプ、取引相手識別子などだ。公表される取引テープに記録される属性が数量である。

クエリプリントサイズ別のAAPL約定:約定時のクレジットと60秒後の価値
各数値の背後にある正確なSQL
WITH
  qs AS (
    SELECT toUnixTimestamp(toDateTime(sip_timestamp)) AS ts,
           avg((toFloat64(bid_price) + toFloat64(ask_price)) / 2) AS mid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-05-14 14:00:00'
      AND sip_timestamp <  '2026-05-14 17:06:00'
      AND bid_price > 0 AND ask_price > bid_price
    GROUP BY ts
  ),
  fills AS (
    SELECT t.ts AS ts, t.px AS px, t.shares AS shares, q.mid AS mid_at_fill,
           if(t.px > q.mid, 1, -1) AS taker_side
    FROM (
      SELECT toUnixTimestamp(toDateTime(sip_timestamp)) AS ts,
             toFloat64(price) AS px, toUInt64(size) AS shares
      FROM global_markets.stocks_trades
      WHERE ticker = 'AAPL'
        AND sip_timestamp >= '2026-05-14 14:00:00'
        AND sip_timestamp <  '2026-05-14 17:00:00'
        AND size > 0
    ) AS t
    INNER JOIN qs AS q ON q.ts = t.ts
    WHERE t.px != q.mid AND abs(t.px / q.mid - 1) < 0.02
  )
SELECT
  multiIf(s.shares < 100, 'under 100 shares',
          s.shares < 500, '100 to 499',
          s.shares < 1000, '500 to 999',
          '1,000 or more')                                    AS size_bucket,
  count()                                                     AS fills_count,
  round(1000 * avg(s.taker_side * (s.px - s.mid_at_fill)), 2) AS edge_at_fill_mils,
  round(1000 * avg(s.taker_side * (s.px - f.mid)), 2)         AS edge_after_60s_mils
FROM (SELECT *, toUInt32(ts + 60) AS future_ts FROM fills) AS s
INNER JOIN qs AS f ON f.ts = s.future_ts
GROUP BY size_bucket
ORDER BY min(s.shares)
Run this yourself

100株未満の約定は、一株当たり19.47ミルのクレジットから始まり、1分後には15.22ミルの価値になる。1,000株以上の約定は36.26ミルから始まり、同じ時間軸では21.34ミルの価値になる。同じ銘柄、同じ三時間でも、一株当たりの経済性は異なる。最大規模の注文は、公開のキューを避けることが多い。これを実現するのがブロック取引である。

在庫リスク、時間内にヘッジできないポジション

マークアウトの時間軸は時計でもある。マーケットメーカーがビッドで5,000株を買えば、5,000株を保有することになる。ポジションをヘッジまたは売却するまで、次の値動きにさらされる。ヘッジは通常、即時にはできない。一つの株式ポジションは、相関するETFやオプションポジションで相殺できるが、それぞれに乗り越えるべきスプレッドがある。在庫リスクとは、その時間枠に収まる値動きの大きさであり、銘柄を問わず同じ方法で測定する。通常、次の1分間に価格はどれほど動くのか。次の1時間ではどうか。

クエリポジション待機中に価格がどれだけ動くか:SPYとNVDA、2026年5月
各数値の背後にある正確なSQL
WITH
  bars AS (
    SELECT ticker, window_start,
           toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
           toFloat64(close) AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'NVDA')
      AND window_start >= '2026-05-01 00:00:00'
      AND window_start <  '2026-06-01 00:00:00'
      AND transactions >= 50
      AND close > 0
  ),
  starts AS (
    SELECT ticker, et_date, px, mins,
           window_start + toIntervalMinute(mins) AS future_start
    FROM (SELECT *, arrayJoin([1, 2, 5, 15, 30, 60]) AS mins FROM bars)
  )
SELECT
  concat(toString(s.mins), ' min')                                AS hold_horizon,
  round(avgIf(abs(f.px / s.px - 1) * 10000, s.ticker = 'SPY'), 1)  AS spy_drift_bps,
  round(avgIf(abs(f.px / s.px - 1) * 10000, s.ticker = 'NVDA'), 1) AS nvda_drift_bps
FROM starts AS s
INNER JOIN bars AS f
  ON f.ticker = s.ticker AND f.et_date = s.et_date AND f.window_start = s.future_start
GROUP BY s.mins
HAVING countIf(s.ticker = 'SPY') > 0 AND countIf(s.ticker = 'NVDA') > 0
ORDER BY s.mins
Run this yourself

2026年5月を通じて、SPYの1分間における平均絶対値変動は1.9ベーシスポイントだった。ベーシスポイントは1%の100分の1である。同じ1分間で、NVDAは5.5だった。時間軸を1時間に延ばすと、二つの数値は14.140.4になる。1分以内にポジションをフラットにできるマーケットメーカーは、最初の組み合わせを前提に運営する。1時間保有するマーケットメーカーは、二つ目の組み合わせを前提にする。いずれの場合も、約定時に得るクレジットは同じである。

マーケットメーカーがキューの最後で損失を被る理由

取引所は、同じ価格の残存注文を到着順にマッチングする。優先順位は価格が先で、次に時間だ。ビッドで4万株のキューの最後尾にある注文は、前にある4万株が処理されるまで待つ。キューポジションの推定は、それ自体が一つの専門分野である。

難しいのは、キューが解消されるという意味だ。キューが空になる経路は二つある。売り手がビッドを叩き続けてその価格水準の注文を消化する場合と、価格がその水準を下抜け、注文を置き去りにする場合だ。前方にある注文は、両方の経路で約定する。後方にある注文は主に後者の経路で、価格水準が旧価格になろうとする瞬間に約定する。同じ銘柄を同じ価格で取引する二人のマーケットメーカーでも、得られる価値は異なる。キューの位置は、両者が同じ価格を提示しているため、提示スプレッドには現れない。マークアウト曲線に現れる。

気配値の拡大が無料の解決策ではない理由

悪化したマークアウト曲線への明白な対応は、提示幅を広げることだ。広い気配値は約定一件当たりの収益を増やす一方、約定件数を減らす。この取引の両面は、各約定がミッドポイントからどれだけ離れていたかで分類した同じ日の約定データに現れる。

クエリミッドポイントからの距離別AAPLプリント:出来高シェアと60秒マークアウト
各数値の背後にある正確なSQL
WITH
  qs AS (
    SELECT toUnixTimestamp(toDateTime(sip_timestamp)) AS ts,
           avg((toFloat64(bid_price) + toFloat64(ask_price)) / 2) AS mid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-05-14 14:00:00'
      AND sip_timestamp <  '2026-05-14 17:06:00'
      AND bid_price > 0 AND ask_price > bid_price
    GROUP BY ts
  ),
  fills AS (
    SELECT t.ts AS ts, t.px AS px, t.shares AS shares, q.mid AS mid_at_fill,
           if(t.px > q.mid, 1, -1) AS taker_side
    FROM (
      SELECT toUnixTimestamp(toDateTime(sip_timestamp)) AS ts,
             toFloat64(price) AS px, toUInt64(size) AS shares
      FROM global_markets.stocks_trades
      WHERE ticker = 'AAPL'
        AND sip_timestamp >= '2026-05-14 14:00:00'
        AND sip_timestamp <  '2026-05-14 17:00:00'
        AND size > 0
    ) AS t
    INNER JOIN qs AS q ON q.ts = t.ts
    WHERE t.px != q.mid AND abs(t.px / q.mid - 1) < 0.02
  )
SELECT
  multiIf(s.cents <= 0.5, '0.5 cents or less',
          s.cents <= 1.0, '0.5 to 1 cent',
          s.cents <= 2.0, '1 to 2 cents',
          'over 2 cents')                                  AS distance_from_mid,
  round(100 * sum(s.shares) / sum(sum(s.shares)) OVER (), 2) AS share_of_volume_pct,
  round(1000 * avg(s.taker_side * (s.px - f.mid)), 2)        AS edge_after_60s_mils
FROM (
  SELECT *, toUInt32(ts + 60) AS future_ts, abs(px - mid_at_fill) * 100 AS cents
  FROM fills
) AS s
INNER JOIN qs AS f ON f.ts = s.future_ts
GROUP BY distance_from_mid
ORDER BY min(s.cents)
Run this yourself

ミッドポイントから0.5セント以内に入った約定は、この時間帯の株数の27.58%を占め、1分後には一株当たり0.95ミルの価値になった。2セントを超えて離れた価格で成立した約定は、株数の33.19%を占め、価値は46.86ミルだった。ミッドポイントから遠い価格で提示された気配値ほど、その日の出来高のうち到達する割合は小さい。

約定率の低下が、後退することによる最初のコストである。二つ目は取引所リベートだ。多くの取引所は、約定した一株ごとにマーケットメーカーへリベートを支払う。この収入は気配値の幅ではなく、約定株数に応じて増える。リベート率を決める出来高区分は月次で集計されるため、閑散月になると翌月のすべての約定に適用される条件が変わる。キューの位置を手放すことが最後のコストだ。退出時に支払い、戻る際にはキューの最後尾で再び支払うことになる。すべてのマーケットメーカーはこの曲線上のどこかに位置する。自身のマークアウトを最も正確に測定するマーケットメーカーほど、最良気配の近くに位置しながらクレジットを維持できる。その測定力こそ、最大手のマーケットメーカーが守る優位性である。

FAQ

マーケットメーカーは個別の取引で損失を被るのか

頻繁に被る。マーケットメイクの損益は小さな利益と小さな損失の分布で構成され、損失を伴う約定は価格が動く直前に集中する。事業の前提は、何百万件もの約定を平均した結果にある。

取引におけるマークアウトとは

マークアウトとは、約定後の一定時点における市場価格の変化である。片側の立場から符号を付け、正の数はその側が利益を得たことを示す。株式デスクでは一株当たりミル、オプションデスクでは一枚当たりティックでマークアウトを表示する。

有害な注文フローとは

約定後も価格が動き続け、約定したマーケットメーカーに対してマークアウト曲線が持続的に不利な方向へ傾く注文フローを指す。この呼称は注文フローの統計的性質を示すものであり、特定のトレーダーへの評価ではない。

マーケットメーカーはなぜ気配値を取り消さず、スプレッドを広げるのか

広い気配値なら、マークアウト曲線の悪化を補える価格で市場に残ることができる。気配値を取り消せば収益は得られず、キューの位置も失う。デスクは両方の対応を使い分ける。判断は、気配値がどの程度の時間、古い価格のまま残ると予想されるかで決まる。

逆選択はどのように測定するのか

マークアウトで測定する。各約定に、マーケットメーカーが立っていた側に応じた符号を付け、その後の一定時点におけるミッドポイントの変化を平均する。約定時のクレジットと各時点での価値との差が逆選択コストであり、単位はスプレッドと同じである。

これらの数値の作成方法

AAPLの各パネルは、二つの公開データを利用している。取引テープと気配値テープだ。2026年5月14日14:00~17:00 UTCの各約定を、約定が発生した秒の全米最良買い気配・売り気配のミッドポイントに対してマッチングし、符号を付けた。そのミッドポイントを上回る約定はテイカーの買いとみなし、マーケットメーカーは売り側に立つ。ミッドポイントと完全に一致する約定には売買側の情報がないため除外した。また、ミッドポイントから2%を超えて離れた約定も除外した。ビッドがオファーに達している、または上回っている気配値データも除外した。ロックド・マーケットまたはクロスド・マーケットには利用可能なミッドポイントがないためだ。

秒単位での二段階マッチングにより、約定時のマイクロ秒における気配値を近似し、最速の更新を平滑化している。各時間軸の価格には、同じ秒単位のミッドポイントを使った。在庫パネルでは1分足を使用し、少なくとも50件の約定を含む足だけを残した。これにより、サンプルはその日の最も活発な時間帯に集中している。


ここにある各パネルには、作成に使ったSQLを掲載している。マークアウトの計算は、行単位で確認できる。別の銘柄や別の日の曲線を再現する場合は、Strasmore terminalで平易な英語を使って依頼できる。