Strasmore Research
学習 Matt Connor著者: Matt Connor ・更新: 2026-09-13

オプションのストップ注文は何で発動する?

オプションのストップ注文は取引所に置かれず、ブローカーが最終約定値、ビッド・アスク、マーク価格を監視して発動します。価格の選択が約定を左右します。

オプションのストップ注文は何をきっかけに発動するのでしょうか。多くの個人向け口座では、取引所がストップ注文を直接受け取ることはありません。ブローカーが自社システムで注文を保持し、対象契約の最終約定値、買い気配または売り気配、あるいはマーク価格がストップ価格に達した時点で、執行可能な注文へ変換します。ブローカーがどの価格を監視するかによって、想定した価格で発動するか、そもそも発動するかが決まります。発動後の約定状況は、ビッド・アスク・スプレッドによって左右されます。

オプションのストップ注文は実際にはどこに置かれるのか

オプション取引所は、現在もストップ注文の種類を定めています。2026年8月14日現在のCboe Exchangeのルールブックでは、Rule 5.6(c)に「Stop (Stop-Loss)」注文と「Stop-Limit」注文の両方が記載され、取引所独自の発動条件も定められています。

「『Stop (Stop-Loss)』注文とは、特定のオプション契約について、複合注文取引の価格がNBBOの範囲外である場合を除く、統合最終約定値またはNBB(NBO)が、利用者が指定したストップ価格以上(売り注文の場合は以下)になった時点で、成行注文となる買い(売り)注文をいう。利用者は、ストップ注文をAll Sessions、RTHまたはCurbとして指定することはできない。」(Rules of Cboe Exchange, Inc., Rule 5.6(c)、2026年8月14日更新)

すべてのブローカーに共通する重要な点が二つあります。取引所の発動条件は、最終約定値または全国最良気配(NBB/NBO)です。そのため、売りストップは、約定が一度もなくても、買い気配がストップ価格に触れれば発動する可能性があります。また、注文をAll SessionsまたはCurbのセッションに指定することはできません。取引所レベルでは、ストップ注文は通常取引時間向けの注文です。

個人投資家の注文が、このルールの対象になることはほとんどありません。多くの個人向けブローカーは、ストップ注文を自社サーバーで保持し、自社の発動条件に達した後で、取引所またはホールセラーへ成行注文や指値注文を送ります。注文画面には「ストップ」と表示されていても、発動ロジックを決めるのはブローカーです。その内容は取引所のルールブックではなく、ブローカーの注文タイプに関する開示書類に記載されています。

オプションのストップを発動する価格は何か:最終約定値、ビッド、アスク、マークのどれか

ほぼすべてのブローカーは、三つの方式のいずれかを採用しています。プットをロングしており、買い気配が1.90ドル、売り気配が2.10ドルの状況で、1.80ドルの売りストップを置いたとします。

  • 最終約定値。 1.80ドル以下で約定が成立した場合に限り、ストップが発動します。契約が取引されなければ、気配値がどれだけ下落しても何も起こりません。
  • ビッドまたはアスク。 ビッドが1.80ドルに達すると、ストップが発動します。一部のブローカーはアスク、またはビッドとアスクのいずれかを監視します。約定は必要ありません。マーケットメイカー一社が気配値を引き下げるだけで発動する可能性があります。
  • マーク。 ビッドとアスクの中間値が1.80ドルに達すると、ストップが発動します。ビッド・アスクの差が0.40ドルある場合、どちらのサイドでも取引が成立していなくても、マークは0.20ドル動く可能性があります。

薄商いの契約で「最終約定値」が信頼できない理由

オプション・チェーンは画面上では連続的に動いているように見えます。しかし、ほとんどの契約は一日に数回しか取引されません。下のパネルは、2026年7月15日に一度でも取引されたAAPLの全契約を、終日の出来高別に分類したものです。1ロットは1契約を表します。

