Strasmore Research
การเรียนรู้ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-07-24

Triple Witching คืออะไร ปริมาณและผันผวน

ทำความรู้จัก Triple Witching ช่วงเวลาที่ index futures และ options หมดอายุพร้อมกันในรายไตรมาส ซึ่งส่งผลกระทบโดยตรงต่อปริมาณการซื้อขายและระดับความผันผวนในตลาด

Triple witching คือช่วงเวลาการซื้อขายรายไตรมาส ซึ่งตรงกับวันศุกร์ที่สามของเดือนมีนาคม มิถุนายน กันยายน และธันวาคม โดยเป็นวันที่ index futures, index options และ single-stock options จะครบกำหนดอายุพร้อมกัน ในแต่ละปีจะมีเหตุการณ์นี้เกิดขึ้นสี่ครั้ง ซึ่งอนุพันธ์ทั้งหมดที่ครบกำหนดจะต้องถูกชำระราคา ปิดสถานะ หรือ roll forward พร้อมกัน นอกจากนี้ index funds ยังต้องดำเนินการ rebalance ตามกำหนดการในช่วงเวลาปิดตลาดเดียวกันนี้ ข้อมูลด้านล่างคือสถิติจาก 8 รอบ triple witching ล่าสุดที่วัดจากข้อมูลจริง ได้แก่ volume, volatility, การประมูลปิดตลาด และ strike prices สำหรับข้อมูลปฏิทินทั้งหมด ซึ่งรวมถึงวันหมดอายุรายไตรมาสทุกครั้ง และการเลื่อนกำหนดการของ Juneteenth ที่ทำให้เดือนมิถุนายน 2026 เปลี่ยนเป็นวันพฤหัสบดี สามารถดูได้ที่ วันที่ triple witching ของปี 2026

อะไรบ้างที่หมดอายุในวัน triple witching?

สัญญา 3 ประเภทจะหมดอายุพร้อมกันในวันสิ้นไตรมาส ได้แก่ stock index futures (รวมถึง options ของ futures เหล่านั้น), index options และ single-stock options โดยปกติ single-stock options จะหมดอายุในวันศุกร์ที่สามของ ทุก เดือน แต่สิ่งที่ทำให้วันสิ้นไตรมาสมีความแตกต่างคือการมาบรรจบกันของวงจร index futures และ index options

รูปแบบการชำระราคาที่แตกต่างกันสองแบบแบ่งช่วงเวลาในวันออกเป็นสองส่วน โดย index futures และ index options จำนวนมากเป็นแบบ AM-settled ซึ่งจะหยุดซื้อขายในช่วงบ่ายของวันก่อนหน้า และชำระราคาโดยอิงจากราคาที่คำนวณจากการเปิดตลาดของหุ้นในดัชนี ซึ่งส่งผลต่อปริมาณการซื้อขายใน การประมูลช่วงเปิดตลาด ของเช้าวันนั้น ส่วน single-stock options และ ETF options เป็นแบบ PM-settled ซึ่งสามารถซื้อขายได้จนถึงเวลาปิดตลาดตอน 16:00 น.

องค์ประกอบที่สามของวันไม่ใช่ตราสารอนุพันธ์ แต่เป็นช่วงเวลาที่กลุ่มดัชนีหลักกำหนดการเปลี่ยนแปลงองค์ประกอบในดัชนี เช่น การเพิ่มหรือถอนหุ้น และการอัปเดตจำนวนหุ้น ซึ่งจะเกิดขึ้นในวันสิ้นไตรมาสเหล่านี้เช่นกัน โดยกองทุนดัชนีจะทำการซื้อขายตามการเปลี่ยนแปลงดังกล่าวในช่วงปิดตลาด ส่งผลให้ปริมาณการปรับพอร์ต (rebalance flow) และสถานะที่กำลังจะหมดอายุมาบรรจบกันในการ การประมูลช่วงปิดตลาด ในช่วงบ่ายวันเดียวกัน

ทำไมจึงเรียกว่า witching?

