Strasmore Research
การเรียนรู้ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-07-24 · data as of July 24, 2026 · refreshed weekly

ทำไม Spread ช่วงเปิดตลาดถึงกว้างขึ้น

วิเคราะห์สาเหตุที่ spreads กว้างขึ้นในช่วงเปิดตลาดผ่านข้อมูล tick-level quotes โดยแสดงให้เห็นการเปลี่ยนแปลงรายครึ่งชั่วโมงและต้นทุนจากการซื้อขายช่วง premarket

ส่วนต่างราคา (spreads) ในช่วงเปิดตลาดมีความกว้างมากกว่าช่วงเวลาอื่นเกือบทั้งหมดของการซื้อขายปกติในสหรัฐฯ และหากหุ้นมีสภาพคล่องต่ำเท่าใด ส่วนต่างราคาจะยิ่งกว้างขึ้นเท่านั้น ในช่วงเวลาที่กำหนดด้านล่างนี้ ครึ่งชั่วโมงแรกของการซื้อขายมีค่ามัธยฐานของ bid-ask spread อยู่ที่ 3.34 เท่ากับช่วงเที่ยงของ Etsy ซึ่งเป็นหุ้น mid-cap และอยู่ที่ 2.02 เท่ากับ Apple ในขณะที่ SPY ซึ่งเป็นกองทุนที่มีการเสนอราคามากที่สุดในบรรดาสามหลักทรัพย์นี้ มีอัตราส่วนเฉลี่ยอยู่ที่ 1 ซึ่งเป็นเส้นราบเนื่องจากข้อจำกัดของกริดราคาที่ระดับหนึ่งเซนต์ ไม่ใช่สภาวะตลาดเปิดแบบอิสระ หน้าเว็บนี้คำนวณเวลาโดยอ้างอิงจากราคาเสนอซื้อขายรายธุรกรรม (tick-level quotes)

ต้นทุนของ market order จากค่า spread

หุ้นทุกตัวจะแสดงราคาพร้อมกันสองราคา ได้แก่ bid ซึ่งเป็นราคาเสนอซื้อที่ดีที่สุด และ ask ซึ่งเป็นราคาเสนอขายที่ดีที่สุด ส่วนต่างระหว่างสองราคานี้คือ bid-ask spread และ market order ซึ่งเป็นการซื้อขายทันที ณ ราคาที่ดีที่สุดที่มีอยู่ในขณะนั้น จะต้องจ่ายส่วนต่างนี้ โดยการซื้อจะถูกจับคู่ที่ราคา ask และการขายจะถูกจับคู่ที่ราคา bid โดยส่วนต่างจะตกเป็นของผู้ที่เสนอราคา ซึ่งโดยปกติคือ market maker คุณสมบัติสองประการของราคาเสนอซื้อขายนี้มีความสำคัญต่อเนื้อหาด้านล่าง ได้แก่ ราคาจะผันแปรตามช่วงเวลาซึ่งจะมีค่าใช้จ่ายสูงที่สุดในช่วงเช้า และราคาจะขยับทีละหนึ่งเซนต์ โดยค่า spread ที่แคบที่สุดที่ ETF ราคาสูงและหุ้น mid-cap ที่ราคาถูกกว่ามากสามารถแสดงได้คือหนึ่งเซนต์เท่ากัน

ส่วนต่างราคา: รูปแบบเดียวในสามระดับสภาพคล่อง

แผนภูมินี้แสดงผลตามระดับสภาพคล่องสามระดับ ได้แก่ SPY ซึ่งเป็น S&P 500 ETF, Apple ซึ่งเป็นหุ้นขนาดใหญ่มาก (mega-cap) และ Etsy ซึ่งเป็นหุ้นขนาดกลาง (mid-cap) ข้อมูลทุกการอัปเดต NBBO ที่ใช้งานได้ ซึ่งก็คือราคาเสนอซื้อและเสนอขายที่ดีที่สุดในตลาดที่โบรกเกอร์ของคุณแสดง โดยสามารถอ่านรายละเอียดเพิ่มเติมได้ใน คำอธิบาย NBBO ของเรา ในช่วงเวลาหลายวันที่ผ่านมา ข้อมูลจะถูกจัดกลุ่มลงในช่วงเวลา 30 นาทีของช่วงการซื้อขายปกติ โดยค่ามัธยฐานของส่วนต่างราคา (median spread) ในแต่ละช่วงจะถูกหารด้วยค่าส่วนต่างที่แคบที่สุดของหุ้นตัวนั้น ดังนั้นค่า 1 จึงหมายถึงระดับที่แคบที่สุดเท่าที่หุ้นตัวนั้นจะทำได้

