Strasmore Research
學習 Matt Connor作者: Matt Connor · 更新於 2026-07-25

市價單與限價單實測比較

用真實報價數據衡量兩種訂單的成本差異,以美元計價,並點出在高速行情、大單量與選擇權交易中最傷荷包的情境。

市價單的意思是「立刻以市場上最好的價格成交」;限價單的意思是「只在我指定的價格或更優的價格成交」。這一個差別,就決定了你付出的成本、能不能成交,以及可能出錯的地方。本指南用真實報價數據來衡量這個取捨——以美元計、用真實股票代碼——然後標出它在哪些地方最傷:高速行情、較大單量、選擇權,以及延長交易時段。

什麼是市價單?

市價單會立即以市場另一端的最佳報價執行:買單以賣出價成交,賣單以買入價成交。對於掛牌股票的一般散戶規模來說,成交幾乎是保證的;但價格則不然。相對於買賣價之間的中點,市價單的成本是買賣價差的一半——這是換取立即成交的代價。你在螢幕上看到的報價是NBBO,也就是所有交易所中的最佳買價和賣價,而且它不斷變動:你的訂單會以送達時存在的NBBO成交,而不是你點擊當下的報價。

什麼是限價單?

限價單對買單設有價格上限,對賣單設有價格下限。將買入限價設在 $50.00,你永遠不會支付超過 $50.00 的價格——但如果市場從未觸及你的價格,交易就不會執行;訂單只會持續等待。有一個中間設定值得留意:可市價成交的限價單——即買入限價等於或略高於當前賣出報價。正常情況下,它會像市價單一樣立即成交,而當你的訂單傳送途中報價突然跳動時,該限價就扮演價格上限的角色。

有兩項設定決定訂單在等待期間的行為。有效期限當日有效訂單若未成交,將在收盤時自動取消;取消前有效(GTC)則會跨交易日持續等待,直到成交、取消,或因券商設定的時間限制(通常為 60 至 90 天)而失效。部分成交:限價單可以分批執行——例如,一筆 100 股的訂單,可能有 40 股在你的指定價格成交,其餘 60 股則繼續等待。

停止單與停止限價單

下單介面還列出兩種從這些基礎衍生出來的訂單類型。停止單在股價觸及或穿過你設定的停止價之前都處於休眠狀態,一旦觸發便以普通市價單執行——經典的「停損單」就是在當前價格下方掛出的賣出停止單。要注意的是:觸發後的訂單是市價單,若遇到跳空缺口,成交價可能遠低於停止價。停止限價單則改為觸發後以限價單執行——同時設有停止價與限價價——為出場價格設下最差情況的上限,但也接受在跌勢過快時可能永遠無法成交的風險。

即時性成本,以美元計

跨越買賣價差的成本可從報價記錄中衡量。一個完整常規交易時段、五檔股票,中位數報價價差及其一半在 100 股上的金額:

查詢100股市價單跨越價差的成本 — 2026年7月8日,一般交易時段
每個數據背後的精確 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,此觀察組中交易最熱絡的標的,其全國最佳報價每秒更新約 176.8 次,中位數價差維持在 2 美分——在 100 股上跨越該價差約需 $1。另一端,CATO 幾乎沒有報價,中位數價差為 5 美分,同樣 100 股的半價差成本接近 $2.5。在流動性高的大型股中,即時性成本微不足道;在交易清淡的標的中,這是一筆實實在在的開銷——而且螢幕上的報價可能已過時數分鐘。全市場的經濟邏輯詳見交易一支股票的成本

價格在你下單傳輸途中就已變動

市價單真正的風險,不是你看得到的買賣價差,而是你看不到的價格變動。在交易熱絡的標的上,報價每秒更新數百次,而價格在最多人動用市價單的時候漂移得最快:也就是剛開盤的時候。同一交易時段,SPY 每分鐘內的平均高低區間如下:

查詢SPY單分鐘內波動幅度 — 依時段劃分的平均一分鐘高低區間,2026年7月8日
每個數據背後的精確 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'

在頭十五分鐘,SPY 的價格在「每一分鐘內」平均移動 70.3 美分,相較之下,中午時段每分鐘為 35.8 美分,最後十五分鐘則為 38.8 美分。在 9:31 送出的市價單,所面對的目標移動速度,大約是中午下單時的 2 倍。開盤頭幾分鐘的買賣價差也最寬——詳見為何開盤時買賣價差會擴大

快市對取捨的影響

2026年7月8日是個平凡的交易日;而取捨的重新定價,發生在不平凡的一天。2025年4月9日正處於那年春天關稅頭條波動的核心——兩天都看SPY,同一套衡量標準:

查詢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 DESC

2025-04-09,SPY在一個常規交易時段內,從低點到高點的波動幅度為10.8%,相較於平靜那天的0.9%;平均每分鐘波動156.4美分,對比37.2美分,最劇烈的1638對比133。價差也擴大了——中位數5美分對比2美分——但價格移動的影響遠大於此:在這樣的日子裡,市價單的主要成本,是價格在決策到成交之間所移動的距離。這正是限價單的上限發揮價值的時候——同時也是掛著的限價單最有可能提前成交、然後被行情甩在後頭的時候。

較大訂單與揭示報價

報價包含價格與數量——即最佳賣價上實際提供的股數。若市價單大於揭示數量,可能耗盡該檔並以更高價格成交剩餘部分:即掃單。同一交易時段內的顯示情況:

