Strasmore Research
Learn am Matt ConnorBy Matt Connor · Updated 2026-09-28

Triple Witching 2026 Dates and Volume Data

Triple witching 2026 na March 20, June 18, September 18 and December 18. See how market-wide dollar volume move for the last witching session.

Triple witching for 2026 go happen for four dates: March 20, June 18, September 18 and December 18. Na quarterly trading sessions be these, when stock index futures, index options and single-stock options all reach expiration together, for the third Friday of March, June, September and December. This page list the 2026 dates and measure how one of them affect trading volume for the real tape.

The four triple witching dates for 2026

The rule no dey change: triple witching na the third Friday for each quarter-ending month. For 2026, the four sessions na:

  • Friday, March 20, 2026
  • Thursday, June 18, 2026 (the third Friday, June 19, na Juneteenth market holiday)
  • Friday, September 18, 2026
  • Friday, December 18, 2026

Three families of contracts dey settle on each of these dates: stock index futures and options on top of dem, cash index options, plus single-stock and ETF options. Single-stock options expire on the third Friday of every month. Wetin make the quarterly dates different na say index futures and index options cycle dey stack on top, together with index reconstitutions wey funds trade into the closing auction that same afternoon. For the complete monthly and weekly expiration calendar, see when options expire.

Why June 2026 dey land on Thursday

June 19, 2026 na Juneteenth National Independence Day, wey be US market holiday. Since exchanges go close that Friday, June quarterly expiration go move one session earlier, to Thursday, June 18, 2026. Na the standard rule for any witching date wey suppose fall on holiday: expiration go shift to the previous trading day. The other three 2026 dates go fall on their natural third Friday.

Witching dey lift trading volume reach how much?

The main claim about triple witching na heavy volume. Here, we measure am: every quarterly witching session for our tape since September 2024, compare with the median regular-hours dollar volume for the other sessions inside the same month. Dollar volume na price multiply by shares, summed across every stock during the 9:30 a.m. to 4:00 p.m. ET session. We build the panel from one-minute bars. The bars no include closing auction prints, so these totals cover continuous trading plus opening auctions. The next section add the closing prints back for the June session.