クエリ2026年7月15日のAAPLオプション契約:終日出来高別
出来高区分契約数構成比(%)
1 to 5 lots41423.4
6 to 25 lots32318.2
26 to 100 lots35820.2
101 to 1,000 lots48627.4
over 1,000 lots19010.7
各数値の背後にある正確なSQL
WITH traded AS
(
    SELECT
        ticker,
        max(volume) AS contracts_traded
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date = toDate('2026-07-15')
      AND volume > 0
    GROUP BY ticker
)
SELECT
    multiIf(contracts_traded <= 5,    '1 to 5 lots',
            contracts_traded <= 25,   '6 to 25 lots',
            contracts_traded <= 100,  '26 to 100 lots',
            contracts_traded <= 1000, '101 to 1,000 lots',
                                      'over 1,000 lots') AS volume_bucket,
    count()                                                AS contracts,
    round(100 * count() / (SELECT count() FROM traded), 1) AS share_pct
FROM traded
GROUP BY volume_bucket
ORDER BY min(contracts_traded)
自分で実行する

その日に約定した契約のうち、終日の出来高が5ロット以下だったものは23.4%でした。さらに18.2%は、6ロットから25ロットの範囲でした。出来高が3ロットの契約で成立する約定は、最大でも3回です。したがって、最終約定値を基準にしたストップが一日を通じて発動する機会は、最大でも3回でした。しかも、その価格は各約定の水準に限られます。約定と約定の間に気配値がストップ価格を通り過ぎても、その動きは検知されない可能性があります。一方、表の反対側では、190の契約がそれぞれ1,000ロットを超えて取引されました。このような契約では、最終約定値を基準にしたストップは株式のストップ注文に近い動きをします。

ストップ成行注文がスプレッドの遠い側で約定する理由

ビッド1.60ドル、アスク2.00ドルのプットを考えます。スプレッドは0.40ドルです。マークを基準に1.80ドルの売りストップ成行注文を置きます。気配値が1.55ドル/1.95ドルに下落すると、マークは1.75ドルとなり、ストップが発動します。ブローカーは売りの成行注文を送ります。成行注文は最良の買い気配である1.55ドルを取るため、約定価格はストップ価格を0.25ドル下回ります。乖離率は約14%です。1.80ドル付近で約定が成立していなくても、この結果になります。注文が到着するタイミングでビッドが一度だけ1.20ドルに下がれば、約定価格は1.20ドルです。薄商いの契約では、ビッド・アスク・スプレッドがストップ成行注文が受け入れる最小限のスリッページになります。また、通常の成行注文と指値注文のトレードオフも、オプションの広い気配スプレッドによって拡大します。

ストップ・リミット注文でポジションが取り残される理由

成行注文を1.75ドルの指値を付けたストップ・リミット注文に置き換えます。気配値が1.55ドル/1.95ドルに下落するとストップが発動し、1.75ドル以上で売る注文が発注されます。しかし、この注文はビッドを0.20ドル上回る水準にあります。誰かがその価格で買う義務はありません。プットが下落し続けると、注文は未約定のまま残り、損失が拡大しながらポジションが維持されます。これは、ストップ注文の本来の目的とは逆の結果です。二つの注文タイプの比較はストップ注文とストップ・リミット注文で説明しています。待機中の指値注文が未約定となる仕組みについては、オプション注文が約定しない理由を参照してください。

オプションでは20%のストップ幅が通常の値動きに収まる理由

株式では余裕があるように感じられる10%や20%のストップ幅も、オプションでは日常的な値動きの範囲内に収まります。下の推移は、2026年7月6日時点で満期まで25日から35日あり、アット・ザ・マネーに最も近かったSPYプット一銘柄について、その後二週間の終値を追ったものです。ETF自体の日次変動も併記しています。

