{"slug":"what-is-a-liquidity-sweep","qid":"sweep_day_trace","label":"Inside the widest 2025 SPY sweep day: fifteen-minute high, low and volume","post_title":"What Is a Liquidity Sweep in Trading?","post_url":"/blog/what-is-a-liquidity-sweep#q-sweep_day_trace","columns":["et_time","slice_high","slice_low","volume_millions"],"rows":[{"et_time":"09:30","slice_high":674.15,"slice_low":672.47,"volume_millions":8.05},{"et_time":"09:45","slice_high":675.02,"slice_low":672.96,"volume_millions":4.51},{"et_time":"10:00","slice_high":675.41,"slice_low":672.79,"volume_millions":4.18},{"et_time":"10:15","slice_high":675.02,"slice_low":672.82,"volume_millions":3.44},{"et_time":"10:30","slice_high":675.56,"slice_low":674.31,"volume_millions":2.48},{"et_time":"10:45","slice_high":675.32,"slice_low":672.74,"volume_millions":3.63},{"et_time":"11:00","slice_high":672.82,"slice_low":669.85,"volume_millions":4.59},{"et_time":"11:15","slice_high":669.97,"slice_low":667.42,"volume_millions":7.76},{"et_time":"11:30","slice_high":668.17,"slice_low":664.13,"volume_millions":7.29},{"et_time":"11:45","slice_high":665.79,"slice_low":659.39,"volume_millions":9.6},{"et_time":"12:00","slice_high":662.38,"slice_low":658.03,"volume_millions":9.44},{"et_time":"12:15","slice_high":659.48,"slice_low":656.6,"volume_millions":9.03},{"et_time":"12:30","slice_high":659.54,"slice_low":655.45,"volume_millions":6.84},{"et_time":"12:45","slice_high":657.88,"slice_low":655.49,"volume_millions":5.41},{"et_time":"13:00","slice_high":661.85,"slice_low":656.72,"volume_millions":6.48},{"et_time":"13:15","slice_high":661.97,"slice_low":658.73,"volume_millions":4.31},{"et_time":"13:30","slice_high":660,"slice_low":656.24,"volume_millions":3.38},{"et_time":"13:45","slice_high":656.4,"slice_low":654.12,"volume_millions":4.63},{"et_time":"14:00","slice_high":655.85,"slice_low":653.86,"volume_millions":5.14},{"et_time":"14:15","slice_high":657.54,"slice_low":654.85,"volume_millions":2.81},{"et_time":"14:30","slice_high":656.99,"slice_low":655.21,"volume_millions":3.74},{"et_time":"14:45","slice_high":658.25,"slice_low":655.3,"volume_millions":4.28},{"et_time":"15:00","slice_high":658.13,"slice_low":655.72,"volume_millions":4.22},{"et_time":"15:15","slice_high":657.53,"slice_low":655.35,"volume_millions":4.54},{"et_time":"15:30","slice_high":656.56,"slice_low":653.13,"volume_millions":6.47},{"et_time":"15:45","slice_high":653.96,"slice_low":651.89,"volume_millions":12.88}],"shape":"series","sql":"SELECT\n    formatDateTime(toStartOfFifteenMinutes(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS et_time,\n    round(toFloat64(max(high)), 2)          AS slice_high,\n    round(toFloat64(min(low)), 2)           AS slice_low,\n    round(toFloat64(sum(volume)) / 1e6, 2)  AS volume_millions\nFROM global_markets.delayed_stocks_minute_aggs\nWHERE ticker = 'SPY'\n  AND window_start >= '2025-01-01'\n  AND window_start <  '2026-01-02'\n  AND toDate(toTimeZone(window_start, 'America/New_York')) =\n  (\n      SELECT toDate(date)\n      FROM\n      (\n          SELECT\n              date,\n              hi,\n              cl,\n              lagInFrame(hi) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_hi\n          FROM\n          (\n              SELECT\n                  date,\n                  argMax(high,  _ingest_time) AS hi,\n                  argMax(close, _ingest_time) AS cl\n              FROM global_markets.stocks_daily_aggs\n              WHERE ticker = 'SPY'\n                AND date >= '2024-12-31'\n                AND date <  '2026-01-01'\n              GROUP BY date\n          )\n      )\n      WHERE date >= '2025-01-01'\n        AND prior_hi > 0\n        AND hi > prior_hi\n        AND cl < prior_hi\n      ORDER BY (toFloat64(hi) - toFloat64(prior_hi)) / toFloat64(prior_hi) DESC, date DESC\n      LIMIT 1\n  )\n  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n       + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n       + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\nGROUP BY et_time\nORDER BY et_time","computed_at":"2026-09-19T15:04:29.295645+00:00","elapsed":0.006344645}