查詢最佳賣價上的顯示股數 — 中位數規模及覆蓋1,000股訂單的頻率,2026年7月8日
每個數據背後的精確 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 ASC

IWM是面板中深度最深的標的,最佳賣價揭示數量的中位數為360股;AAPL僅揭示80股。在這五檔標的中,沒有任何一檔的揭示賣單能涵蓋1,000股的訂單,即使十分之一的時間都辦不到——最佳情況為報價紀錄的7.8%,最差為0.6%。揭示數量只是底線,而非全部庫存——隱藏意願存在於最佳價格之間,且流動性充足的委託簿能在毫秒內回補——但市價單的保證僅止於揭示股數:超過部分將依委託簿現有掛單成交;限價則劃定其絕不跨越的界線。

選擇權:同樣的取捨,只是被放大

選擇權交易者對此感受最深:合約價格很小,因此僅幾美分的買賣價差,就占了你支付金額中遠更大的比重。每一檔2026年到期的Apple選擇權,只要有雙向報價,對照Apple股票,同一交易時段:

查詢AAPL選擇權 vs. AAPL股票 — 中位數報價價差,同一一般交易時段,2026年7月8日
每個數據背後的精確 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 stk

Apple選擇權的買賣價差中位數,為其自身中點的 606 個基點——合約上約 65 美分——而Apple股票的報價僅 1 個基點:差距約為 606 倍。一筆選擇權的市價單,在一次成交中經常就讓出了股票訂單在數百次成交中才讓出的成本;有經驗的選擇權交易者預設會使用限價單,並在中點附近操作。完整的成本樣貌,請見交易選擇權的成本有多高

正規交易時段之外,限價單往往是唯一選擇

許多券商在盤前與盤後交易時段拒絕接受單純的市價單,只接受限價單。報價紀錄顯示了這項政策背後的市場狀況——同一天,三個時段:

查詢各交易時段的中位數報價價差 — 盤前 vs. 一般 vs. 盤後,2026年7月8日
每個數據背後的精確 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_window

可口可樂的中位數買賣價差在正規交易時段為 1 美分,盤前為 28 美分,收盤後為 30 美分;蘋果從 3 美分擴大到 32 美分;就連 SPY 也從 2 美分擴大到 7 美分。參與者減少,委託簿變薄——延長時段交易正是無上限訂單最容易以糟糕價格成交的地方,券商的限制正是為此而設。

哪種委託單適合哪種情境

這些判斷可以簡化成一張檢查清單——不是投資建議,只是說明每種委託單的弱點在什麼時候代價很低,什麼時候代價很高:

  • 流動性高的大型股、盤面平穩、小額委託。 買賣價差的成本微不足道;以可成交限價單下單,既能享有市價單立即成交的特性,又附帶價格上限的保護。
  • 流動性差的標的。 報價價差寬,而且可能已過時好幾分鐘;限價單能發揮價格發現的功能,這是過時報價做不到的。
  • 波動劇烈的盤面——例如開盤時段、新聞快訊發布時、或是像2025年4月9日那樣的日子。價格波動的風險遠大於買賣價差;限價單能將風險鎖在一個上限,代價是可能無法成交。
  • 委託數量超過掛單顯示量。 報價的保障只到顯示的股數為止;限價單能設定你能接受的最差價格水準。
  • 選擇權,以及一般交易時段以外的股票。 限價單是專業交易者的預設選項——而且在盤後時段,通常也是券商唯一接受的委託類型。

一句話總結:市價單保證成交,不保證價格;限價單保證價格,不保證成交;可成交限價單則是以鎖定最大損失的方式,換取立即成交的行為。

市價單與限價單常見問題

市價單保證成交嗎?

對於一般交易時段內、掛牌股票的普通散戶規模訂單,實質上是保證的——市場上始終存在最佳賣出報價可供交易。保證的是成交,而非價格:在流動性差或波動劇烈的股票中,成交價可能與你最後看到的報價有顯著差距。

什麼是停損限價單?它與限價單有何不同?

限價單在你下單的當下即生效;停損限價單則處於休眠狀態,直到股票成交價觸及或穿過你的停損價,才會以你設定的限價,作為限價單啟動。風險在於:若價格快速變動,直接穿過你的限價,訂單便永遠不會成交。

我的限價單在隔夜時段會如何?

當日有效訂單若未成交,將在收盤時失效。取消前有效訂單則會持續等待,直到成交、取消,或因你券商的時間限制而到期——而且除非你啟用了延長時段交易,否則它不會在常規交易時間外執行。股票經常在隔夜出現跳空;若開盤價跳空越過你休眠中的限價,訂單將以開盤價執行——根據定義,這是你設定的價格或更優的價格。

為什麼我的市價單成交價與螢幕上顯示的不同?

活躍股票的全國最佳買賣報價每秒更新數十次——在上述測量的交易時段中,SPY 大約每秒更新 176.8 次。你的訂單是根據送達時當下的報價進行撮合,而顯示、網路和處理過程都存在延遲。

我可以用限價單來停損賣出嗎?

可以——但賣出限價單是以你設定的價格「或更優的價格」執行:若將賣出限價設在當前買價之下,它會立即以接近買價的價格成交。如果你的本意是「只有當股票跌到 45 元時才賣出」,那應該使用賣出停損單——當股價在 50 元時,下一張 45 元的賣出限價單,會立刻以大約 50 元的價格成交。


上方每個面板都是對真實報價與交易記錄的預存查詢——你可以展開查看 SQL,或在 Strasmore 終端機上,用你自己的股票代碼執行相同的查詢。