QueryEvery quarterly witching session since September 2024: market-wide regular-hours dollar volume before the closing auctions, vs. the month's other sessions
witching sessionwitching dollars tother days median ttimes median
2024-09-200.570.451.26
2024-12-200.750.511.47
2025-03-210.620.61.03
2025-06-200.720.621.16
2025-09-190.860.721.19
2025-12-190.870.71.24
2026-03-201.050.871.21
2026-06-181.120.951.17
The exact SQL behind every number
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           sum(toFloat64(close) * toFloat64(volume)) / 1e12 AS dollars_t
    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)
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    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.dollars_t, d.day = w.witching_day), 2) AS witching_dollars_t,
       round(quantileDeterministicIf(0.5)(d.dollars_t, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS other_days_median_t,
       round(anyIf(d.dollars_t, d.day = w.witching_day)
             / quantileDeterministicIf(0.5)(d.dollars_t, cityHash64(toString(d.day)), d.day != w.witching_day), 2) AS times_median
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
Run am yourself

The premium dey consistent. All eight witching sessions trade above their month median. The range na from slim 1.03x on 2025-03-21 reach 1.47x on 2024-12-20. The latest one, 2026-06-18, put $1.12 trillion worth of stock through regular hours before closing auctions, against $0.95 trillion median for June’s other sessions: 1.17x a typical day. Open interest dey build up on the quarterly date over many months, and volume dey follow am.

Wey the extra volume dey land

Witching session no dey busy evenly. E dey busy for the two moments wey mechanical flow gather: AM-settled index contracts dey funnel orders enter the opening auction, while index-rebalance flow dey meet positions wey dey expire for the closing auction. June 18 tape beside the ordinary Friday before am, measured by dollar volume per half hour of regular session, with every closing auction print for consolidated tape counted inside the final half hour:

QueryDollar volume by half hour, closing auction prints in the final bucket: witching Thursday (Jun 18, 2026) vs. the ordinary Friday before it (Jun 12)
ET timewitching dollars bnormal dollars b
09:30212.7132.4
10:00100.285.9
10:3077.783.8
11:0067.964.4
11:3077.693.9
12:0057.674.1
12:3051.152.3
13:0049.153.1
13:3045.841.3
14:0050.345.9
14:3048.944.5
15:0063.953.7
15:30724.3222.2
The exact SQL behind every number
SELECT et_time,
       round(sumIf(dollars, session = '2026-06-18') / 1e9, 1) AS witching_dollars_b,
       round(sumIf(dollars, session = '2026-06-12') / 1e9, 1) AS normal_dollars_b
FROM
(
    SELECT formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 minute), '%H:%i') AS et_time,
           toString(toDate(toTimeZone(window_start, 'America/New_York'))) AS session,
           toFloat64(close) * toFloat64(volume) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((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'))
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    UNION ALL
    SELECT '15:30' AS et_time,
           toString(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) AS session,
           toFloat64(price) * toFloat64(size) AS dollars
    FROM global_markets.stocks_trades
    WHERE ((sip_timestamp >= '2026-06-12 20:00:00' AND sip_timestamp < '2026-06-12 20:15:00')
           OR (sip_timestamp >= '2026-06-18 20:00:00' AND sip_timestamp < '2026-06-18 20:15:00'))
      AND has(conditions, 8)
)
GROUP BY et_time
ORDER BY et_time
Run am yourself

Middle of the day hardly differ. Interior half hours on witching day dey near $49.1 billion, close to ordinary Friday. Na the two ends carry the session: the 9:30 half hour handle $212.7 billion against $132.4 billion for normal Friday, while closing half hour handle $724.3 billion against $222.2 billion. One-twentieth of the trading clock, but e hold one-fifth of the dollars: na this closing window index fund wey get billions to rebalance dey find the other side.

Triple witching dey make market more volatile?

Volume and volatility na two different questions, and people hardly dey check the second one. This panel dey measure SPY regular-hours high-to-low range for each witching session, as percentage of the opening price. E compare am with median of other sessions for the same month, plus the net open-to-close move.

QuerySPY on witching sessions vs. the same month's other sessions: intraday range and net move (% of the open)
witching sessionwitching range (%)other days median range (%)witching net move (%)
2024-09-200.730.920.05
2024-12-202.550.611.56
2025-03-211.231.720.88
2025-06-201.10.730.69
2025-09-190.630.710.2
2025-12-190.680.70.59
2026-03-201.821.281.21
2026-06-180.581.120.16
The exact SQL behind every number
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')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    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
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
Run am yourself

The answer be: e no dey happen consistently. Witching sessions fit land above or below their month median. 2024-12-20 range na 2.55% against 0.61% median, and na genuinely wild day. But the latest one, 2026-06-18, range na only 0.58% against 1.12% median, and e move net 0.16% from open to close. The session wey carry the highest dollar volume for that month still be one of the calmest by price. Witching dey concentrate scheduled, mechanical flow. And mechanical flow dey move both ways by design: every rolled position dey close for one contract and open for another, while every index add get matching delete. Na this combination dey produce enormous volume with ordinary price movement.

How to read a 2026 witching session

  • Mark the four dates. March 20, June 18, September 18 and December 18. The cheapest filter for trading na calendar.
  • Discount your volume screens. Every stock fit show unusual volume for the same time. relative volume reading of 2x on witching day na calendar effect, no be catalyst.
  • Expect depth, not drama. Liquidity dey deepest for open and close; range table above show say witching sessions dey for both sides of normal day’s swing.
  • Mind expiring positions into the close. PM-settled single-stock and ETF options dey decided by closing print. For final minutes, dem fit switch between worthless and in-the-money. If you wan see which strikes get the most at stake for that print, max pain go calculate am on real SPY chain and check how near the actual settlement land.

FAQ

Triple witching go happen when for 2026?

Triple witching dey happen for the third Friday of March, June, September and December. For 2026, na March 20, June 18 (e move one day earlier because Juneteenth holiday dey fall on Friday, June 19), September 18 and December 18.

Why June 2026 triple witching dey happen on Thursday, June 18?

The third Friday of June 2026 na June 19, and na Juneteenth National Independence Day, wey be US market holiday. Since exchanges no go open that Friday, the quarterly expiration go shift go the previous trading day, Thursday, June 18, 2026.

Triple witching dey increase trading volume?

Yes, generally. For the eight quarterly witching sessions since September 2024, every one of dem trade above the median regular-hours dollar volume for that month. The latest one, 2026-06-18, push $1.12 trillion of stock through regular hours before the closing auctions. That one be 1.17x the $0.95 trillion median for June’s other sessions. The open and close half-hours carry most of the extra volume.

Stock market dey more volatile on triple witching days?

E no dey happen consistently. When dem measure am with SPY, witching sessions dey fall for both sides of their month’s median intraday range. 2024-12-20 range be 2.55% against 0.61% median, while 2026-06-18 range only be 0.58% against 1.12% median. Heavy volume and big price movement no be the same thing.


Every panel above na stored, versioned query wey use the real tape. Open the SQL under any number to audit am, or measure the next witching session yourself on the Strasmore terminal.