คำสั่งดึงข้อมูลค่ามัธยฐานของ spread ในทุกครึ่งชั่วโมง เมื่อเทียบเป็นจำนวนเท่าของช่วงที่แคบที่สุดของแต่ละชื่อ (เวลาทำการปกติ, ET)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT et_time,
       round(anyIf(rel, ticker = 'SPY'), 2) AS spy_x,
       round(anyIf(rel, ticker = 'AAPL'), 2) AS aapl_x,
       round(anyIf(rel, ticker = 'ETSY'), 2) AS etsy_x
FROM (
    SELECT ticker,
           et_time,
           median_bps / min(median_bps) OVER (PARTITION BY ticker) AS rel
    FROM (
        SELECT ticker,
               formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
               quantileExact(0.5)(toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000) AS median_bps
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
          AND sip_timestamp >= toDateTime(today() - 14)
          AND sip_timestamp < toDateTime(today() - 3)
          AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
          AND bid_price > 0
          AND ask_price > bid_price
        GROUP BY ticker, et_time
    )
)
GROUP BY et_time
ORDER BY et_time

ตำราวิชาการเรียกรูปแบบระหว่างวันว่าเป็นรูปตัว U กล่าวคือ ส่วนต่างจะกว้างในช่วงเปิดตลาด แคบลงในช่วงกลางวัน และกว้างขึ้นอีกครั้งในช่วงใกล้ปิดตลาด แต่จากการวัดผลที่นี่พบว่ามีลักษณะเหมือนทางลาดสกี สำหรับหุ้นที่มีส่วนต่างราคาสามารถเคลื่อนที่ได้ Etsy เปิดตลาดที่ 5.78 เท่าของระดับที่แคบที่สุด ลดลงเหลือ 2.99 เท่าในช่วงเวลา 10:30 และอยู่ที่ 1.86 เท่าในช่วงพักเที่ยง ส่วน Apple เปิดตลาดที่ 3.04 เท่า สำหรับทั้งสามหลักทรัพย์ ช่วงเวลาครึ่งชั่วโมงที่แคบที่สุดคือช่วงสุดท้าย คือ 1, 1 และ 1 ตามลำดับ ดังนั้นการขยายตัวของส่วนต่างราคาที่เทรดเดอร์เชื่อมโยงกับ "ช่วงปิดตลาด" นั้น แท้จริงแล้วเป็นช่วงของการซื้อขายต่อเนื่องที่เลยช่วง การประมูลปิดตลาด ไปแล้ว

เส้นของ SPY มีลักษณะราบเรียบ โดยอยู่ที่ 1 ในช่วงเปิดตลาด และ 1 ในช่วงพักเที่ยง ค่ามัธยฐานของส่วนต่างราคาไม่มีการเคลื่อนไหวตลอดทั้งวัน ซึ่งไม่ได้หมายความว่าไม่มีส่วนต่างราคาในช่วงเปิดตลาด แต่เป็นเพราะโครงสร้างราคาแบบ penny grid

ตารางระดับ Penny: จุดที่ส่วนต่างราคา (Premium) ซ่อนตัวอยู่ในหุ้นที่มีสภาพคล่องสูง

ค่ามัธยฐานของ spread ของ SPY อยู่ที่ 2¢ เมื่อเปิดตลาด และ 2¢ ในช่วงกลางวัน ซึ่งเป็นค่าสองเซนต์ที่เท่ากัน ดังนั้นค่ามัธยฐานจึงไม่สามารถแสดงความแตกต่างได้ แต่ข้อมูลการกระจายตัวด้านล่างสามารถบอกได้ แผนภูมินี้แสดงสัดส่วนของการอัปเดตราคาที่อยู่ที่ระดับขั้นต่ำหนึ่งเซนต์ ในทุกๆ ครึ่งชั่วโมง