ชื่อนี้หยิบยืมมาจากความเชื่อพื้นบ้านเรื่อง "witching hour" หรือช่วงเวลาที่เชื่อกันว่าจะมีเหตุการณ์ประหลาดเกิดขึ้น ในช่วงทศวรรษ 1980 Index futures (S&P 500 futures ที่จดทะเบียนในปี 1982) และ Index options ได้ถูกนำมาใช้ในปฏิทินรายไตรมาสร่วมกับ Single-stock options (จดทะเบียนในตลาดหลักทรัพย์ตั้งแต่ปี 1973) ส่งผลให้ชั่วโมงสุดท้ายของการซื้อขายในวันดังกล่าวเป็นที่รู้จักอย่างกว้างขวางจนได้รับฉายาว่า "the triple witching hour" ต่อมาตลาดหลักทรัพย์ได้เปลี่ยนวิธีการชำระราคาของสัญญา Index หลัก โดยใช้ราคาเปิดแทนราคาปิด ซึ่งช่วยลดความผันผวนในช่วงชั่วโมงสุดท้ายลง ส่วนคำว่า "Quadruple witching" เกิดขึ้นเมื่อมีการจดทะเบียน Single-stock futures ในสหรัฐฯ ช่วงต้นทศวรรษ 2000 แต่ตลาดที่รองรับเครื่องมือดังกล่าวได้ปิดตัวลงในปี 2020 ทำให้ปัจจุบันทั้งสองคำนี้ใช้เรียกวันที่มีเหตุการณ์เดียวกันทั้งสี่วัน

วัน Triple witching: 2024–2027

กฎเกณฑ์นั้นเรียบง่าย คือวันศุกร์ที่สามของเดือนมีนาคม มิถุนายน กันยายน และธันวาคม หากวันศุกร์ดังกล่าวตรงกับวันหยุดตลาดหลักทรัพย์ วันหมดอายุจะเลื่อนมาเป็นวันทำการก่อนหน้า สามารถดูปฏิทินฉบับเต็มซึ่งรวมถึงรอบรายสัปดาห์และรายวันได้ที่ เมื่อ options หมดอายุ

  • 2024: 15 มีนาคม, 21 มิถุนายน, 20 กันยายน, 20 ธันวาคม
  • 2025: 21 มีนาคม, 20 มิถุนายน, 19 กันยายน, 19 ธันวาคม
  • 2026: 20 มีนาคม, 18 มิถุนายน (เลื่อนขึ้นจากวันศุกร์ที่ 19 มิถุนายน เนื่องจากเป็นวันหยุด Juneteenth ซึ่งตลาดหลักทรัพย์ใน US ปิดทำการ), 18 กันยายน, 18 ธันวาคม
  • 2027: 19 มีนาคม, 18 มิถุนายน, 17 กันยายน, 17 ธันวาคม

ครั้งถัดไปคือวันศุกร์ที่ 18 กันยายน 2026

ปริมาณการซื้อขายในช่วง witching session สูงมากเพียงใดกันแน่?

ข้อมูลเปรียบเทียบปริมาณการซื้อขายในทุก quarterly witching session ตั้งแต่ปลายปี 2024 เทียบกับค่ามัธยฐานของปริมาณการซื้อขายใน session อื่นๆ ในเดือนเดียวกัน โดยคอลัมน์สุดท้ายคือตัวชี้วัดข้อเท็จจริงของ "วันที่ซื้อขายสูงสุดในเดือน" ซึ่งคำนวณโดยการหักลบปริมาณการซื้อขายของวันที่สูงที่สุดในเดือนที่ไม่ใช่ witching session หากค่าเป็นบวก แสดงว่า witching session มีปริมาณการซื้อขายสูงสุดในเดือนนั้น แต่หากค่าเป็นลบ แสดงว่า session อื่นมีปริมาณการซื้อขายสูงกว่า