クエリ2026年7月6日〜17日のSPYニア・ザ・マネー・プット:日次終値と前日比変動、SPYと併記
取引日カレンダー表示プット終値プット変動率(%)SPY変動率(%)
2026-07-06Jul 68.79-41.30.66
2026-07-07Jul 711.2127.5-0.6
2026-07-08Jul 812.037.3-0.11
2026-07-09Jul 98.31-30.90.82
2026-07-10Jul 106.5-21.80.45
2026-07-13Jul 139.2842.8-0.88
2026-07-14Jul 147.49-19.30.66
2026-07-15Jul 155.92-210.21
2026-07-16Jul 167.9434.1-0.74
2026-07-17Jul 1711.544.8-0.88
各数値の背後にある正確なSQL
WITH pick AS
(
    SELECT ticker
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND lower(toString(option_type)) IN ('put', 'p')
      AND date = toDate('2026-07-06')
      AND days_to_expiry BETWEEN 25 AND 35
      AND volume > 0
    ORDER BY abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) ASC,
             expiration_date ASC,
             ticker ASC
    LIMIT 1
),
daily AS
(
    SELECT
        date,
        max(toFloat64(option_close))     AS put_close_raw,
        max(toFloat64(underlying_close)) AS spy_close_raw
    FROM global_markets.options_greeks
    WHERE ticker IN (SELECT ticker FROM pick)
      AND date >= toDate('2026-07-02')
      AND date <  toDate('2026-07-18')
      AND volume > 0
    GROUP BY date
),
chained AS
(
    SELECT
        date,
        put_close_raw,
        spy_close_raw,
        lagInFrame(put_close_raw, 1) OVER (ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_put,
        lagInFrame(spy_close_raw, 1) OVER (ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_spy
    FROM daily
)
SELECT
    toString(date)                                                        AS session_date,
    concat(formatDateTime(date, '%b'), ' ', toString(toDayOfMonth(date))) AS calendar_label,
    round(put_close_raw, 2)                                               AS put_close,
    round(100 * (put_close_raw / prev_put - 1), 1)                        AS put_move_pct,
    round(100 * (spy_close_raw / prev_spy - 1), 2)                        AS spy_move_pct
FROM chained
WHERE prev_put > 0
  AND prev_spy > 0
  AND date >= toDate('2026-07-06')
ORDER BY date
自分で実行する

このプットの終値は、Jul 6に$8.79、Jul 17に$11.5でした。二つの変化率の列を並べて見ると、ETFの日々の変動は1%未満である一方、プットは数%単位、しばしば数十%単位で動いています。この差により、プット価格の20%下に置いたストップが、一日の値幅の中に入ります。2026年7月に満期まで20日から45日あるアット・ザ・マネー近辺のSPYプット全体へ対象を広げると、一つの契約ではなく分布として確認できます。

クエリ2026年7月のSPYニア・ザ・マネー・プット(満期まで20〜45日):終値の前日比変動幅
変動区分契約日数構成比(%)
under 5%39616.7
5% to 10%33914.3
10% to 20%59125
20% or more103943.9
各数値の背後にある正確なSQL
WITH daily AS
(
    SELECT
        ticker,
        date,
        max(toFloat64(option_close))     AS put_close,
        max(toFloat64(underlying_close)) AS spy_close,
        max(toFloat64(strike_price))     AS strike,
        max(days_to_expiry)              AS dte
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND lower(toString(option_type)) IN ('put', 'p')
      AND date >= toDate('2026-06-29')
      AND date <  toDate('2026-08-01')
      AND days_to_expiry BETWEEN 15 AND 50
      AND volume > 0
    GROUP BY ticker, date
),
chained AS
(
    SELECT
        date,
        put_close,
        spy_close,
        strike,
        dte,
        lagInFrame(put_close, 1) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_put,
        lagInFrame(date, 1)      OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_date
    FROM daily
),
moves AS
(
    SELECT abs(100 * (put_close / prev_put - 1)) AS move_pct
    FROM chained
    WHERE prev_put > 0
      AND dateDiff('day', prev_date, date) <= 4
      AND date >= toDate('2026-07-01')
      AND dte BETWEEN 20 AND 45
      AND abs(strike / spy_close - 1) < 0.02
)
SELECT
    multiIf(move_pct < 5,  'under 5%',
            move_pct < 10, '5% to 10%',
            move_pct < 20, '10% to 20%',
                           '20% or more') AS move_bucket,
    count()                                               AS contract_days,
    round(100 * count() / (SELECT count() FROM moves), 1) AS share_pct
FROM moves
GROUP BY move_bucket
ORDER BY min(move_pct)
自分で実行する

前日終値から20%以上動いた契約日数は43.9%でした。5%未満の変動だった契約日数は16.7%でした。前日終値の20%下に置いたストップは、契約日数100日あたりおよそ43.9日で通過されました。これは、終値から終値までの系列では捉えられない日中変動を考慮する前の数字です。

ストップ注文を出す前に確認すべきブローカーの制限

オプションのストップ注文に関するブローカーのルールは異なり、変更されることもあります。以下は特定の一社の事実ではなく、自分が利用するブローカーの注文タイプに関する開示書類で確認すべき項目です。

  • オプションでストップ成行注文を受け付けているか。オプションではストップ・リミット注文だけを受け付けるブローカーもあります。その場合、スプレッドの遠い側で約定する問題はなくなりますが、注文が取り残される問題が生じます。
  • 適用される発動基準が最終約定値、ビッド、アスク、マークのどれか。また、注文ごとに選択できるか。
  • 発動条件が通常取引時間中だけ評価されるか。Cboeの取引所レベルのストップ注文は通常取引時間のみが対象です。ブローカーが保持するストップ注文にも同じ制限が一般的に適用されます。これは時間外セッションのある指数オプションで重要です。
  • 複数レッグ注文にストップを設定できるか。設定できる場合、どの価格を監視するか。通常はスプレッドのネット・マークです。また、ストップ注文に付けられる有効期間の選択肢も確認が必要です。

単純なストップ注文に代わる方法

  • 利益目標を組み合わせたブラケット注文またはOCO決済。 利益目標で決済する注文と、通常のスプレッドを十分に超える指値を付けたストップ・リミット注文を一つずつ置き、先に約定した注文がもう一方を取り消します。仕組みはブラケット注文とOCO注文で説明しています。オプションでは、利益確定側を比率ではなく具体的なデビットまたはクレジットで指定します。
  • 原資産価格を基準にした条件付き注文。 一日に十数回しか約定しないプットではなく、一時間に数千回取引される株式を監視します。株式が指定水準で取引された時点で、オプションの指値注文を送ります。上の推移が示すように、この発動条件の方が明確です。ETFは滑らかな系列で、プットは変動の大きい系列だからです。
  • リスク限定スプレッドにストップを置かない。 バーティカル・スプレッドの最大損失はエントリー時点で固定されています。スプレッドにストップを置くと、二つの広い気配値の合成マークを監視することになります。そのため、ノイズで動き、二つのレッグを最も不利な組み合わせの価格で決済する可能性があります。オプション・ポジションのロール方法のように、代わりに取引を調整すれば、リスク限定の構造を維持できます。

FAQ

オプションでストップ注文は機能しますか

はい。ただし注意が必要です。Cboeのルールブックは現在も、オプションの取引所レベルのストップ注文とストップ・リミット注文を定めています。しかし、多くの個人向けブローカーはストップ注文を自社で保持し、最終約定値、ビッドまたはアスク、マークのいずれかを基準に自社の発動条件で注文を出します。実際の動作はブローカーの方式に依存します。口座に適用される注文タイプの開示書類で確認してください。

オプションのストップ注文はビッド、アスク、最終約定値のどれで発動しますか

ブローカーによって異なります。一般的な方式は、最終約定値、ビッドまたはアスク、そして気配値の中間値であるマークです。Cboeの取引所保持型ストップ注文は、統合最終約定値または全国最良気配のいずれかで発動します。

オプションのストップ注文がストップ価格から大きく下で約定したのはなぜですか

ストップ成行注文は発動した瞬間に成行注文になります。売りの成行注文は、その時点のビッドで約定します。スプレッドが0.40ドルあり、マークを基準に発動した場合、2ドルの契約では追加のスリッページを考慮しなくても、約定価格は発動価格をおよそ10%下回るビッドになります。

オプション・スプレッドにストップロスを設定できますか

複数レッグ注文にストップを設定できるブローカーもあれば、設定できないブローカーもあります。設定できる場合も、通常はスプレッドのネット・マークが基準です。リスク限定スプレッドにはすでに最大損失が設定されており、ストップを置くと気配値のノイズで発動し、両レッグを不利な価格で決済する可能性があります。多くのトレーダーは、代わりにスプレッドをロールまたは調整して管理します。


上記の各パネルには、作成に使用したSQLが付属しています。別のティッカーや日付について同じ契約別の出来高集計を実行するには、Strasmore terminalで平易な英語により依頼してください。

#stop order#stop-limit#options orders#trigger price#order types#bid-ask spread