คำสั่งดึงข้อมูลสัดส่วนการอัปเดตราคาที่ spread ขั้นต่ำ 1 เซนต์ แบ่งตามช่วงครึ่งชั่วโมง (เวลาทำการปกติ, ET)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT et_time,
       round(100 * countIf(ticker = 'SPY' AND spread_c <= 1.0001) / countIf(ticker = 'SPY'), 1) AS spy_pct_penny,
       round(100 * countIf(ticker = 'AAPL' AND spread_c <= 1.0001) / countIf(ticker = 'AAPL'), 1) AS aapl_pct_penny,
       round(100 * countIf(ticker = 'ETSY' AND spread_c <= 1.0001) / countIf(ticker = 'ETSY'), 1) AS etsy_pct_penny
FROM (
    SELECT ticker,
           formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
           toFloat64(ask_price - bid_price) * 100 AS spread_c
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
      AND sip_timestamp >= toDateTime(today() - 14)
      AND sip_timestamp < toDateTime(today() - 3)
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
      AND bid_price > 0
      AND ask_price > bid_price
)
GROUP BY et_time
ORDER BY et_time

SPY อยู่ที่ระดับต่ำสุดหนึ่งเซนต์เป็นสัดส่วน 20.7% ของการอัปเดตในช่วงครึ่งชั่วโมงแรกของการเปิดตลาด เทียบกับ 43.1% ในช่วงครึ่งชั่วโมงสุดท้าย; Apple อยู่ที่ 3.1% เทียบกับ 30.6%; Etsy อยู่ที่ 0.2% เทียบกับ 8.3% หุ้นทุกตัวเปิดตลาดด้วยระยะห่างจากระดับต่ำสุดมากกว่าตอนปิดตลาด และค่าส่วนปลาย (tail) ก็มีการเปลี่ยนแปลงเช่นกัน: ค่า spread ที่เปอร์เซ็นไทล์ที่ 90 ของ SPY เมื่อเปิดตลาดวัดได้ 4¢ เทียบกับ 3¢ ในช่วงกลางวัน หรือคิดเป็น 1.32 เท่า ในขณะที่ค่ามัธยฐานแสดงเพียง 1 เท่า ส่วนต่างราคา (Premium) นั้นมีอยู่ใน SPY แต่ตารางระดับ Penny มีความละเอียดไม่เพียงพอที่ค่ามัธยฐานจะตรวจพบได้

ทำไมค่า spread จึงกว้างขึ้นในช่วงเปิดตลาด?

มี 3 เงื่อนไขที่เกิดขึ้นพร้อมกันในช่วงครึ่งชั่วโมงแรกของการเปิดตลาด และเงื่อนไขเหล่านี้จะหมดไปเมื่อถึงช่วงพักเที่ยง

  • ข้อมูลค้างคาจากช่วงข้ามคืนถูกส่งเข้ามาพร้อมกัน ระหว่างเวลาปิดตลาด 16:00 น. จนถึง การประมูลเปิดตลาด ในเช้าวันถัดไป ข้อมูลจำนวน 17 ชั่วโมงครึ่ง ทั้งผลประกอบการ, การคาดการณ์แนวโน้ม และข้อมูลจากตลาดต่างประเทศ จะสะสมอยู่ในช่วงที่การซื้อขายแบบต่อเนื่องหยุดชะงัก ราคาเสนอซื้อขายแรกจะเคลื่อนที่ตามช่องว่างราคา (gap) ไม่ใช่ราคาปิดก่อนหน้า
  • กระบวนการค้นหาราคา (Price discovery) ยังไม่สิ้นสุด การประมูลจะรวมข้อมูลที่ค้างอยู่ทั้งหมดให้กลายเป็นราคาเดียว จากนั้นตลาดจะใช้เวลาอีกหลายนาทีเพื่อหาช่วงราคาที่เหมาะสม และราคาเสนอซื้อขายจะเปลี่ยนแปลงอย่างรวดเร็วที่สุดในขณะที่กระบวนการค้นหาราคานี้กำลังดำเนินอยู่
  • คำสั่งซื้อขายในสมุดคำสั่ง (Book) ยังไม่เต็ม การซื้อขายช่วง Premarket มีผู้เสนอราคาจำนวนน้อยกว่ามาก และการเปิดตลาดไม่ได้ทำให้สมุดคำสั่งเริ่มต้นใหม่ในทันที

