成行注文と指値注文の違い
成行注文と指値注文の違いを解説します。実際の株価データに基づき、それぞれの注文方法がコストに与える影響を詳しく比較しました。
成行注文は「現在の最良価格ですぐに約定させる」ことを意味し、指値注文は「指定した価格またはそれ以上の好条件でのみ約定させる」ことを意味します。この違いにより、約定価格、約定の可否、および発生しうるリスクが決定されます。本ガイドでは、実際の株価データを用いて、ドル建ての銘柄におけるトレードオフを測定します。その上で、急激な価格変動、大口注文、オプション取引、および時間外取引において、どのような影響が出るかを明らかにします。
成行注文とは何ですか?
成行注文は、相手方の最良気配で即座に執行されます。買い注文はアスク(売気配)で、売り注文はビッド(買気配)で約定します。上場株式の一般的な個人向け注文サイズであれば、約定自体はほぼ保証されますが、価格は保証されません。成行注文のコストは、ビッドとアスクの中値と比較して、bid-ask spread の半分に相当します。これは即時性を得るための手数料といえます。画面に表示される気配値は NBBO(全取引所における最良気配)であり、常に変動しています。注文は、クリックした時ではなく、注文が到達した時点の NBBO で約定します。
指値注文とは
指値注文には、買いの場合は上限価格、売りの場合は下限価格が設定されます。例えば、買いの指値として50.00ドルを設定した場合、50.00ドルを超える価格で購入することはありません。ただし、市場価格が設定価格に到達しない限り、取引は成立せず、注文は待機状態となります。ここで重要な設定が「成行指値注文(marketable limit order)」です。これは、現在の買値(ask)と同等、あるいはそれよりわずかに高い価格に設定された買い指値のことです。通常は成行注文のように即座に約定しますが、注文の処理中に価格が急騰した場合には、指値が上限として機能します。
注文が待機している間の挙動は、2つの設定によって決まります。有効期間(Duration):当日限り(day)の注文は、未約定のまま取引終了時に失効します。キャンセルされるまで有効(good-till-canceled / GTC)の注文は、約定するか、キャンセルされるか、あるいはブローカーの期限(一般的に60日から90日間)が来るまで継続されます。部分約定(Partial fills):指値注文は分割して約定することがあります。例えば、100株の注文のうち40株が指定価格で約定し、残りの60株は引き続き待機状態となる場合があります。
ストップ注文とストップ・リミット注文
注文画面には、これらを組み合わせた2種類の注文が記載されています。ストップ注文は、株価が指定したストップ価格に到達するか、それを下回るまで待機状態となります。条件を満たすと成行注文として実行されます。一般的な「ストップロス」は、現在価格より低い価格に設定する売りストップ注文です。注意点として、実行されるのは成行注文であるため、株価が窓を開けて急落した場合、ストップ価格を大幅に下回った価格で約定する可能性があります。一方、ストップ・リミット注文は、条件を満たすと指値注文として実行されます。これはストップ価格に加えてリミット価格を設定するものです。これにより、最悪の約定価格を制限できますが、急落時には注文が一切約定しない可能性がある点に注意が必要です。
即時性のコスト(ドル換算)
スプレッドをまたいで約定させるコストは、見積価格の記録から算出可能です。通常の取引セッション1回分、5つのティッカーにおける、中央値のスプレッドと100株あたりのコスト(スプレッドの半分)は以下の通りです。
各数値の背後にある正確なSQL
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 100, bid_price > 0 AND ask_price > bid_price), 1) AS spread_cents,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 50, bid_price > 0 AND ask_price > bid_price), 2) AS half_spread_cost_100sh_usd,
round(count() / 23400, 1) AS quote_updates_per_sec
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'IWM', 'AAPL', 'KO', 'CATO')
AND sip_timestamp >= '2026-07-08 04:00:00'
AND sip_timestamp < '2026-07-09 04:00:00'
AND toTimeZone(sip_timestamp, 'America/New_York') >= toDateTime('2026-07-08 09:30:00', 'America/New_York')
AND toTimeZone(sip_timestamp, 'America/New_York') < toDateTime('2026-07-08 16:00:00', 'America/New_York')
GROUP BY ticker
ORDER BY quote_updates_per_sec DESC極端な事例を確認します。パネル内で最も取引が活発なSPYは、1秒間に約176.8回、最良気配を更新しました。中央値のスプレッドは2セントで、100株でスプレッドの半分を支払うコストは約$1でした。対照的に、CATOはほとんど気配を出しておらず、中央値のスプレッドは5セント、同じ100株でのコスト(スプレッドの半分)は$2.5近くに達しました。流動性の高い大型株では、即時性のコストはわずかな金額です。しかし、流動性の低い銘柄では多額の費用がかかり、画面上の気配値が数分前の古いものである可能性もあります。市場全体の経済性は 株式取引のコスト に表れています。
注文執行中の価格変動リスク
成行注文の真のリスクは、目に見えるスプレッドではなく、目に見えない価格変動にあります。取引が活発な銘柄では、価格は1秒間に数百回更新されます。また、多くの投資家が成行注文を利用する市場開始直後は、価格変動が最も激しくなります。SPYの取引における、各1分間内の平均高値・安値幅は以下の通りです。
各数値の背後にある正確なSQL
SELECT round(avgIf(range_cents, et_minute >= '09:30' AND et_minute < '09:45'), 1) AS open_window_cents,
round(avgIf(range_cents, et_minute >= '12:00' AND et_minute < '13:00'), 1) AS midday_window_cents,
round(avgIf(range_cents, et_minute >= '15:45' AND et_minute < '16:00'), 1) AS close_window_cents,
round(avgIf(range_cents, et_minute >= '09:30' AND et_minute < '09:45')
/ avgIf(range_cents, et_minute >= '12:00' AND et_minute < '13:00'), 1) AS open_vs_midday
FROM (
SELECT formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_minute,
toFloat64(high - low) * 100 AS range_cents
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-08 04:00:00'
AND window_start < '2026-07-09 04:00:00'
)
WHERE et_minute >= '09:30' AND et_minute < '16:00'最初の15分間において、SPYの価格は各1分間内で平均70.3セント変動しました。これに対し、正午の時間帯は1分あたり35.8セント、最後の15分間は38.8セントでした。9時31分に発注された成行注文は、正午に発注された注文よりも約2倍速く動くターゲットに到達することになります。スプレッドも取引開始直後の数分間に最も拡大します。詳細は 取引開始時にスプレッドが拡大する理由 を参照してください。
急激な値動きがトレードオフに与える影響
2026年7月8日は通常の取引日でしたが、トレードオフの再評価は異常な値動きの日に起こります。2025年4月9日は、春の関税関連のニュースによるボラティリティの最中にありました。両日ともSPYを対象とし、同じ指標を用いています。
各数値の背後にある正確なSQL
WITH quotes AS (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
round(quantileDeterministicIf(0.5)(toFloat64(ask_price - bid_price) * 100, cityHash64(ticker, sip_timestamp), bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND ((sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00')
OR (sip_timestamp >= '2025-04-09 04:00:00' AND sip_timestamp < '2025-04-10 04:00:00'))
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
),
bars AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round(avg(toFloat64(high - low) * 100), 1) AS avg_minute_range_cents,
round(max(toFloat64(high - low) * 100), 0) AS worst_minute_range_cents,
round((max(high) - min(low)) / argMin(toFloat64(open), window_start) * 100, 1) AS session_range_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2026-07-08 04:00:00' AND window_start < '2026-07-09 04:00:00')
OR (window_start >= '2025-04-09 04:00:00' AND window_start < '2025-04-10 04:00:00'))
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
)
SELECT formatDateTime(quotes.d, '%Y-%m-%d') AS session,
bars.session_range_pct,
bars.avg_minute_range_cents,
bars.worst_minute_range_cents,
quotes.median_spread_cents
FROM quotes INNER JOIN bars ON quotes.d = bars.d
ORDER BY quotes.d DESC2025-04-09において、SPYは通常のセッションで10.8%の安値から高値まで動きました。これに対し、穏やかな日の動きは0.9%でした。1分間の平均変動幅は156.4セントに対し、37.2でした。最も激しい変動は1638に対し133でした。スプレッドも拡大し、中央値は5¢に対し2¢でした。しかし、価格変動の方がはるかに大きいです。このような日には、成行注文の主なコストは、判断から約定までの価格の乖離になります。そのため、指値注文の有効性が高まる一方で、指値が早期に約定し、その後の値動きに取り残される可能性も高まります。
大口注文と表示板の気配値
気配値は価格だけでなく、その「サイズ」も示しています。これは最良売気配において実際に提示されている株数です。表示されているサイズよりも大きい成行注文が出された場合、そのサイズを使い果たし、残りの分は次の価格帯で約定します。これを「ブックを歩く(walking the book)」と呼びます。同セッションにおける表示状況は以下の通りです。
各数値の背後にある正確なSQL
SELECT ticker,
minIf(ask_size, bid_price > 0 AND ask_price > bid_price) AS smallest_displayed_shares,
round(quantileDeterministicIf(0.5)(toFloat64(ask_size), cityHash64(ticker, sip_timestamp), bid_price > 0 AND ask_price > bid_price), 0) AS median_ask_shares,
round(countIf(ask_size >= 1000 AND bid_price > 0 AND ask_price > bid_price) / countIf(bid_price > 0 AND ask_price > bid_price) * 100, 1) AS pct_covering_1000_shares
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'IWM', 'AAPL', 'KO', 'CATO')
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
ORDER BY median_ask_shares DESC, ticker ASCIWMは、パネル内で最も深い銘柄であり、最良売気配の株数の中央値は360株でした。一方、AAPLはわずか80株でした。5銘柄すべてにおいて、表示された売気配が1,000株の注文をカバーできた割合は、最良のケースでも7.8%、最悪のケースでも0.6%であり、10分の1にも満ときませんでした。表示サイズはあくまで最低限の数値であり、全在庫ではありません。隠れた注文(hidden interest)は最良価格と流動性のあるブックの間に存在し、流動性のあるブックは数ミリ秒単位で補充されます。しかし、成行注文が保証されるのは表示されている株数までです。それを超えると、次にブックにある価格で約定します。指値注文は、それを超えない価格の境界を設定します。
オプション取引:拡大するトレードオフ
オプション取引における最大の課題は、契約価格が低いため、わずかなスプレッドが支払額に対して占める割合が非常に大きくなることです。同セッション内における、Apple株に対する2026年満期のAppleオプション(生の両建て気配値あり)のデータは以下の通りです。
各数値の背後にある正確なSQL
WITH opt AS (
SELECT round(quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, cityHash64(ticker, sip_timestamp)), 0) AS option_median_spread_bps,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) * 100, cityHash64(ticker, sip_timestamp)), 0) AS option_median_spread_cents,
round(count() / 1e6, 0) AS option_quote_updates_millions
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:AAPL26' AND ticker < 'O:AAPL27'
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
AND bid_price > 0 AND ask_price > bid_price
),
stk AS (
SELECT round(quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, cityHash64(ticker, sip_timestamp)), 1) AS stock_median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 570 AND 959
AND bid_price > 0 AND ask_price > bid_price
)
SELECT opt.option_median_spread_bps,
opt.option_median_spread_cents,
stk.stock_median_spread_bps,
round(opt.option_median_spread_bps / stk.stock_median_spread_bps, 0) AS option_to_stock_ratio,
opt.option_quote_updates_millions
FROM opt CROSS JOIN stkAppleオプションの中央値におけるスプレッドは、中間値の606ベーシスポイント(契約あたり約65セント)でした。一方、Apple株のスプレッドは1ベーシスポイントであり、その差は約606倍に達します。オプションの成行注文では、株式の注文と比較して、一度の約定で数百倍ものコストを失うことになります。そのため、熟練したオプショントレーダーは指値注文を用い、中間値での約定を目指します。取引コストの詳細については、オプション取引のコストについてをご確認ください。
時間外取引では、指値注文が唯一の選択肢となることが多い
多くのブローカーは、プレマーケットおよびアフターアワーズにおいて成行注文を拒否し、指値注文のみを受け付けています。引用データは、この方針の背景にある状況を示しています。同一日の3つの時間枠におけるデータは以下の通りです。
各数値の背後にある正確なSQL
SELECT multiIf(et_min < 570, '1. Pre-market (4:00-9:30)', et_min < 960, '2. Regular (9:30-16:00)', '3. After-hours (16:00-20:00)') AS session_window,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'SPY'), 1) AS spy_spread_cents,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'AAPL'), 1) AS aapl_spread_cents,
round(quantileDeterministicIf(0.5)(spread_cents, det, ticker = 'KO'), 1) AS ko_spread_cents
FROM (
SELECT ticker,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_min,
toFloat64(ask_price - bid_price) * 100 AS spread_cents,
cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'KO')
AND sip_timestamp >= '2026-07-08 04:00:00' AND sip_timestamp < '2026-07-09 04:00:00'
AND bid_price > 0 AND ask_price > bid_price
)
WHERE et_min >= 240 AND et_min < 1200
GROUP BY session_window
HAVING countIf(ticker = 'SPY') > 0 AND countIf(ticker = 'AAPL') > 0 AND countIf(ticker = 'KO') > 0
ORDER BY session_windowCoca-Colaの中央値スプレッドは、通常取引時間帯で1セント、プレマーケットで28セント、アフターアワーズで30セントでした。Appleは3セントから32セントへと変化し、SPYでさえ2セントから7セントへと拡大しました。参加者が少なく、板が薄いため、時間外取引では上限のない注文が不利な価格で約定するリスクが高まります。ブローカーの規則は、そのリスクを反映したものです。
どのような注文タイプがどのような状況に適しているか
以下のリストは、各注文タイプのコスト(デメリット)をまとめたものです。投資助言ではありません。
- 流動性の高い大型株、落ち着いた相場、小口注文。 スプレッドによるコストは極めて低いです。成行に近い指値注文(marketable limit)を利用すれば、上限価格を設定した上で、成行注文のような即時性を確保できます。
- 流動性の低い銘柄。 スプレッドが広く、提示価格が数分遅れている場合があります。指値注文を利用することで、古い提示価格では不可能な価格形成(price discovery)が可能です。
- 激しい値動き(Fast tape) — 市場開始直後、ニュース発表時、あるいは2025年4月9日のような相場。価格変動リスクがスプレッドの影響を上回ります。指値注文は、約定を逃すリスクはあるものの、損失を限定できます。
- 表示されている板のサイズを超える注文。 提示価格の保証は、表示されている株数で終了します。指値注文は、許容できる最悪の価格を設定するために必要です。
- オプション取引、および時間外取引の株式。 指値注文はプロの標準的な手法です。また、時間外取引において証券会社が受け付ける唯一の注文タイプであることも少なくありません。
要約:成行注文(market order)は約定を保証しますが、価格は保証しません。指値注文(limit order)は価格を保証しますが、約定は保証しません。成行に近い指値注文(marketable limit)は、損失を限定しながら、即時約定を実現します。
成行注文と指値注文に関するFAQ
成行注文は必ず約定しますか?
取引時間中の上場株式における一般的な個人投資家の注文規模であれば、実質的に「はい」です。常に取引可能な最良気配が存在します。ただし、保証されるのは「約定すること」であり、「価格」ではありません。流動性が低い銘柄や価格変動が激しい銘柄では、直前に見ていた気配値から大きく離れて約定する可能性があります。
ストップ指値注文とは何ですか?指値注文との違いは何ですか?
指値注文は、出した瞬間に有効となります。一方、ストップ指値注文は、株価がストップ価格に到達するか、それを通過するまで待機状態となります。その後、指定した指値価格での指値注文として有効化されます。リスクとして、価格の急変により指値価格を通り過ぎてしまい、注文が約定しないことがあります。
指値注文は夜間にどうなりますか?
当日注文は、取引終了時に約定せずに失効します。GTC(キャンセルするまで有効)注文は、約定するか、キャンセルされるか、またはブローカーの規定期間が経過するまで継続されます。延長時間取引を有効にしていない限り、 regulat hours( regulat hours )外で取引されることはありません。株式は日常的に 窓を開けて(gap overnight) 開始します。寄り付き価格が既存の指値価格を飛び越えた場合、寄り付き価格で執行されます。定義上、これは指定価格またはそれ以上の条件を満たします。
なぜ成行注文が画面の表示と異なる価格で約定したのですか?
活発な銘柄のNBBO(全国最良気配)は、1秒間に何度も更新されます。上記のセッションの測定では、SPY が1秒間に約 176.8 回更新されました。注文は、注文が到達した時点の気配値に対して執行されます。画面表示、ネットワーク、および処理の遅延がその間に発生します。
損失を確定させるために指値注文を使用できますか?
可能です。ただし、売り指値は「指定価格またはそれ以上」で執行されます。現在の買気配を下回る価格に指値を置いた場合、買気配に近い価格ですぐに約定します。「株価が45ドルまで下がった場合のみ売る」という意図であれば、それは売りストップ注文です。株価が50ドルのときに45ドルで売り指値を置いた場合、すぐに50ドル付近で約定します。
上記の各パネルは、実際の気配値と取引記録に基づく保存されたクエリです。SQLを拡張するか、Strasmoreターミナルで独自のティッカーに対して同じ質問を実行してください。