สาเหตุที่ราคาหุ้นกระโดดขึ้นหรือลงในช่วงข้ามคืน
ทำความเข้าใจความแตกต่างระหว่าง Gap up และ Gap down ซึ่งเป็นระยะห่างระหว่างราคาปิดและราคาเปิด พร้อมวิเคราะห์ขนาดการเคลื่อนไหวของ SPY ในช่วง H1 2026
Gap คือระยะห่างระหว่างราคาปิดของหุ้นในวันหนึ่งกับราคาเปิดในวันถัดไป ซึ่งปรากฏเป็นช่องว่างบนกราฟราคาโดยไม่มีการซื้อขายในช่วงนอกเวลาทำการปกติเกิดขึ้นระหว่างนั้น หุ้นอาจมีราคาเปิดกระโดดขึ้นหรือลงในช่วงข้ามคืนเนื่องจากเหตุผลเชิงโครงสร้าง เนื่องจากตลาดหลักทรัพย์เปิดทำการเพียง 6.5 ชั่วโมง แต่ในช่วงเวลาอีก 17.5 ชั่วโมงที่เหลือ ยังคงมีการประกาศผลประกอบการ ข่าวสาร การซื้อขายในต่างประเทศ และการซื้อขายในช่วงนอกเวลาทำการที่มีสภาพคล่องต่ำ ข้อมูลทั้งหมดนี้จะส่งผลต่อราคาเปิดในเช้าวันถัดไปพร้อมกันทันที หน้าเว็บนี้ใช้เพื่อวัดค่า gap แทนที่จะเป็นการระบุการเกิด gap โดยข้อมูลประกอบด้วยทุก session ของ SPY ในช่วง H1 2026, หุ้นขนาดใหญ่ 5 ตัวนอกเหนือจากดัชนี และการเคลื่อนไหวในช่วงข้ามคืนที่มากกว่า 8% หนึ่งครั้งที่ตรวจพบก่อนตลาดเปิดทำการ
Gap up หรือ gap down คืออะไร?
Gap up: ราคาเปิดของวันนี้สูงกว่าราคาปิดในรอบการซื้อขายปกติของเมื่อวาน Gap down: ราคาเปิดต่ำกว่าราคาปิดดังกล่าว ราคาเปิดที่กล่าวถึงนี้คือราคาเปิดเวลา 9:30 a.m. ET ซึ่งกำหนดโดย การประมูลเปิดตลาด ซึ่งเป็นการรวบรวมคำสั่งซื้อขายที่ค้างมาจากช่วงข้ามคืนและจัดการให้จบด้วยราคาเดียว แม้จะมีการซื้อขายจริงในช่วง การซื้อขายนอกเวลาทำการและช่วงก่อนตลาดเปิด ระหว่างราคาปิดก่อนหน้าจนถึงช่วงการประมูลดังกล่าว แต่ปริมาณการซื้อขายนั้นมีเพียงเศษเสี้ยวเมื่อเทียบกับปริมาณการซื้อขายในรอบการซื้อขายปกติ ดังนั้นราคาเปิดอย่างเป็นทางการจึงเป็นจุดที่แรงซื้อขายทั้งหมดของตลาดเริ่มแสดงผล และเป็นจุดที่ใช้ในการวัดค่า gap
กระบวนการค้นหาราคา (Price discovery) ไม่เคยหยุดนิ่งโดยสมบูรณ์: ดัชนีฟิวเจอร์สมีการซื้อขายเกือบตลอด 24 ชั่วโมง ตลาดในต่างประเทศกำหนดระดับราคาในขณะที่นิวยอร์กหลับใหล และการซื้อขายช่วงก่อนตลาดเปิดเริ่มตั้งแต่เวลา 4:00 a.m. ET เมื่อถึงเวลา 9:30 การประมูลจะไม่ใช่การคาดเดา แต่เป็นการรับรองระดับราคาที่ตลาดในช่วงข้ามคืนได้กำหนดไว้ก่อนหน้าแล้ว
ช่องว่างราคาข้ามคืน (Overnight Gap) ปกติมีขนาดเท่าใด?
ในทุกเซสชันของ H1 2026 สำหรับ SPY หรือ S&P 500 ETF ข้อมูลถูกแบ่งออกเป็นส่วนของช่วงข้ามคืน (จากราคาปิดวันก่อนหน้าถึงราคาเปิด) และช่วงระหว่างวัน (จากราคาเปิดถึงราคาปิด):
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT count() AS sessions,
round(avg(abs(100 * (rth_open - prior_close) / prior_close)), 2) AS avg_abs_overnight_gap_pct,
round(avg(abs(100 * (rth_close - rth_open) / rth_open)), 2) AS avg_abs_intraday_move_pct,
countIf(abs(100 * (rth_open - prior_close) / prior_close) >= 0.5) AS gaps_of_half_pct_or_more
FROM (SELECT day, rth_open, rth_close, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2025-12-29 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY day
))
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)จากทั้งหมด 123 เซสชัน ค่าเฉลี่ยของขนาดช่องว่างราคาข้ามคืนแบบ absolute ของ SPY อยู่ที่ 0.45% เมื่อเทียบกับการเคลื่อนที่แบบ absolute จากราคาเปิดถึงราคาปิดที่เฉลี่ยอยู่ที่ 0.53% ซึ่งหมายความว่าการกระโดดของราคาในช่วงข้ามคืนที่ไม่สามารถซื้อขายได้นั้น มีขนาดเกือบเท่ากับการเคลื่อนที่ตลอดทั้งวันในช่วงเวลาซื้อขายที่ตามมา โดยพบว่าช่องว่างราคาที่มีขนาดตั้งแต่ครึ่งเปอร์เซ็นต์ขึ้นไปเกิดขึ้นทั้งหมด 41 ครั้ง หรือคิดเป็นประมาณหนึ่งในสามของจำนวนเซสชันทั้งหมด
หุ้นมีช่องว่างราคา (gap) มากขึ้นในวันจันทร์หรือไม่?
การเปิดตลาดในวันจันทร์มีข้อสันนิษฐานว่า ช่วงเวลาหยุดสุดสัปดาห์ทำให้กลไกตลาดทำงานต่อเนื่องยาวนานถึง 65 ชั่วโมง แทนที่จะเป็น 17.5 ชั่วโมงตามปกติ ข้อสันนิษฐานนี้สามารถพิสูจน์ได้ด้วยข้อมูล จากการตรวจสอบทุกเซสชันของ SPY ตั้งแต่เดือนมกราคม 2024 ถึง มิถุนายน 2026 โดยแบ่งตามวันในสัปดาห์ เพื่อหาค่าเฉลี่ยของช่องว่างราคา (absolute gap) และค่าเปอร์เซ็นต์ไทล์ที่ 90 ซึ่งเป็นขนาดช่องว่างที่มีเพียงหนึ่งในสิบครั้งเท่านั้นที่สูงกว่า (หากวันจันทร์เป็นวันหยุด ช่องว่างราคาของช่วงสุดสัปดาห์จะถูกนำไปรวมกับการเปิดตลาดในวันอังคาร)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'][dow] AS weekday,
count() AS sessions,
round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,
round(quantileDeterministic(0.9)(abs(gap_pct), toUInt64(toYYYYMMDD(day))), 2) AS p90_abs_gap_pct
FROM (
SELECT day, toDayOfWeek(day) AS dow,
100 * (rth_open - prior_close) / prior_close AS gap_pct
FROM (
SELECT day, rth_open, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2023-12-28 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY day
)
)
WHERE day >= '2024-01-01' AND prior_close > 0 AND isFinite(prior_close)
)
WHERE dow <= 5
GROUP BY dow
ORDER BY dowข้อมูลยืนยันว่าข้อสันนิษฐานนี้เป็นจริง ค่าเฉลี่ยของช่องว่างราคาในวันจันทร์จาก 119 วันจันทร์ คือ 0.52% ซึ่งเป็นค่าที่กว้างที่สุดในบรรดาห้าวันทำการ เมื่อเทียบกับวันอังคารที่ 0.36% วันพุธที่ 0.39% วันพฤหัสบดีที่ 0.45% และวันศุกร์ที่ 0.39% ส่วนความผันผวนที่รุนแรงที่สุดปรากฏในช่วงปลายของข้อมูล โดยค่าช่องว่างราคาที่เปอร์เซ็นต์ไทล์ที่ 90 ของวันจันทร์อยู่ที่ 1.11% เทียบกับวันอังคารที่ 0.73% ผลกระทบนี้เกิดขึ้นจริงแต่มีขนาดไม่มากนัก การเปิดตลาดวันจันทร์มีลักษณะการกระจายตัวของราคาที่กว้างกว่า แต่ไม่ใช่รูปแบบที่แตกต่างออกไปอย่างสิ้นเชิง และข้อมูลนี้ไม่ได้ระบุทิศทางของการเคลื่อนไหวของราคา
ช่องว่างราคาที่ใหญ่ที่สุดของ H1 2026
ช่องว่างราคา (gap) ข้ามคืนที่ใหญ่ที่สุด 6 อันดับแรกของ SPY ในครึ่งปีนี้ พร้อมผลการดำเนินงานของราคาในช่วงเวลาที่เหลือของวัน:
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT concat(monthName(day), ' ', toString(toDayOfMonth(day)), ', ', toString(toYear(day))) AS session,
round(100 * (rth_open - prior_close) / prior_close, 2) AS overnight_gap_pct,
round(100 * (rth_close - rth_open) / rth_open, 2) AS rest_of_day_pct
FROM (SELECT day, rth_open, rth_close, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2025-12-29 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY day
))
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)
ORDER BY abs(overnight_gap_pct) DESC, day
LIMIT 6ช่องว่างที่ใหญ่ที่สุดเกิดขึ้นใน April 8, 2026: SPY เปิดตลาดห่างจากราคาปิดวันก่อนหน้า 2.6% จากนั้นราคาเคลื่อนที่ -0.08% จากราคาเปิดไปสู่ราคาปิด การปรับราคาใหม่ของทั้งวันเกิดขึ้นก่อนการซื้อขายในเวลาทำการปกติ — บทเรียนสำคัญของช่องว่างราคาคือ ตลาดสามารถปรับราคาใหม่ได้โดยที่คุณไม่ได้ทำการซื้อขาย
ตัวเลขที่ไม่มีที่มาคือข้อมูลที่ไม่สมบูรณ์ พาดหัวข่าวทั้งหมดที่มีความเกี่ยวข้องกับ SPY ซึ่งเผยแพร่ระหว่างราคาปิดของวันที่ 7 เมษายน ถึงราคาเปิดของวันที่ 8 เมษายน:
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT formatDateTime(toTimeZone(published_utc, 'America/New_York'), '%b %d %H:%i') AS et_published,
JSONExtractString(toString(publisher), 'name') AS source,
substring(title, 1, 80) AS headline
FROM global_markets.stocks_news
WHERE published_utc >= toDateTime('2026-04-07 16:00:00', 'America/New_York')
AND published_utc < toDateTime('2026-04-08 09:30:00', 'America/New_York')
AND has(tickers, 'SPY')
ORDER BY published_utc
LIMIT 10มีพาดหัวข่าวสองรายการที่เกิดขึ้นในช่วงเวลาปิดตลาด โดยทั้งคู่เป็นข่าวเกี่ยวกับข้อตกลงหยุดยิงระหว่างสหรัฐฯ และอิหร่าน ระบุเวลาคือ Apr 08 03:28 ET และ Apr 08 08:58 ET — ซึ่งเกิดขึ้นก่อนตลาดเปิดในช่วงที่ตลาดปิดทำการ ช่องว่างราคาคือการบันทึกทางบัญชีสำหรับข่าวสารที่มาถึงในขณะที่คุณไม่สามารถทำการซื้อขายได้
หุ้นรายตัวมีช่องว่างราคา (gap) รุนแรงกว่าดัชนีหรือไม่?
ETF ที่อิงตามดัชนีประกอบด้วยบริษัทหลายร้อยแห่ง ซึ่งความผันผวนที่เกิดขึ้นในช่วงข้ามคืนของบริษัทเหล่านี้จะหักล้างกันไปบางส่วน แต่หุ้นรายตัวไม่มีเกราะป้องกันดังกล่าว ต่อไปนี้คือข้อมูลของหุ้นชื่อดัง 5 บริษัท เปรียบเทียบกับ SPY ในช่วงเวลาเดียวกัน:
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker,
count() AS sessions,
round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,
round(argMax(gap_pct, (abs(gap_pct), day)), 2) AS biggest_gap_pct,
concat(monthName(argMax(day, (abs(gap_pct), day))), ' ', toString(toDayOfMonth(argMax(day, (abs(gap_pct), day)))), ', ', toString(toYear(argMax(day, (abs(gap_pct), day))))) AS biggest_gap_day
FROM (
SELECT ticker, day, 100 * (rth_open - prior_close) / prior_close AS gap_pct
FROM (
SELECT ticker, day, rth_open,
lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY day) AS prior_close
FROM (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT ticker, window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
AND window_start >= '2025-12-29 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY ticker, day
)
)
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA'], ticker)โปรดอ่านข้อมูลแยกกันทั้งสองคอลัมน์ ในคืน ปกติ ลำดับความผันผวนจะเป็นไปตามที่คาดการณ์ไว้ โดย Tesla มีค่าเฉลี่ยที่ 1.05% และ Nvidia ที่ 0.99% เมื่อเทียบกับ SPY ที่ 0.45% แต่ Coca-Cola มีค่าเฉลี่ยที่ 0.42% ซึ่ง ต่ำกว่า ดัชนี เนื่องจากหุ้นกลุ่ม Consumer mega-cap ที่มีความมั่นคงมักจะเคลื่อนไหวอย่างเงียบสงบในช่วงข้ามคืนเป็นส่วนใหญ่
คอลัมน์ tail คือจุดที่เกราะป้องกันนั้นหายไป ช่องว่างราคาที่ใหญ่ที่สุดของ SPY ในช่วงครึ่งปีคือ 2.6% (April 8, 2026) และหุ้นรายตัวทั้ง 5 บริษัทมีค่าที่สูงกว่า ได้แก่ Coca-Cola 5.41%, Apple 2.82%, Nvidia 3.6%, Tesla 4.97% และ Microsoft ซึ่งเป็นบริษัทที่มีค่าสูงสุดในกลุ่มอยู่ที่ -8.66% ในช่วง January 29, 2026 หุ้นรายตัวอาจไม่ได้มีความผันผวนมากกว่าดัชนีเสมอไปในคืนปกติ แต่ในคืนที่เลวร้ายที่สุด หุ้นรายตัวจะมีความผันผวนรุนแรงกว่ามาก
การสังเกตการเกิดช่องว่างราคา (gap) ก่อนตลาดเปิด
ย้อนกลับไปดูช่องว่างราคาของ Microsoft ในช่วง January 29, 2026 ราคาปิดของเซสชันก่อนหน้าอยู่ที่ $481.72 ราคาที่เกิดขึ้นหลังจากนั้นเป็นการซื้อขายในตลาดที่ปิดอยู่ และเมื่อถึงเวลาเปิดตลาด premarket เวลา 4:00 a.m. ET การปรับราคาได้เสร็จสิ้นลงแล้ว:
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH day_vol AS (
SELECT sum(toFloat64(volume)) AS rth_vol
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-29 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-01-29 16:00:00', 'America/New_York')
),
prior AS (
SELECT round(argMax(toFloat64(close), window_start), 2) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-28 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-01-28 16:00:00', 'America/New_York')
),
buckets AS (
SELECT toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 minute) AS bucket,
round(argMax(toFloat64(close), window_start), 2) AS price,
sum(toFloat64(volume)) AS shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-29 04:00:00', 'America/New_York')
AND window_start < toDateTime('2026-01-29 09:30:00', 'America/New_York')
GROUP BY bucket
)
SELECT formatDateTime(bucket, '%H:%i') AS et_time,
price,
(SELECT prior_close FROM prior) AS prior_close,
round(100 * (price - (SELECT prior_close FROM prior)) / (SELECT prior_close FROM prior), 2) AS vs_prior_close_pct,
round(abs(100 * (price - (SELECT prior_close FROM prior)) / (SELECT prior_close FROM prior)), 2) AS pct_below_prior_close,
round(shares / 1000) AS shares_thousands,
round(sum(shares) OVER (ORDER BY bucket) / 1000000, 2) AS cum_shares_millions,
round(100 * sum(shares) OVER (ORDER BY bucket) / (SELECT rth_vol FROM day_vol), 2) AS cum_pct_of_regular_volume
FROM buckets
ORDER BY bucketช่วงเวลาแรกของ premarket เวลา 04:00 ET ราคาอยู่ที่ $454 ซึ่งต่ำกว่าราคาปิดเดิมอยู่ 5.75% โดยมีปริมาณการซื้อขายอยู่ที่ 128 พันหุ้น ในช่วงห้าชั่วโมงถัดมาราคาเกิดความผันผวน จนกระทั่งช่วงสุดท้ายของ premarket (09:00 ET) ราคาอยู่ต่ำกว่าราคาปิดที่ระดับ 8.71% และราคาเปิดอย่างเป็นทางการอยู่ที่ -8.66% ซึ่งเป็นระดับที่ใกล้เคียงกับสิ่งที่หุ้นจำนวน 4.86 ล้านหุ้นในช่วง overnight ได้กำหนดไว้แล้ว
สังเกตที่คอลัมน์สุดท้าย: ปริมาณการซื้อขายในช่วง premarket ทั้งหมดคิดเป็นเพียง 4.31% ของปริมาณการซื้อขายในเซสชันปกติ ช่องว่างราคาขนาดนี้ถูกกำหนดราคาโดยปริมาณการซื้อขายเพียงเล็กน้อยในช่วงที่ตลาดปิด และจะได้รับการยืนยันโดยตลาดเต็มรูปแบบเมื่อเวลา 9:30 ความเบาบางของปริมาณการซื้อขายนี้คือสาเหตุที่ spread กว้างที่สุดในช่วงเปิดตลาด
ราคาที่ตลาด options เรียกเก็บในคืนนั้น
Options แสดงให้เห็นถึงสิ่งที่ตลาด คาดการณ์ ว่าจะเกิดการเคลื่อนไหว ก่อนที่เหตุการณ์จะเกิดขึ้นจริง Straddle ซึ่งประกอบด้วย call และ put ที่ราคาใช้สิทธิ (strike price) และวันหมดอายุเดียวกัน มีต้นทุนใกล้เคียงกับสิ่งที่ตลาดคาดว่าหุ้นจะเคลื่อนที่ไปในทิศทางใดทิศทางหนึ่งเมื่อถึงวันหมดอายุ Straddle ของ Microsoft ที่ราคาใกล้เคียงกับราคาตลาด (near-the-money) ซึ่งเสนอขายในช่วง 15 นาทีก่อนปิดตลาดวันที่ 28 มกราคม และหมดอายุในอีกสองวันถัดไป:
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH prior AS (
SELECT round(argMax(toFloat64(close), window_start), 2) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-28 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-01-28 16:00:00', 'America/New_York')
),
quotes AS (
SELECT toFloat64(substring(ticker, 14, 8)) / 1000 AS strike,
substring(ticker, 13, 1) AS cp,
round(argMax((bid_price + ask_price) / 2, sip_timestamp), 2) AS mid
FROM global_markets.cache_options_quotes
WHERE ticker LIKE 'O:MSFT260130%'
AND sip_timestamp >= toDateTime('2026-01-28 15:45:00', 'America/New_York')
AND sip_timestamp < toDateTime('2026-01-28 16:00:00', 'America/New_York')
AND bid_price > 0
AND ask_price > 0
GROUP BY ticker
)
SELECT concat('$', toString(strike)) AS strike_price,
maxIf(mid, cp = 'C') AS call_mid,
maxIf(mid, cp = 'P') AS put_mid,
round(maxIf(mid, cp = 'C') + maxIf(mid, cp = 'P'), 2) AS straddle_cost,
round(100 * (maxIf(mid, cp = 'C') + maxIf(mid, cp = 'P')) / (SELECT prior_close FROM prior), 2) AS implied_move_pct
FROM quotes
WHERE abs(strike - (SELECT prior_close FROM prior)) <= 5
GROUP BY strike
HAVING countIf(cp = 'C') > 0 AND countIf(cp = 'P') > 0
ORDER BY strikeราคา strike ที่ใกล้เคียงกับราคาปิดที่ $481.72 คือ $482.5 โดยราคาคู่ straddle อยู่ที่ $25.69 หรือคิดเป็น 5.33% ของราคาหุ้น ซึ่งเป็นระดับการเคลื่อนไหวที่ถูกกำหนดราคาไว้สำหรับ สองช่วงการซื้อขายเต็มรูปแบบ ไม่ใช่เพียงคืนเดียว ลำพังเพียงช่องว่างราคา (gap) ข้ามคืนอยู่ที่ -8.66% ตลาด options ได้กำหนดตัวเลขไว้แล้วแต่ราคาจริงกลับเคลื่อนไหวมากกว่านั้น และราคา strike ในระดับใกล้เคียงกันก็เห็นพ้องไปในทางเดียวกัน (5.37% ที่ $477.5 และ 5.37% ที่ $485) ดังนั้นนี่จึงเป็นความเห็นพ้องของตลาด ไม่ใช่ราคาที่ผิดปกติเพียงจุดเดียว
มีกลไกสองประการสำหรับผู้ที่ถือ options ข้ามช่วง gap ราคา ประการแรก ราคา option ไม่สามารถปรับเปลี่ยนได้ในขณะที่ตลาดปิดทำการ แต่ค่าเสื่อมราคาตามระยะเวลา (time decay) ยังคงดำเนินต่อไป และการเคลื่อนไหวทั้งหมดจะปรากฏในการเปิดตลาด และเมื่อเหตุการณ์สิ้นสุดลง ความไม่แน่นอนจะหายไปพร้อมกับราคา ส่งผลให้ค่าความผันผวนแฝง (implied volatility) ลดลงอย่างรุนแรงในเช้าวันถัดไปหลังการประกาศผล นี่คือสาเหตุที่การคาดการณ์ทิศทางที่ถูกต้องยังสามารถทำให้ขาดทุนจากการถือสถานะ long option ได้ จำนวนวันจนถึงวันหมดอายุ จะเป็นตัวกำหนดความรุนแรงของผลกระทบทั้งสองประการนี้
ประเภทของ gap: คำศัพท์สำหรับรูปแบบกราฟ
เทรดเดอร์ระบุประเภทของ gap ตามตำแหน่งที่ปรากฏในแนวโน้มระยะยาว ชื่อเรียกเหล่านี้เป็นการอธิบายลักษณะที่เกิดขึ้นแล้ว และไม่ใช่การคาดการณ์ล่วงหน้า:
- Common (area) gap — gap ขนาดเล็กที่เกิดขึ้นภายในกรอบราคาปกติ โดยไม่มีข่าวพิเศษ โดย gap ส่วนใหญ่ของ SPY ที่มีขนาดต่ำกว่า 0.5% มักเป็นประเภทนี้
- Breakaway gap — ราคาพุ่งออกจากกรอบราคาหรือทะลุระดับที่มีการเคลื่อนไหวมานาน โดยมักมาพร้อมกับปริมาณการซื้อขายที่สูง
- Runaway (continuation) gap — gap ที่เกิดขึ้นระหว่างแนวโน้ม ในทิศทางเดียวกับที่ราคาเคลื่อนที่อยู่ก่อนหน้า
- Exhaustion gap — gap ที่เกิดขึ้นในทิศทางเดียวกับแนวโน้ม แต่ปรากฏขึ้นในช่วง ปลาย ของแนวโน้ม ซึ่งหลังจากนั้นราคาจะเปลี่ยนทิศทาง ในวันที่เกิดเหตุการณ์นี้ gap จะมีลักษณะเหมือนกับ runaway gap ทุกประการ และต้องใช้ข้อมูลหลังจากนั้นเพื่อแยกความแตกต่าง
คู่สุดท้ายคือจุดที่ต้องระวัง: การระบุประเภทขึ้นอยู่กับสิ่งที่เกิดขึ้นหลังจากนั้น ดังนั้นจึงไม่มีใครสามารถระบุประเภทได้ในขณะที่เกิดเหตุการณ์จริง
ความหมายของช่องว่างราคา (Gap) ต่อคำสั่งซื้อขายของคุณ
ผลกระทบสามประการ ซึ่งเกิดจากการที่ไม่มีการซื้อขายในช่วงเวลาปกติภายในช่องว่างราคา:
- คำสั่ง Stop orders ไม่สามารถหยุดการขาดทุนที่ราคา Stop ได้ คำสั่ง Stop จะกลายเป็นคำสั่ง Market order ทันทีเมื่อราคาหุ้นเคลื่อนที่มาถึงหรือผ่านราคาที่กำหนดไว้ หากหุ้นปิดที่ $50 และเปิดที่ $44 คำสั่ง Stop ที่ $48 จะถูกส่งคำสั่งทันทีเมื่อตลาดเปิดและจับคู่ที่ราคาใกล้เคียง $44 เนื่องจากราคาได้กระโดดข้ามจุดดังกล่าวไปแล้ว คำสั่ง Stop รับประกันเพียง "ความพยายาม" ในการส่งคำสั่งเท่านั้น ไม่ใช่ระดับราคาที่แน่นอน ส่วน คำสั่ง stop-limit จะช่วยจำกัดราคาที่คุณยอมรับได้ แต่มีความเสี่ยงที่จะไม่สามารถจับคู่คำสั่งได้เลย
- กลไกการระงับการซื้อขาย (Halts) ไม่ใช่ช่องว่างราคา คือตัวควบคุมความผันผวนของตลาด เกณฑ์ Limit up-limit down (LULD) จะหยุดการซื้อขายหากราคาหุ้นเคลื่อนที่เกินกว่าเปอร์เซ็นต์ที่กำหนดจากราคาเฉลี่ยล่าสุด โดยปกติจะอยู่ที่ 5% หรือ 10% สำหรับหุ้นส่วนใหญ่ และจะกว้างกว่าสำหรับหุ้นที่มีราคาต่ำ รวมถึงจะเพิ่มเป็นสองเท่าในช่วงเปิดและปิดตลาด หากราคาเคลื่อนที่ออกนอกกรอบอย่างต่อเนื่องจะมีการระงับการซื้อขายชั่วคราวเป็นเวลาห้านาที สำหรับกลไก Circuit breakers ของตลาดโดยรวมจะระงับการซื้อขาย ทั้งหมด หาก S&P 500 ลดลง 7% (Level 1) หรือ 13% (Level 2) จากราคาปิดก่อนหน้า และจะปิดการซื้อขายประจำวันหากลดลงถึง 20% (Level 3) กลไกเหล่านี้ไม่ได้ป้องกันการเกิดช่องว่างราคา แต่เป็นตัวควบคุมสิ่งที่เกิดขึ้นหลังจากเริ่มการซื้อขายอีกครั้ง
- "Gap fill" คือการอธิบายลักษณะราคา ไม่ใช่กำหนดการ นักเทรดจะกล่าวว่าช่องว่างราคา "ถูกเติมเต็ม" (fills) เมื่อราคากลับมาที่ระดับราคาปิดก่อนหน้า อย่างไรก็ตาม ไม่มีข้อผูกมัดใดๆ ว่าราคาจะต้องกลับมาที่ระดับนั้นในกรอบเวลาใดๆ ตัวอย่างเช่น วันที่มีช่องว่างราคาใหญ่ที่สุดของ SPY ในช่วงครึ่งปีนั้น เคลื่อนที่ไปเพียง -0.08% หลังจากตลาดเปิด โดยไม่มีการเติมเต็มช่องว่างและไม่มีการย่อตัว แต่เป็นการสร้างระดับราคาใหม่แทน
ในทางสถิติ การซื้อขายช่วงข้ามคืน (Overnight) และระหว่างวัน (Intraday) ถือเป็นตลาดที่แตกต่างกัน ซึ่งเป็นเหตุผลว่าทำไม วิธีการวัดผลตอบแทนรายเดือน จึงให้คำตอบที่ต่างกัน ขึ้นอยู่กับว่ามีการนับรวมการกระโดดของราคาในช่วงข้ามคืนด้วยหรือไม่
คำถามที่พบบ่อย
ปัจจัยใดที่ทำให้ราคาหุ้นเกิด Gap up หรือ Gap down ในช่วงข้ามคืน?
ตลาดปิดทำการ 17.5 ชั่วโมงจากทุก 24 ชั่วโมง แต่ข้อมูลข่าวสารยังคงเกิดขึ้นอย่างต่อเนื่อง เช่น การประกาศผลประกอบการหลังตลาดปิด ข่าวสารที่เกิดขึ้นก่อนตลาดเปิด หรือการซื้อขายในตลาดต่างประเทศตลอดทั้งคืน การประมูลราคาเปิด (Opening auction) จะทำการจับคู่คำสั่งซื้อขายที่สะสมไว้ ณ ราคาเดียว โดยส่วนต่างระหว่างราคาเปิดกับราคาปิดของวันก่อนหน้าคือค่า Gap
การเกิด Gap ในช่วงข้ามคืนเกิดขึ้นบ่อยแค่ไหน?
เกิดขึ้นเป็นปกติ ใน H1 2026 ค่าเฉลี่ย Absolute gap ข้ามคืนของ SPY อยู่ที่ 0.45% และ 41 ของ 123 เซสชัน มีราคาเปิดห่างจากราคาปิดวันก่อนหน้าอย่างน้อยครึ่งเปอร์เซ็นต์ สำหรับหุ้นรายตัวจะมี Gap ที่ใหญ่กว่า โดย Tesla มีค่าเฉลี่ยอยู่ที่ 1.05%
หุ้นเกิด Gap ในวันจันทร์มากกว่าวันอื่นหรือไม่?
มากกว่าเล็กน้อย ตั้งแต่เดือนมกราคม 2024 ถึงเดือนมิถุนายน 2026 ค่าเฉลี่ย Absolute gap ในวันจันทร์ของ SPY อยู่ที่ 0.52% ซึ่งถือเป็นวันที่มี Gap กว้างที่สุดเมื่อเทียบกับ 0.36% ในวันอังคาร ทั้งนี้ช่วงวันหยุดสุดสัปดาห์ส่งผลให้มีชั่วโมงที่ตลาดปิดนานขึ้น แต่ไม่ได้กำหนดทิศทางของราคา
Gap จะถูกปิด (Fill) เสมอไปหรือไม่?
ไม่เสมอไป ประโยคที่ว่า "Gap จะถูกปิดเสมอ" เป็นเพียงความเชื่อในการเทรด บาง Gap อาจถูกปิดภายในไม่กี่ชั่วโมง แต่บาง Gap ก็ไม่กลับไปที่ราคาปิดเดิมอีกเลย โปรดใช้สถิติการปิด Gap เป็นเพียงข้อมูลอธิบายเหตุการณ์ในอดีต ไม่ใช่กฎเกณฑ์สำหรับเซสชันถัดไป
จะเกิดอะไรขึ้นกับ Stop-loss หากหุ้นเกิด Gap down?
คำสั่ง Stop-loss จะถูกส่งคำสั่งเมื่อตลาดเปิด และจะถูกจับคู่ที่ราคาใดก็ได้ที่ตลาดเสนอ ซึ่งอาจเป็นราคาที่ต่ำกว่าราคา Stop-loss มาก เนื่องจากไม่มีการซื้อขายในช่วงที่เกิด Gap เพื่อมารองรับคำสั่งนั้น
ตัวเลขทั้งหมดข้างต้นมาจากฐานข้อมูลที่จัดเก็บไว้ — คุณสามารถขยายคำสั่ง SQL ภายใต้แผงควบคุม หรือแยกการเคลื่อนที่ของหุ้นรายตัวระหว่างช่วงข้ามคืนและช่วงระหว่างวัน (Intraday) ได้บนเทอร์มินัลของ Strasmore