訂單流如何推動隱含波動率
拆解單一履約價從買賣平衡到買權單邊湧入的變化,搭配每日實際波動率與成交量數據,掌握 market maker 如何調整報價。
訂單流每次跳動一個報價,就會推動隱含波動率。報價期權的 market maker 並不是在押注股票將往哪個方向走:他們同時掛出買價與賣價;當買單持續從同一側湧入時,便會提高願意提供的波動率,直到訂單流放緩,或持倉成本已獲得補償。整個過程中,股票本身可能原地不動,而且通常確實如此。
market maker 實際報價的內容
期權有以美元計價的買價與賣價,但另一側的交易 desk 是以波動率運作。隱含波動率是年化的價格變動百分比;在給定履約價、距到期日剩餘天數、股價與利率的情況下,期權價格與此變動幅度相符。將價格代入定價模型,便可反推出波動率;代入波動率,則可反推出價格。隱含波動率只是以不同單位重新表述的價格,因此專業人士之間報價時,通常以波動率報價的期權取代美元報價。
用一個假設例子來說明。某履約價為 $220、距到期還有一個月的買權,早上報價為 $5.20。到了下午,同一份合約的賣價為 $5.60,股票仍是 $220,但剩餘時間少了一天。履約價沒有變,利率也沒有變,而時間經過一天反而會把期權價格推向另一個方向。多出的 40 美分只存在於波動率輸入值中,沒有其他來源。
訂單流如何在單一履約價推動隱含波動率
下圖納入所有距 AAPL 股價 5% 以內、距到期日剩餘 20 至 45 天的 AAPL 期權,並以三種方式衡量每個交易日:當日合約成交量中買權的占比、這些價平附近合約的平均隱含波動率,以及股票收盤價相對於觀察區間第一天水準的位置。
每個數據背後的精確 SQL 語法
WITH
(
SELECT toFloat64(close)
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date >= '2026-05-01'
ORDER BY date
LIMIT 1
) AS start_close
SELECT
toString(date) AS date,
round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
round(100 * avg(implied_volatility), 1) AS atm_iv_pct,
round(100 * (toFloat64(any(underlying_close)) / start_close - 1), 1) AS stock_pct_vs_start
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date BETWEEN '2026-05-01' AND '2026-06-30'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY date
ORDER BY date在 2026年5月與6月的 41 個交易日中,買權占比在觀察區間開始時為價平附近成交量的 71%,結束時為 80.7%。同一批合約的波動率則由 22.5% 變為 27.8%;在這段期間,股票收盤價較起始位置變動 3.2%。
兩條線並不會逐日同步,這才是這項機制的真實面貌。某一天買盤失衡,可能只讓報價跳動一個 tick。若連續多日出現同樣情況,波動率水準就會移動,因為 market maker 每天早上都被要求以尚未足以抑制需求的價格,持有更多相同方向的持倉。這整個過程不要求股票價格出現任何變動。
為何某一履約價的 IV 高於鄰近履約價
固定觀察單一交易日,改為比較不同履約價,而不是比較不同日期。下圖固定日期與到期日,並沿著該交易日成交最活躍的到期日,從低於股價的履約價一路比較至高於股價的履約價。
每個數據背後的精確 SQL 語法
WITH
(
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= '2026-06-30'
) AS session_date,
(
SELECT expiration_date
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = session_date
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
GROUP BY expiration_date
ORDER BY sum(volume) DESC
LIMIT 1
) AS busy_expiry
SELECT
concat('$', toString(toUInt32(round(toFloat64(strike_price))))) AS strike,
round(100 * avg(implied_volatility), 1) AS offered_iv_pct,
sum(volume) AS contract_volume
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = session_date
AND expiration_date = busy_expiry
AND iv_converged = 1
AND volume > 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.06
GROUP BY strike_price
ORDER BY strike_price圖中的每份合約都以同一檔股票為標的,在同一天交易,並於同一日期到期。每一列只有履約價不同,而賣方波動率也隨之變動:在 $275 履約價為 26.2%,相較之下,$305 履約價為 23.3%;合計涵蓋 7 個履約價。履約價之間的差異就是波動率偏斜,買賣力量的平衡則是塑造偏斜形狀的因素之一。需求不會平均分布在整條期權鏈上,而是集中於交易者想要的履約價;該履約價的報價也會因此變動。
將同一交易日按期權類型拆分後,圖像會更清楚,因為距離股價相同的買權與賣權,是由同一個 desk 在同一時間報價。
每個數據背後的精確 SQL 語法
WITH
(
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= '2026-06-30'
) AS session_date
SELECT
multiIf(bucket = 0, 'at spot',
bucket < 0, concat(toString(abs(bucket)), '% below'),
concat(toString(bucket), '% above')) AS strike_vs_spot,
round(100 * avgIf(iv, is_call), 1) AS call_iv_pct,
round(100 * avgIf(iv, NOT is_call), 1) AS put_iv_pct
FROM
(
SELECT
implied_volatility AS iv,
startsWith(lower(toString(option_type)), 'c') AS is_call,
round(((toFloat64(strike_price) / toFloat64(underlying_close)) - 1) * 100 / 2.5) * 2.5 AS bucket
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = session_date
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.10
)
GROUP BY bucket
HAVING countIf(is_call) > 0 AND countIf(NOT is_call) > 0
ORDER BY bucket在 7.5% below,賣權的波動率為 30%,買權則為 27.6%。在 10% above,同樣兩項指標分別為 33.3% 與 25.7%。同一檔股票、同一分鐘、同一個模型。差異來自交易者持續提出需求的履約價。
market maker 仍會持續報出另一側價格
提高賣價並不代表拒絕交易。若 desk 持續在穩定需求下賣出買權,最終會形成買權空頭;標準的防禦方式是買進股票進行對沖。這就是delta 對沖:按照期權的方向性曝險配置股票部位,並隨股價變動調整。對沖並非沒有成本。每當股價變動,重新平衡都會產生成本;而股票無法抵銷的那部分風險,也就是持倉本身對波動率的敏感度,會隨著賣出的合約增加而擴大。
較高的賣價,是承擔一單位相同風險所要求的價格。買價也會同步上移,因為 desk 願意在更有利的價位買回這些買權;買賣兩側之間的價差,就是market maker 的獲利來源,而不是對方向的押注。
電子報價能看見與不能看見的內容
在交易場內,訂單是由人帶進來的。broker 走進交易大廳,現場的 market maker 可以看見訂單規模以及背後的券商。這些背景資訊會納入報價。電子螢幕取代了這些資訊。現代 market maker 只能在成交後,從逐筆成交資料讀取訂單流的形狀:不同履約價與到期日的成交量、未平倉量隔夜變化(也就是仍未結清的合約數量)、掛出的賣價被買單成交的速度,以及波動率上調後買盤是否再次出現。多數時候,無法區分一筆訂單來自機構還是零售投資人。報價會依交易模式調整,而不是依交易者身分調整。
每個數據背後的精確 SQL 語法
WITH
(
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
AND date <= '2026-06-30'
) AS session_date
SELECT
underlying_symbol AS symbol,
round(100 * sumIf(volume, startsWith(lower(toString(option_type)), 'c')) / sum(volume), 1) AS call_share_pct,
round(100 * avg(implied_volatility), 1) AS atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'SPY')
AND date = session_date
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY underlying_symbol
ORDER BY call_share_pct DESC在該交易日,AMZN 位居群組之首,其價平附近成交量中有 91.9% 為買權,價平附近波動率則為 38.7%。逐列閱讀圖中的兩欄,會發現它們並未一一對應。單日訂單流只是波動率曲面的一項輸入;該曲面還反映每個標的自身的交易歷史,以及 desk 當時已持有的部位。
這不代表什麼
報價不是預測。較高的賣價表示 desk 希望為下一份賣出的合約取得更多補償,但沒有透露股票下一步將往哪個方向走。隱含波動率是由市場參與者支付的價格所決定的價格;隱含波動率與歷史波動率之間的差距,則讓讀者觀察價格與實際結果有多常不一致。某履約價報出的波動率為 40%,並不代表它預測股價將變動 40%。這只表示有人因想取得該合約而推高了買價。
這些圖表的計算方式
每張圖都只納入模型波動率解算收斂、且當日實際成交的合約;接著只保留價平附近、距到期日 20 至 45 天的履約價。這是閱讀波動率水準的標準區間,可避免極短期或極長天期合約造成扭曲。各區間內的合約採非加權平均。買權占比計算的是成交合約數,而不是客戶交易方向,因為逐筆成交資料不會標示交易是買進還是賣出。
常見問題
買進期權會推高隱含波動率嗎?
在某一履約價持續出現單邊買盤時,該履約價的賣方波動率會同步上升。另一側的 desk 會賣出合約,之後必須進行對沖;賣價就是它為下一份合約設定的價格。單筆小額訂單通常不會以可觀察的幅度推動流動性充足標的的波動率。
market maker 會押注方向嗎?
雙邊報價的業務建立在買賣價差上,股票曝險則會進行對沖,而不是持有不管。market maker 若形成多頭或空頭部位,通常是因為承接了其他人的訂單。
為什麼同一檔股票的兩個履約價有不同的隱含波動率?
每個履約價都是具有自身供給與需求的獨立合約。Skew 用來描述同一到期日中,價格下方與上方的履約價以不同波動率報價的型態。
隱含波動率上升是否代表股票將會變動?
不代表。隱含波動率是以百分比重新表述的期權價格,而價格反映的是市場今天願意支付的金額。實際波動低於或高於期權市場收取的價格所隱含水準,隨時都可能發生。
market maker 能看出誰在買進嗎?
以電子交易而言,通常無法。逐筆成交資料會顯示合約、履約價、到期日與時間戳記,但不會附上客戶名稱。在交易場內,market maker 可以看見交易大廳中的 broker;改用電子螢幕後,這項背景資訊便消失了。
上述每張圖都附有產生該圖的 SQL,因此同一套衡量方式可以套用至任何其他標的或任何其他週。只要用自然語言在 Strasmore terminal 上提出要求即可。