ผลกระทบของการหยุดพักการซื้อขายต่อระยะเวลา

การหยุดพักการซื้อขาย (Halt) คือรูปแบบที่รุนแรงที่สุดของกลไกเดียวกันนี้ ภายใต้กฎ limit up-limit down (LULD) หากราคาหุ้นเคลื่อนที่ออกนอกกรอบที่กำหนดไว้รอบราคาเฉลี่ยล่าสุด หุ้นตัวนั้นจะถูกระงับการซื้อขายชั่วคราวเป็นเวลาห้านาที นอกจากนี้ตลาดหลักทรัพย์อาจสั่งหยุดการซื้อขายเพื่อรอการประกาศข่าวสารด้วย ในระหว่างที่หยุดพักการซื้อขาย จะไม่มีราคาเสนอซื้อและเสนอขายที่จับคู่กันได้ — สมุดคำสั่งที่มีด้านเดียวหรือราคาตัดกัน ที่ปรากฏบนหน้าจอจึงไม่ใช่ตลาดที่สามารถซื้อขายได้ การซื้อขายจะเริ่มต้นใหม่ผ่านการประมูลเปิดตลาด (reopening auction) ซึ่งราคาเสนอขายแรกจะต้องรับภาระทั้งข้อมูลที่ค้างคาและกระบวนการค้นหาราคาเหมือนช่วงเปิดตลาดเวลา 09:30 น. แต่ถูกบีบอัดให้เหลือเพียงไม่กี่นาที หุ้นที่ถูกสั่งหยุดการซื้อขายใกล้ช่วงเปิดตลาดจึงต้องเผชิญกับความผันผวนที่สูงขึ้นเป็นสองเท่า

ตลาด Premarket คือตลาดที่แตกต่างออกไป

ปัจจัยขับเคลื่อนหลักคือสภาพคล่องที่เบาบาง (thin-book driver) ซึ่งมักถูกกล่าวถึงเสมอ แผงข้อมูลนี้ใช้ราคาเพื่อวัดค่าดังกล่าว โดยใช้หุ้นตัวเดิม ในช่วงเวลาเดิม และแบ่งเป็นห้าช่วงเวลาของวัน โดยวัดผลเป็น basis points (bps) หรือหนึ่งในร้อยส่วนของราคาหุ้น เพื่อให้สามารถเปรียบเทียบหุ้นที่มีราคาต่างกันได้

คำสั่งดึงข้อมูลค่ามัธยฐานของ quoted spread แบ่งตามช่วงเวลาการซื้อขาย ในหน่วย basis points (เวลา ET)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT phase,
       round(quantileExact(0.5)(spy_b), 2) AS spy_bps,
       round(quantileExact(0.5)(aapl_b), 2) AS aapl_bps,
       round(quantileExact(0.5)(etsy_b), 2) AS etsy_bps
FROM (
    SELECT multiIf(et_min >= 240 AND et_min < 420, 'Premarket 04:00-07:00',
                   et_min >= 420 AND et_min < 570, 'Premarket 07:00-09:30',
                   et_min >= 570 AND et_min < 600, 'Open 09:30-10:00',
                   et_min >= 720 AND et_min < 840, 'Midday 12:00-14:00',
                   et_min >= 960 AND et_min < 1200, 'After-hours 16:00-20:00', 'other') AS phase,
           if(ticker = 'SPY', spread_bps, NULL) AS spy_b,
           if(ticker = 'AAPL', spread_bps, NULL) AS aapl_b,
           if(ticker = 'ETSY', spread_bps, NULL) AS etsy_b
    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) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
          AND sip_timestamp >= toDateTime(today() - 14)
          AND sip_timestamp < toDateTime(today() - 3)
          AND bid_price > 0
          AND ask_price > bid_price
    )
    WHERE phase != 'other'
)
GROUP BY phase
ORDER BY indexOf(['Premarket 04:00-07:00', 'Premarket 07:00-09:30', 'Open 09:30-10:00', 'Midday 12:00-14:00', 'After-hours 16:00-20:00'], phase)