คำสั่งดึงข้อมูลปริมาณการซื้อขายหุ้นรวมทั้งตลาดในทุกวัน Witching session ตั้งแต่กันยายน 2024 เทียบกับวันอื่นๆ ในเดือนเดียวกัน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           sum(toFloat64(volume)) / 1e9 AS shares_b
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2024-09-01 04:00:00'
      AND window_start < '2026-07-01 04:00:00'
      AND toMonth(toTimeZone(window_start, 'America/New_York')) IN (3, 6, 9, 12)
    GROUP BY day
),
witching AS (
    SELECT toStartOfMonth(day) AS m,
           maxIf(day, day <= addDays(toStartOfMonth(day),
                 ((5 - toDayOfWeek(toStartOfMonth(day)) + 7) % 7) + 14)) AS witching_day
    FROM daily
    GROUP BY m
)
SELECT toString(w.witching_day) AS witching_session,
       round(anyIf(d.shares_b, d.day = w.witching_day), 1) AS witching_shares_b,
       round(quantileDeterministicIf(0.5)(d.shares_b, cityHash64(toString(d.day)), d.day != w.witching_day), 1) AS other_days_median_b,
       round(anyIf(d.shares_b, d.day = w.witching_day)
             / quantileDeterministicIf(0.5)(d.shares_b, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS times_median,
       round(anyIf(d.shares_b, d.day = w.witching_day) - maxIf(d.shares_b, d.day != w.witching_day), 2) AS gap_to_next_heaviest
FROM daily AS d
INNER JOIN witching AS w ON toStartOfMonth(d.day) = w.m
GROUP BY w.witching_day
HAVING countIf(d.day != w.witching_day) > 0
ORDER BY w.witching_day

ส่วนต่างของปริมาณการซื้อขาย (volume premium) นั้นเกิดขึ้นจริงและเกิดขึ้นซ้ำได้ Witching session ล่าสุดใน 2026-06-18 มีปริมาณการซื้อขายอยู่ที่ 26.7 พันล้านหุ้น เมื่อเทียบกับค่ามัธยฐานของ session อื่นๆ ในเดือนนั้นที่ 20.1 พันล้านหุ้น ซึ่งคิดเป็น 1.33 เท่าของวันปกติ และสูงกว่า session ที่มีปริมาณการซื้อขายสูงสุดลำดับถัดไปในเดือนมิถุนายนอยู่ถึง 1.15 พันล้านหุ้น โดยในแถวแรก 2024-09-20 มีค่าเท่ากับ 1.34 เท่าเช่นกัน

อย่างไรก็ตาม ปรากฏการณ์นี้ไม่ใช่กฎตายตัว ซึ่งตารางได้แสดงให้เห็นแล้ว โดย 2025-03-21 มีปริมาณการซื้อขายเพียง 0.97 เท่าของค่ามัธยฐานในเดือนนั้น ซึ่งต่ำกว่า session ปกติเล็กน้อย และมีปริมาณการซื้อขายน้อยกว่าวันที่ซื้อขายสูงสุดในเดือนนั้นอยู่ -4.03 พันล้านหุ้น สัญลักษณ์ทั้งสองแบบปรากฏในคอลัมน์สุดท้าย ซึ่งชี้ให้เห็นว่า witching session เป็นตัวบ่งชี้ที่มีน้ำหนักสำหรับการคาดการณ์วันที่ซื้อขายสูงสุดในเดือนนั้น แต่ไม่ใช่สิ่งที่เกิดขึ้นอย่างแน่นอน เนื่องจากการปรับปรุงดัชนี (index reconstitution), กระแสเงินทุนช่วงสิ้นไตรมาส (quarter-end flows) และการประกาศตัวเลขเศรษฐกิจมหภาค (macro releases) ล้วนสร้าง session ที่มีปริมาณการซื้อขายสูงกว่า witching session ได้ทั้งสิ้น

ทำไมวัน witching ของเดือนมิถุนายน 2026 จึงตรงกับวันพฤหัสบดี

วันศุกร์ที่สามของเดือนมิถุนายน 2026 คือวันที่ 19 มิถุนายน ซึ่งเป็นวัน Juneteenth และตลาดหลักทรัพย์ในสหรัฐฯ ปิดทำการ ดังนั้นสัญญาอนุพันธ์ทั้งหมดในไตรมาสนี้จึงหมดอายุใน วันพฤหัสบดีที่ 18 มิถุนายน ข้อมูลการซื้อขาย options แสดงให้เห็นถึงสถานะของสถานะที่เปิดอยู่ โดยเป็นปริมาณการซื้อขายสัญญาในช่วงวันที่ 1–18 มิถุนายน แบ่งตามวันหมดอายุของสัญญาเหล่านั้น

คำสั่งดึงข้อมูลปริมาณสัญญาแยกตามวันหมดอายุ — สัญญา US options ทั้งหมดที่ซื้อขายระหว่าง 1-18 มิถุนายน 2026 สำหรับ 8 วันหมดอายุสูงสุด
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT toString(expiry) AS expiry,
       round(sum(vol) / 1e6, 1) AS contracts_mm
FROM (
    SELECT toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) AS expiry,
           toFloat64(volume) AS vol
    FROM global_markets.options_minute_aggs
    WHERE window_start >= '2026-06-01 04:00:00'
      AND window_start < '2026-06-19 04:00:00'
)
WHERE expiry IS NOT NULL
GROUP BY expiry
ORDER BY contracts_mm DESC
LIMIT 8

สัญญาที่หมดอายุใน 2026-06-18 มีปริมาณการซื้อขายรวม 193.7 ล้านสัญญาในช่วงสิบสี่เซสชันดังกล่าว เมื่อเทียบกับ 113.1 ล้านสัญญาสำหรับวันหมดอายุที่มีขนาดใหญ่เป็นอันดับถัดไปคือ 2026-06-12 โดย Open interest จะสะสมเพิ่มขึ้นตามวันหมดอายุรายไตรมาสตลอดหลายเดือน และปริมาณการซื้อขายจะเพิ่มขึ้นตามช่วงเวลาดังกล่าว

สัญญาหรือหุ้น — อะไรคือสิ่งที่พุ่งสูงขึ้นกันแน่?

นี่คือข้อแตกต่างที่คำอธิบายส่วนใหญ่มักมองข้าม การสะสมสถานะมักเกิดขึ้น ก่อน วันหมดอายุรายไตรมาส แต่การเปลี่ยนมือของสัญญาออปชัน ใน วันดังกล่าวไม่ใช่เรื่องผิดปกติ ข้อมูลด้านล่างแสดงให้เห็นถึงช่วง witching session เปรียบเทียบกับวันศุกร์ปกติสองวันก่อนหน้า โดยมีการแยกข้อมูลหุ้นที่หมดอายุในวันเดียวกัน — 0DTE — ของแต่ละช่วงเวลาไว้

คำสั่งดึงข้อมูลWitching Thursday เทียบกับวันศุกร์ปกติสองวันก่อนหน้า — จำนวนสัญญา US option และปริมาณหุ้นที่หมดอายุในวันเดียวกัน
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT toString(d) AS session_date,
       round(sum(vol) / 1e6, 1) AS all_contracts_mm,
       round(sumIf(vol, expiry = d) / 1e6, 1) AS expiring_same_day_mm,
       round(sumIf(vol, expiry = d) / sum(vol) * 100, 1) AS pct_expiring_same_day
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) AS expiry,
           toFloat64(volume) AS vol
    FROM global_markets.options_minute_aggs
    WHERE (window_start >= '2026-06-05 04:00:00' AND window_start < '2026-06-06 04:00:00')
       OR (window_start >= '2026-06-12 04:00:00' AND window_start < '2026-06-13 04:00:00')
       OR (window_start >= '2026-06-18 04:00:00' AND window_start < '2026-06-19 04:00:00')
)
WHERE expiry IS NOT NULL
GROUP BY d
ORDER BY d

