{"slug":"support-and-resistance-explained","qid":"wick_vs_close","label":"wick_vs_close","post_title":"support-and-resistance-explained","post_url":"/blog/lang/pcm/support-and-resistance-explained#q-wick_vs_close","columns":["ticker","poked_then_closed_under","closed_clean_above"],"rows":[{"ticker":"AAPL","poked_then_closed_under":111,"closed_clean_above":148},{"ticker":"MSFT","poked_then_closed_under":112,"closed_clean_above":147},{"ticker":"NVDA","poked_then_closed_under":97,"closed_clean_above":145},{"ticker":"SPY","poked_then_closed_under":157,"closed_clean_above":213}],"shape":"ranking","sql":"WITH bars AS\n(\n    SELECT\n        ticker,\n        date,\n        toFloat64(close) AS close_px,\n        toFloat64(high)  AS high_px\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA')\n      AND date >= '2019-01-01'\n      AND date <  '2026-09-20'\n),\nlevels AS\n(\n    SELECT\n        ticker,\n        date,\n        close_px,\n        high_px,\n        max(high_px) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 63 PRECEDING AND 1 PRECEDING) AS swing_high\n    FROM bars\n)\nSELECT\n    ticker,\n    countIf(high_px > swing_high AND close_px <= swing_high) AS poked_then_closed_under,\n    countIf(close_px > swing_high)                           AS closed_clean_above\nFROM levels\nWHERE date >= '2019-04-01'\n  AND date <  '2026-09-01'\nGROUP BY ticker\nORDER BY ticker","computed_at":"2026-09-27T15:34:08.821905+00:00","elapsed":0.003903028}