Premarket ไม่ใช่ช่วงเปิดตลาดที่แย่กว่า แต่เป็นตลาดที่มีลักษณะต่างออกไป ค่ากลางของส่วนต่างราคาเสนอซื้อเสนอขาย (median quoted spread) ของ Etsy อยู่ที่ 306.25 bps ระหว่างเวลา 4:00 ถึง 7:00 น. ตามเวลา ET และอยู่ที่ 307.57 bps ตั้งแต่เวลา 7:00 น. จนถึงเวลาเปิดตลาด เทียบกับ 30.79 bps ในช่วงครึ่งชั่วโมงแรกของการเปิดตลาด และ 9.21 bps ในช่วงกลางวัน ซึ่งค่าเหล่านี้คือเปอร์เซ็นต์ของราคา ไม่ใช่หน่วยเซนต์ Apple มีส่วนต่างราคาเสนอซื้อเสนอขายที่ 9.82 bps ในช่วงเช้า เทียบกับ 0.96 bps ในช่วงกลางวัน แม้แต่ SPY ยังมีส่วนต่างขยายตัวเป็น 0.8 bps เทียบกับ 0.27 bps หลังจากเวลา 16:00 น. ส่วนต่างจะกลับเข้าสู่สภาวะปกติ โดย Etsy อยู่ที่ 240.45 bps และ Apple อยู่ที่ 6.99 bps

ส่วนต่างราคาในหน่วยเซนต์: ช่วงเปิดตลาดเทียบกับช่วงกลางวัน

ต้นทุนแสดงผลในหน่วยเซนต์ ตารางนี้เปรียบเทียบค่าต่างๆ ของหุ้นตัวเดียวกัน ได้แก่ ค่ากลางของ spread ในช่วงครึ่งชั่วโมงแรกของการเปิดตลาด (9:30–10:00 a.m. ET) เทียบกับช่วงกลางวัน (noon–2:00 p.m. ET) โดยแสดงค่า quote ในระดับ percentile ที่ 90 ของแต่ละช่วง จำนวนครั้งที่มีการอัปเดต quote และจำนวน quote ที่ถูกคัดออกเนื่องจากเป็นแบบด้านเดียว (one-sided), แบบราคาเท่ากัน (locked) หรือแบบราคาตัดกัน (crossed)

คำสั่งดึงข้อมูลส่วนต่างราคาช่วงเปิดตลาด: ค่ามัธยฐานและค่า percentile ที่ 90 ของ spread ช่วงเปิด (9:30-10:00 ET) เทียบกับช่วงกลางวัน (12:00-14:00 ET)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker,
       round(countIf(isNotNull(spread_cents)) / 1e6, 2) AS valid_updates_m,
       round(quantileExactIf(0.5)(spread_cents, clock_min BETWEEN 810 AND 839), 2) AS open30_cents,
       round(quantileExactIf(0.5)(spread_cents, clock_min BETWEEN 960 AND 1079), 2) AS midday_cents,
       round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839), 2) AS open30_bps,
       round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS midday_bps,
       round(quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839)
             / quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS open_vs_midday_x,
       round(quantileExactIf(0.9)(spread_cents, clock_min BETWEEN 810 AND 839), 2) AS open30_p90_cents,
       round(quantileExactIf(0.9)(spread_cents, clock_min BETWEEN 960 AND 1079), 2) AS midday_p90_cents,
       round(quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 810 AND 839), 2) AS open30_p90_bps,
       round(quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 810 AND 839)
             / quantileExactIf(0.9)(spread_bps, clock_min BETWEEN 960 AND 1079), 2) AS p90_x,
       toString(countIf(isNull(spread_cents))) AS dropped_onesided_locked_crossed
FROM (
    SELECT ticker,
           toHour(sip_timestamp) * 60 + toMinute(sip_timestamp) AS clock_min,
           if(bid_price > 0 AND ask_price > bid_price, toFloat64(ask_price - bid_price) * 100, NULL) AS spread_cents,
           if(bid_price > 0 AND ask_price > bid_price, toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, NULL) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
      AND sip_timestamp >= toDateTime(today() - 14)
      AND sip_timestamp < toDateTime(today() - 3)
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'ETSY'], ticker)

