{"slug":"covid-stimulus-rally-2020","qid":"breadth","label":"March 24, 2020 across index and sector ETFs: everything up, cyclicals first","post_title":"March 24, 2020: The Day the Market Turned","post_url":"/blog/covid-stimulus-rally-2020#q-breadth","columns":["ticker","mar23_close","mar24_close","change_pct"],"rows":[{"ticker":"XLE","mar23_close":23.53,"mar24_close":27.39,"change_pct":16.4},{"ticker":"XLI","mar23_close":48.75,"mar24_close":54.97,"change_pct":12.8},{"ticker":"XLF","mar23_close":17.62,"mar24_close":19.85,"change_pct":12.7},{"ticker":"DIA","mar23_close":185.87,"mar24_close":206.96,"change_pct":11.3},{"ticker":"XLU","mar23_close":44.92,"mar24_close":49.76,"change_pct":10.8},{"ticker":"XLK","mar23_close":70.2,"mar24_close":77.64,"change_pct":10.6},{"ticker":"XLY","mar23_close":87.42,"mar24_close":95.77,"change_pct":9.6},{"ticker":"SPY","mar23_close":222.51,"mar24_close":243.59,"change_pct":9.5},{"ticker":"IWM","mar23_close":99.83,"mar24_close":109.17,"change_pct":9.4},{"ticker":"QQQ","mar23_close":170.61,"mar24_close":183.79,"change_pct":7.7},{"ticker":"XLV","mar23_close":74.8,"mar24_close":80.31,"change_pct":7.4},{"ticker":"XLP","mar23_close":48.66,"mar24_close":51.12,"change_pct":5.1}],"shape":"ranking","sql":"SELECT\n    ticker,\n    round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-23')), 2) AS mar23_close,\n    round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-24')), 2) AS mar24_close,\n    round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-24')) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-23')) - 1) * 100, 1) AS change_pct\nFROM global_markets.delayed_stocks_minute_aggs\nWHERE ticker IN ('SPY', 'DIA', 'QQQ', 'IWM', 'XLE', 'XLI', 'XLF', 'XLK', 'XLY', 'XLV', 'XLU', 'XLP')\n  AND window_start >= toDateTime('2020-03-23 00:00:00') AND window_start < toDateTime('2020-03-25 00:00:00')\nGROUP BY ticker\nORDER BY change_pct DESC","computed_at":"2026-07-26T05:29:03.322629+00:00","elapsed":0.057523278}