{"slug":"forex-pending-order-types","qid":"weekday_gaps","label":"Median and 95th-percentile opening step by weekday (SPY, 2016 to 2026)","post_title":"Forex Pending Order Types: Limits & Stops","post_url":"/blog/forex-pending-order-types#q-weekday_gaps","columns":["weekday","median_gap_pct","p95_gap_pct"],"rows":[{"weekday":"Friday","median_gap_pct":0.327,"p95_gap_pct":1.213},{"weekday":"Monday","median_gap_pct":0.307,"p95_gap_pct":1.442},{"weekday":"Thursday","median_gap_pct":0.305,"p95_gap_pct":1.261},{"weekday":"Tuesday","median_gap_pct":0.263,"p95_gap_pct":1.364},{"weekday":"Wednesday","median_gap_pct":0.257,"p95_gap_pct":1.235}],"shape":"series","sql":"WITH\n    daily AS\n    (\n        SELECT\n            date,\n            any(toFloat64(open))  AS session_open,\n            any(toFloat64(close)) AS session_close\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker = 'SPY'\n          AND date >= '2016-01-01'\n          AND date <  '2026-10-01'\n        GROUP BY date\n    ),\n    gapped AS\n    (\n        SELECT\n            date,\n            session_open,\n            lagInFrame(session_close) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close\n        FROM daily\n    )\nSELECT\n    formatDateTime(date, '%W')                          AS weekday,\n    round(quantileDeterministic(0.5)(gap_pct, det), 3)  AS median_gap_pct,\n    round(quantileDeterministic(0.95)(gap_pct, det), 3) AS p95_gap_pct\nFROM\n(\n    SELECT\n        date,\n        toYYYYMMDD(date)                          AS det,\n        abs(session_open / prior_close - 1) * 100  AS gap_pct\n    FROM gapped\n    WHERE prior_close > 0\n)\nGROUP BY weekday\nORDER BY median_gap_pct DESC","computed_at":"2026-10-07T16:05:39.300329+00:00","elapsed":0.004331897}