ค่าเซนต์ต่อหุ้นและค่าดอลลาร์ต่อ 100 หุ้นมีค่าเท่ากัน ตารางนี้จึงเปรียบเสมือนใบแจ้งหนี้ การซื้อขายไป-กลับจำนวน 100 หุ้นใน Etsy ด้วยค่ากลางของราคาช่วงเปิดตลาด จะมีต้นทุนอยู่ที่ $24 เทียบกับ $7 ที่ราคาช่วงกลางวัน สำหรับ Apple คือ $6 เทียบกับ $3 ส่วนต่างราคาจะเพิ่มสูงขึ้นเมื่อปริมาณการซื้อขายลดลง โดยมีอัตราส่วนอยู่ที่ 3.34x สำหรับ Etsy, 2.02x สำหรับ Apple และ 1x สำหรับ SPY ซึ่ง Etsy มีจำนวนการอัปเดต quote อยู่ที่ 0.19 ล้านครั้ง ซึ่งเป็นสัดส่วนที่น้อยมากเมื่อเทียบกับ Apple ที่มีจำนวน 8.97 ล้านครั้ง ความผันผวนของช่วงเวลาส่งผลกระทบมากกว่าช่วงเวลา โดยค่า spread ในช่วงครึ่งชั่วโมงแรกของการเปิดตลาดของ SPY อยู่ที่ 0.27 bps ซึ่งแคบกว่าช่วงกลางวันที่เงียบสงบที่สุดของ Etsy (9.21 bps) ในขณะที่ช่วงเปิดตลาดที่มีความผันผวนสูงสุดของ Etsy วัดค่าได้ 75.67 bps

ค่า Premium ปรากฏขึ้นในทุกเซสชันหรือไม่?

การใช้ค่ามัธยฐานจากการรวมข้อมูลราคาหลายวันช่วยตอบคำถามเกี่ยวกับช่วงเวลา ไม่ใช่แค่ช่วงเช้า แผงข้อมูลนี้คำนวณอัตราส่วนระหว่างราคาเปิดเทียบกับราคาช่วงกลางวันใหม่ในแต่ละเซสชัน ได้แก่ เซสชันปกติ เซสชันที่ผันผวนน้อยที่สุด เซสชันที่แย่ที่สุด และหุ้นที่มีส่วนต่างราคาเปิดกว้างที่สุด

คำสั่งดึงข้อมูลเปรียบเทียบแต่ละเซสชัน: ความถี่และส่วนต่างที่ช่วงเปิดกว้างกว่าช่วงกลางวัน
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT ticker,
       count() AS sessions,
       round(quantileExact(0.5)(ratio), 2) AS median_session_x,
       round(min(ratio), 2) AS calmest_session_x,
       round(max(ratio), 2) AS worst_session_x,
       round(100 * countIf(ratio > 1) / count(), 0) AS pct_sessions_open_wider
FROM (
    SELECT ticker,
           toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session_date,
           quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 810 AND 839)
             / quantileExactIf(0.5)(spread_bps, clock_min BETWEEN 960 AND 1079) AS ratio
    FROM (
        SELECT ticker,
               sip_timestamp,
               toHour(sip_timestamp) * 60 + toMinute(sip_timestamp) AS clock_min,
               toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('SPY', 'AAPL', 'ETSY')
          AND sip_timestamp >= toDateTime(today() - 14)
          AND sip_timestamp < toDateTime(today() - 3)
          AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
          AND bid_price > 0
          AND ask_price > bid_price
    )
    GROUP BY ticker, session_date
    HAVING countIf(clock_min BETWEEN 810 AND 839) > 0
       AND countIf(clock_min BETWEEN 960 AND 1079) > 0
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'ETSY'], ticker)

จากการตรวจสอบ 7 เซสชัน พบว่าราคาเปิดมีความกว้างมากกว่าราคาช่วงกลางวันใน 71% ของ SPY, 100% ของ Apple และ 100% ของ Etsy โดยค่า Premium ของเซสชันปกติคือ: 1x สำหรับ SPY ซึ่งเป็นหุ้นที่มีสภาพคล่องสูงสุดในตลาด โดยส่วนต่างที่ขยายตัวอย่างสม่ำเสมอนั้นมีค่าน้อยมากจนแทบสังเกตไม่ได้ เมื่อเทียบกับ 2.03x สำหรับ Apple และ 3.29x สำหรับ Etsy ซึ่งค่า Premium นั้นเห็นได้อย่างชัดเจน บทเรียนที่ได้รับคือเรื่องการกระจายตัว (Dispersion): ช่วงเช้าที่ผันผวนน้อยที่สุดของ Etsy เปิดที่ 2.08x ของราคาช่วงกลางวัน และช่วงที่แย่ที่สุดอยู่ที่ 4.5x ดังนั้นค่า Premium ช่วงเปิดตลาดจึงเป็นเพียงค่าเฉลี่ยและค่าส่วนปลาย (tail) แต่ไม่ใช่การรับประกันสิ่งที่จะเกิดขึ้นในเวลา 9:31 น. ของวันพรุ่งนี้