วัน witching มีปริมาณการซื้อขายสัญญาอยู่ที่ 79.2 ล้านสัญญา ในขณะที่วันศุกร์ปกติของ 2026-06-05 มีปริมาณอยู่ที่ 103.1 ล้าน — ซึ่ง มากกว่า สิ่งที่เปลี่ยนไปคือสัดส่วน: 48.7% ของปริมาณการซื้อขายในวัน witching อยู่ในสัญญาที่หมดอายุในเซสชันเดียวกัน เมื่อเทียบกับ 43.9% และ 44.7% ในวันศุกร์ปกติ ลักษณะเฉพาะของ witching ไม่ใช่ "ทุกคนเทรดออปชันมากขึ้น" แต่เป็นเพราะตลาด หุ้น มีความเคลื่อนไหวอย่างคึกคัก เนื่องจากการชำระราคาดัชนีและการปรับสมดุลพอร์ตของกองทุนถูกดำเนินการในรูปแบบหุ้น ไม่ใช่ในรูปแบบสัญญา

Triple witching ทำให้ความผันผวนเพิ่มขึ้นหรือไม่?

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

คำสั่งดึงข้อมูลSPY ในวัน Witching session เทียบกับวันอื่นๆ ในเดือนเดียวกัน — ช่วงการแกว่งตัวระหว่างวันและ Net move (% ของราคาเปิด)
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           toFloat64(max(high) - min(low)) / toFloat64(argMin(open, window_start)) * 100 AS range_pct,
           abs(toFloat64(argMax(close, window_start)) - toFloat64(argMin(open, window_start)))
               / toFloat64(argMin(open, window_start)) * 100 AS net_move_pct
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2024-09-01 04:00:00'
      AND window_start < '2026-07-01 04:00:00'
      AND toMonth(toTimeZone(window_start, 'America/New_York')) IN (3, 6, 9, 12)
      AND toHour(toTimeZone(window_start, 'America/New_York')) >= 9
      AND toHour(toTimeZone(window_start, 'America/New_York')) < 16
      AND NOT (toHour(toTimeZone(window_start, 'America/New_York')) = 9
               AND toMinute(toTimeZone(window_start, 'America/New_York')) < 30)
    GROUP BY day
),
witching AS (
    SELECT toStartOfMonth(day) AS m,
           maxIf(day, day <= addDays(toStartOfMonth(day),
                 ((5 - toDayOfWeek(toStartOfMonth(day)) + 7) % 7) + 14)) AS witching_day
    FROM daily
    GROUP BY m
)
SELECT toString(w.witching_day) AS witching_session,
       round(anyIf(d.range_pct, d.day = w.witching_day), 2) AS witching_range_pct,
       round(quantileDeterministicIf(0.5)(d.range_pct, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS other_days_median_range_pct,
       round(anyIf(d.net_move_pct, d.day = w.witching_day), 2) AS witching_net_move_pct,
       round(quantileDeterministicIf(0.5)(d.net_move_pct, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS other_days_median_net_move_pct
FROM daily AS d
INNER JOIN witching AS w ON toStartOfMonth(d.day) = w.m
GROUP BY w.witching_day
HAVING countIf(d.day != w.witching_day) > 0
ORDER BY w.witching_day

คำตอบคือ ไม่ได้เกิดขึ้นอย่างเป็นระบบ เซสชัน witching มีค่าทั้งสูงกว่าและต่ำกว่าค่ามัธยฐานของเดือนนั้นๆ 2024-12-20 มีช่วงราคาอยู่ที่ 2.55% เมื่อเทียบกับค่ามัธยฐานที่ 0.61% ซึ่งถือเป็นเซสชันที่ผันผวนอย่างมาก แต่เซสชันล่าสุดคือ 2026-06-18 มีช่วงราคาอยู่ที่ 0.58% เมื่อเทียบกับค่ามัธยฐานที่ 1.12% และมีส่วนต่างราคาจากราคาเปิดถึงราคาปิดสุทธิที่ 0.16% เมื่อเทียบกับค่ามัธยฐานที่ 0.55% กล่าวคือ วันที่มีปริมาณการซื้อขายสูงสุดของเดือนนั้น กลับเป็นหนึ่งในวันที่ราคาเคลื่อนไหวสงบที่สุดด้วย

นี่คือข้อสรุปที่แท้จริงของเรื่องนี้ Witching ทำให้เกิดกระแสเงินไหลเข้าออกแบบ ตามกำหนดการและเป็นระบบ ซึ่งกระแสเงินไหลเข้าออกที่เป็นระบบนี้มีลักษณะสองด้านโดยโครงสร้าง ทุกตำแหน่งที่ถูก Roll จะมีการปิดสัญญาหนึ่งและเปิดอีกสัญญาหนึ่ง และทุกการเพิ่มดัชนีจะถูกจับคู่ด้วยการลบดัชนีออก สิ่งนี้ส่งผลให้เกิดปริมาณการซื้อขายมหาศาล แต่เส้นทางราคาเป็นไปอย่างปกติธรรมดา

เจาะลึกช่วงการประมูลปิดตลาด

จุดที่ทำให้ภาพรวมของวันแตกต่างออกไปอย่างชัดเจนคือช่วงปิดตลาด ข้อมูลนี้จะแยกเฉพาะช่วงเวลาการประมูลปิดตลาด (closing-cross window) ซึ่งก็คือแท่งเทียนเวลา 15:59 และ 16:00 น. ตามเวลา ET ซึ่งเป็นช่วงที่มีราคาประมูลปรากฏขึ้น โดยเป็นการเปรียบเทียบมูลค่าการซื้อขายในช่วงวัน witching day กับช่วงเวลาปกติในเดือนมิถุนายน

คำสั่งดึงข้อมูลช่วงเวลา Closing-cross (15:59-16:00 น. ET) — มูลค่าซื้อขาย ($) ในวัน Witching เทียบกับวันปกติในเดือนมิถุนายน 2026
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           sumIf(toFloat64(close) * toFloat64(volume),
                 toHour(toTimeZone(window_start, 'America/New_York')) = 16
                 OR (toHour(toTimeZone(window_start, 'America/New_York')) = 15
                     AND toMinute(toTimeZone(window_start, 'America/New_York')) = 59)) AS close_dollars,
           sum(toFloat64(close) * toFloat64(volume)) AS day_dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-06-01 04:00:00'
      AND window_start < '2026-07-01 04:00:00'
      AND toHour(toTimeZone(window_start, 'America/New_York')) >= 9
      AND toHour(toTimeZone(window_start, 'America/New_York')) <= 16
      AND NOT (toHour(toTimeZone(window_start, 'America/New_York')) = 9
               AND toMinute(toTimeZone(window_start, 'America/New_York')) < 30)
      AND NOT (toHour(toTimeZone(window_start, 'America/New_York')) = 16
               AND toMinute(toTimeZone(window_start, 'America/New_York')) > 0)
    GROUP BY day
)
SELECT round(anyIf(close_dollars, day = '2026-06-18') / 1e9, 1) AS witching_close_dollars_b,
       round(quantileDeterministicIf(0.5)(close_dollars, cityHash64(toString(day)), day != '2026-06-18') / 1e9, 1) AS other_june_median_close_dollars_b,
       round(anyIf(close_dollars, day = '2026-06-18')
             / quantileDeterministicIf(0.5)(close_dollars, cityHash64(toString(day)), day != '2026-06-18'), 2) AS times_median,
       round(anyIf(close_dollars / day_dollars, day = '2026-06-18') * 100, 1) AS witching_close_pct_of_day,
       round(quantileDeterministicIf(0.5)(close_dollars / day_dollars, cityHash64(toString(day)), day != '2026-06-18') * 100, 1) AS other_june_median_close_pct_of_day
FROM sessions
HAVING countIf(day != '2026-06-18') > 0

ในช่วงเวลาดังกล่าว มีมูลค่าหุ้นซื้อขายรวม $56.1 billion ในวัน witching day เมื่อเทียบกับ $36.1 billion สำหรับค่ากลางของช่วงเวลาในเดือนมิถุนายน หรือคิดเป็น 1.56x และมีสัดส่วนมูลค่าการซื้อขายคิดเป็น 4.9% ของมูลค่าการซื้อขายทั้งหมดในวันนั้น เมื่อเทียบกับ 3.7% ในวันปกติ เพียงเวลาสองนาที แต่กลับมีสัดส่วนถึงหนึ่งในยี่สิบของเม็ดเงินทั้งหมด นี่คือจุดที่กองทุนดัชนีที่มีมูลค่าการปรับพอร์ตระดับหลายพันล้านดอลลาร์ จะได้พบกับคู่สัญญาเพื่อทำรายการปรับสมดุลพอร์ต

ความเสี่ยงจากการถูกดึงเข้าหาจุดราคา (Pin risk): ราคาจะเคลื่อนที่เข้าหา Strike price ขนาดใหญ่จริงหรือไม่?

"Pin risk" และทฤษฎีที่คล้ายกันอย่าง "max pain" เป็นความเชื่อทางเทคนิคที่ว่า เมื่อออปชันกำลังจะหมดอายุ ราคาหุ้นจะถูกดึงเข้าหา Strike price ที่มี Open interest สูงที่สุด เนื่องจากผู้ดูแลสภาพคล่อง (dealers) ต้องทำการป้องกันความเสี่ยง (hedge) ออปชันเหล่านั้นในช่วงก่อนปิดตลาด ข้อมูลแสดงให้เห็นดังนี้: ชุดออปชันของ SPY ที่หมดอายุในวันที่ 18 มิถุนายน 2026 โดยเรียงลำดับตามจำนวนสัญญาที่มีการซื้อขาย พร้อมระยะห่างของแต่ละ Strike price จากราคาปิดของ SPY ในช่วงการซื้อขายปกติ

คำสั่งดึงข้อมูลSPY ชุดที่หมดอายุ 18 มิถุนายน 2026 — จำนวนสัญญาที่ซื้อขายตาม Strike และระยะห่างของแต่ละ Strike จากราคาปิด
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH spy_close AS (
    SELECT toFloat64(argMax(close, window_start)) AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-18 09:30:00', 'America/New_York')
      AND window_start < toDateTime('2026-06-18 16:00:00', 'America/New_York')
),
strikes AS (
    SELECT toFloat64(substring(ticker, length(ticker) - 7, 8)) / 1000 AS strike,
           sum(toFloat64(size)) AS contracts
    FROM global_markets.options_trades
    WHERE ticker LIKE 'O:SPY260618%'
      AND sip_timestamp >= '2026-06-18 08:00:00'
      AND sip_timestamp < '2026-06-19 01:00:00'
    GROUP BY strike
)
SELECT concat('$', toString(toInt32(s.strike))) AS strike,
       round(s.contracts / 1000, 1) AS contracts_k,
       round(s.strike - c.px, 2) AS strike_minus_close,
       round(abs(s.strike - c.px) / c.px * 100, 2) AS pct_from_close
FROM strikes AS s
CROSS JOIN spy_close AS c
ORDER BY s.contracts DESC, s.strike ASC
LIMIT 12

ราคาปิดของ SPY อยู่ ระหว่าง Strike price สองอันที่มีการซื้อขายสูงสุดในช่วงหมดอายุ โดย Strike price ที่มีปริมาณสูงสุดคือ $746 มีจำนวนสัญญา 1488.3 พันสัญญา และอยู่ห่างจากราคาปิด -0.56 จุด (ห่างออกไป 0.08%) ส่วนอันที่สองคือ $747 มีจำนวนสัญญา 1482.4 พันสัญญา และอยู่ห่างไปทางด้านตรงข้าม 0.44 จุด

อย่าเพิ่งด่วนสรุปตามสิ่งที่เห็น เนื่องจากโดยโครงสร้างแล้ว นักเทรดมักจะรวมปริมาณการซื้อขายไว้ที่ Strike price ระดับ At-the-money เพราะเป็นจุดที่มีผลลัพธ์จริงและมี spread ที่แคบที่สุด ดังนั้นการที่ "Strike price ที่มีปริมาณสูงสุดขนาบข้างราคาปิด" จึงเป็นเรื่องที่เกิดขึ้นเป็นปกติในทุกช่วงหมดอายุ และไม่ใช่หลักฐานว่าราคาถูกดึงไปที่จุดใดจุดหนึ่ง การซื้อขายเพียงหนึ่งเซสชันไม่สามารถแยกแยะระหว่างแรงดึงดูดกับความบังเอิญได้ สิ่งที่ข้อมูลแสดงให้เห็นคือ: ออปชันที่กำลังจะหมดอายุซึ่งมี Strike price ห่างจากระดับ At-the-money ไม่เกินหนึ่งดอลลาร์ จะมีมูลค่าทั้งหมดถูกกำหนดในช่วงนาทีสุดท้ายที่มีความหนาแน่นของการซื้อขายสูงที่สุด

สิ่งที่ควรปฏิบัติให้แตกต่างในวัน witching day

  • ลดความสำคัญของหน้าจอ relative-volume ลง หุ้นทุกตัวมักจะมีปริมาณการซื้อขายที่ผิดปกติเกิดขึ้นพร้อมกัน ค่า relative volume ที่ 2 เท่าในวัน witching session เป็นเพียงปรากฏการณ์ตามปฏิทิน ไม่ใช่ปัจจัยพื้นฐานที่ขับเคลื่อนราคา
  • เตรียมรับมือความผันผวน ไม่ใช่ความสงบ สภาพคล่องที่สูงช่วยให้การส่งคำสั่งขนาดใหญ่ทำได้ง่ายขึ้น แต่ตารางช่วงราคาด้านบนแสดงให้เห็นว่า witching sessions มีความผันผวนทั้งในขาขึ้นและขาลงมากกว่าวันปกติ
  • ระวังสถานะที่กำลังจะหมดอายุในช่วงก่อนปิดตลาด ออปชันของหุ้นรายตัวและ ETF ที่ชำระราคาในช่วง PM จะถูกกำหนดโดยราคาปิด ณ สัญญาที่ใกล้เคียงกับราคาตลาด (near-the-money) อาจเปลี่ยนจากไร้มูลค่าเป็นมีกำไร (in-the-money) ได้ภายในไม่กี่นาทีสุดท้าย
  • อย่าตีความราคาปิดว่าเป็นทิศทางของตลาด ปริมาณการซื้อขายมูลค่าหนึ่งในยี่สิบของทั้งวันอาจเกิดขึ้นภายในช่วงเวลาเพียงสองนาที ซึ่งเต็มไปด้วยคำสั่งปรับสมดุลพอร์ตการลงทุนแบบอัตโนมัติ
  • เตรียมตัวล่วงหน้าสำหรับทั้งสี่วันที่กำหนด เครื่องมือคัดกรองที่มีต้นทุนต่ำที่สุดในการเทรดคือปฏิทิน

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

วัน Triple Witching ครั้งถัดไปคือเมื่อไหร่?

Triple Witching จะตรงกับวันศุกร์ที่สามของเดือนมีนาคม มิถุนายน กันยายน และธันวาคม โดยครั้งถัดไปคือ วันศุกร์ที่ 18 กันยายน 2026 ตามด้วยวันที่ 18 ธันวาคม 2026 และในปี 2027 จะตรงกับวันที่ 19 มีนาคม, 18 มิถุนายน, 17 กันยายน และ 17 ธันวาคม

Quadruple Witching ต่างจาก Triple Witching อย่างไร?

คำว่า "Quadruple" เกิดจากการเพิ่ม Single-stock futures เข้ามาในกลุ่มผลิตภัณฑ์ที่ครบกำหนดอายุแบบดั้งเดิมสามกลุ่ม (Index futures, Index options และ Single-stock options) อย่างไรก็ตาม ผลิตภัณฑ์ของสหรัฐฯ เหล่านั้นได้หายไปหลังจากตลาดที่รองรับปิดตัวลงในปี 2020 ดังนั้นปัจจุบันทั้งสองคำจึงใช้เรียกวันสำคัญทั้งสี่วันในแต่ละไตรมาสเหมือนกัน

ทำไมปริมาณการซื้อขายจึงสูงมากในวัน Triple Witching?

การครบกำหนดอายุของสัญญาบังคับให้ต้องมีการตัดสินใจในทุกสถานะอนุพันธ์ที่เปิดอยู่ ไม่ว่าจะเป็นการชำระราคา (Settle), การปิดสถานะ (Close) หรือการ Roll สถานะ นอกจากนี้ผู้ให้บริการดัชนีมักกำหนดช่วงเวลาการปรับสมดุลส่วนประกอบดัชนี (Constituent rebalances) ในช่วงเวลาเดียวกัน ซึ่งกองทุนดัชนีจะดำเนินการซื้อขายหุ้นในช่วงปิดตลาด โดยในเซสชัน Triple Witching ครั้งล่าสุด มีปริมาณการซื้อขายสูงถึง 1.33 เท่าของค่ากลางปริมาณหุ้นต่อเดือน และเฉพาะช่วงเวลา Closing-cross เพียงอย่างเดียวก็มีมูลค่าการซื้อขายสูงถึง $56.1 พันล้าน

Triple Witching ทำให้ตลาดหุ้นผันผวนมากขึ้นหรือไม่?

ไม่สามารถสรุปได้อย่างแน่นอน จากการวัดผลใน SPY พบว่าเซสชัน Triple Witching มีค่าทั้งที่สูงกว่าและต่ำกว่าค่ากลางของช่วงการแกว่งตัวระหว่างวัน (Intraday range) ของเดือนนั้นๆ โดย 2024-12-20 มีช่วงการแกว่งตัวอยู่ที่ 2.55% เมื่อเทียบกับค่ากลางที่ 0.61% ในขณะที่ 2026-06-18 มีช่วงการแกว่งตัวเพียง 0.58% เมื่อเทียบกับค่ากลางที่ 1.12% ดังนั้น ปริมาณการซื้อขายที่สูงและการเคลื่อนไหวของราคาที่รุนแรงจึงเป็นปรากฏการณ์ที่แยกจากกัน

Pin risk ในวันครบกำหนดอายุคืออะไร?

Pin risk คือความเสี่ยงจากการที่ออปชันมีราคาใกล้เคียงกับราคาใช้สิทธิ (Strike price) มากๆ เมื่อสิ้นสุดอายุสัญญา ซึ่งไม่มีใครทราบจนกว่าตลาดจะปิดว่าออปชันนั้นจะหมดมูลค่าหรือมีสถานะ In the money และสถานะ Short อาจนำไปสู่การถูกส่งมอบหุ้น (Assigned shares) โดยเมื่อวันที่ 18 มิถุนายน 2026 ราคาใช้สิทธิที่มีการซื้อขายหนาแน่นที่สุดสองอันดับแรกของ SPY อยู่ห่างจากราคาปิดเพียง -0.56 และ 0.44 จุด


ทุกแผงข้อมูลคือการดึงข้อมูลจากฐานข้อมูล SQL ที่มีการบันทึกเวอร์ชันไว้จากข้อมูลตลาดจริง คุณสามารถขยายคำสั่ง SQL เพื่อตรวจสอบตัวเลขใดก็ได้ หรือวัดผลเซสชัน Triple Witching ครั้งถัดไปด้วยตนเองผ่านเทอร์มินัลของ Strasmore ที่นี่