A stress test: the MU morning of July 7, 2026

Rolling windows smooth away single mornings, so here is one pinned: Micron on Tuesday, July 7, 2026, inside the semiconductor break that day's recap walks through.

คำสั่งดึงข้อมูลMU เข้าสู่ 7 กรกฎาคม 2026: ราคาปิดช่วงเวลาทำการปกติก่อนหน้า, ราคาเปิด, overnight gap
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH prev AS (
    SELECT argMax(toFloat64(close), window_start) AS prev_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MU'
      AND window_start >= '2026-07-06 13:30:00'
      AND window_start < '2026-07-06 20:00:00'
),
day AS (
    SELECT argMin(toFloat64(open), window_start) AS day_open
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MU'
      AND window_start >= '2026-07-07 13:30:00'
      AND window_start < '2026-07-07 20:00:00'
)
SELECT round((SELECT prev_close FROM prev), 2) AS prior_close,
       round((SELECT day_open FROM day), 2) AS jul7_open,
       round(((SELECT day_open FROM day) - (SELECT prev_close FROM prev)) / (SELECT prev_close FROM prev) * 100, 1) AS overnight_gap_pct

MU closed at $984.31 and opened at $923.01 — an overnight gap of -6.2%. Its spread clock that day:

คำสั่งดึงข้อมูลMU — ค่ามัธยฐานของ quoted spread แบ่งตามครึ่งชั่วโมง ณ 7 กรกฎาคม 2026 (ET, เวลาทำการปกติ)
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT et_time,
       median_spread_cents,
       median_spread_bps,
       round(100 * median_spread_cents / max(median_spread_cents) OVER (), 1) AS pct_of_widest,
       dropped_onesided_locked_crossed
FROM (
    SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
           round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) * 100, bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_cents,
           round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price > bid_price), 1) AS median_spread_bps,
           toString(countIf(NOT (bid_price > 0 AND ask_price > bid_price))) AS dropped_onesided_locked_crossed
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'MU'
      AND sip_timestamp >= '2026-07-07 13:30:00'
      AND sip_timestamp < '2026-07-07 20:00:00'
    GROUP BY et_time
)
ORDER BY et_time

The clock kept time. MU's opening half hour ran a median spread of 62¢ — 6.7 bps on a stock opening at $923.01 — the widest half-hour bucket of its session. One bucket later the median was 45¢, then 39¢ at noon and 38¢ in the last half hour. The premium arrived on schedule — and the liquidity tier still ruled: even here MU stayed tighter in percentage terms than Etsy's ordinary open (30.79 bps).

::: Data notes: window, filters, method
The SPY/Apple/Etsy panels roll: eleven calendar days of NBBO updates ending three days before the last refresh (clear of the feed's ingest lag). The regular-hours panels cut the session with a UTC minute-of-day filter on the summer (EDT) clock; the guard below checks it still lands on a 9:30 a.m. ET start at both ends of the window (570 is 9:30 a.m.) — on the winter clock it trips and holds the page for rework. The phases panel converts to the Eastern clock directly, covering 4:00 a.m.–8:00 p.m. ET either way. One-sided (zero bid or ask) and locked or crossed (bid at or above ask) quotes are excluded throughout; session stability keeps only sessions quoting in BOTH windows. Medians and 90th percentiles are exact; the MU panels are pinned to July 6–7, 2026.

คำสั่งดึงข้อมูลWindow guard: ตัวกรองเซสชัน UTC กำหนดให้เริ่มที่ 9:30 a.m. ET ทั้งสองด้านของ rolling window
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT toHour(toTimeZone(toDateTime(today() - 14) + toIntervalMinute(810), 'America/New_York')) * 60
         + toMinute(toTimeZone(toDateTime(today() - 14) + toIntervalMinute(810), 'America/New_York')) AS win_start_et_min,
       toHour(toTimeZone(toDateTime(today() - 4) + toIntervalMinute(810), 'America/New_York')) * 60
         + toMinute(toTimeZone(toDateTime(today() - 4) + toIntervalMinute(810), 'America/New_York')) AS win_end_et_min

:::

คำถามที่พบบ่อย

ช่วงเวลาใดที่ bid-ask spread กว้างที่สุด?

ช่วงก่อนตลาดเปิด (Premarket) — ค่ามัธยฐานของ spread ที่เสนอราคาของ Etsy อยู่ที่ 306.25 bps ระหว่างเวลา 4:00 ถึง 7:00 น. ตามเวลา ET เทียบกับ 9.21 bps ในช่วงกลางวัน ภายในเวลาทำการปกติ ช่วงที่ spread กว้างที่สุดคือครึ่งชั่วโมงแรกหลังตลาดเปิด และช่วงที่แคบที่สุดคือครึ่งชั่วโมงสุดท้ายก่อนตลาดปิด

ทำไม spread ของ SPY ถึงดูคงที่ในช่วงเปิดตลาด?

หุ้นสหรัฐฯ มีการเสนอราคาเป็นหน่วยเซนต์เต็มจำนวน และค่ามัธยฐาน spread ของ SPY อยู่ที่ 2¢ เกือบตลอดทั้งวัน ซึ่งเป็นกริดที่หยาบเกินกว่าจะตรวจพบการขยายตัวเพียงเล็กน้อย เมื่อพิจารณาเป็นรายเซสชัน ช่วงเปิดตลาดของ SPY ยังคงมีความกว้างมากกว่าช่วงกลางวันใน 71% ของเซสชัน และค่า spread ช่วงเปิดตลาดที่ระดับ percentile ที่ 90 วัดได้ 4¢ เทียบกับ 3¢

การส่งคำสั่งซื้อขายแบบ market order ในช่วงเปิดตลาดเป็นสิ่งที่ไม่ดีหรือไม่?

เป็นหนึ่งในช่วงเวลาที่มีต้นทุนสูงที่สุดของเซสชันปกติสำหรับผู้ที่ต้องการความรวดเร็วในการทำรายการ — $24 เทียบกับ $7 สำหรับการซื้อขาย Etsy จำนวน 100 หุ้นแบบไป-กลับในช่วงเวลาข้างต้น การใช้ limit order จะช่วยจำกัดต้นทุนดังกล่าว แต่มีความเสี่ยงที่จะไม่เกิดการจับคู่คำสั่ง และคำสั่งที่รอได้อาจมีส่วนต่างที่แคบกว่า: ค่า premium ของ Etsy ลดลงจาก 5.78x เหลือ 2.99x ภายในหนึ่งชั่วโมง

spread จะขยายตัวอีกครั้งในช่วงปิดตลาดหรือไม่?

ไม่เกิดขึ้นภายในเวลาทำการปกติ — ช่วงครึ่งชั่วโมงสุดท้ายเป็นช่วงที่แคบที่สุดของวันสำหรับหุ้นทั้งสามตัว การขยายตัวของ spread จะเกิดขึ้นหลังเสียงระฆังเวลา 16:00 น. ในช่วง extended session ที่มีสภาพคล่องน้อยกว่า โดย Apple มีการเสนอราคาที่ 6.99 bps ในช่วงนั้น เทียบกับ 0.96 bps ในช่วงกลางวัน

spread ของ options ขยายตัวในช่วงเปิดตลาดด้วยหรือไม่?

ตารางเหล่านี้วัดเฉพาะราคาหุ้นและไม่ได้ระบุข้อมูลเกี่ยวกับ options กลไกการทำงานนั้นเป็นไปในทิศทางเดียวกัน — ราคาของ option ขึ้นอยู่กับราคาของหุ้นอ้างอิง ซึ่งจะมีความผันผวนสูงสุดในช่วงนาทีแรกๆ และ การวิเคราะห์ต้นทุน options ของเรา จะวัดค่า option spreads โดยตรง


ทุกตารางแสดงคำสั่ง SQL ที่ใช้ในการสร้างข้อมูล — คุณสามารถเปลี่ยน ticker ที่คุณซื้อขายเพื่อตรวจสอบช่วงเวลาของ spread บน Strasmore terminal ได้