{"slug":"nvda-week-2026-07-06-deep-dive","qid":"position_check","label":"NVDA position check as of Friday's close: trailing-year extremes and moving averages","post_title":"NVDA: Sit-Out, Then Surge, Week of July 6","post_url":"/blog/nvda-week-2026-07-06-deep-dive#q-position_check","columns":["friday_close","high_52w","high_52w_date","pct_below_52w_high","low_52w","low_52w_date","close_vs_52w_low_pct","ma_50d","close_vs_ma50_pct","ma_200d","close_vs_ma200_pct","trading_days_observed"],"rows":[{"friday_close":210.96,"high_52w":236.54,"high_52w_date":"2026-05-14","pct_below_52w_high":10.8,"low_52w":162.02,"low_52w_date":"2025-07-14","close_vs_52w_low_pct":30.2,"ma_50d":209.16,"close_vs_ma50_pct":0.9,"ma_200d":191.75,"close_vs_ma200_pct":10,"trading_days_observed":251}],"shape":"scalar","sql":"WITH daily AS (\n    SELECT\n        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,\n        argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS c,\n        maxIf(toFloat64(high), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS h,\n        minIf(toFloat64(low), (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) AS l\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'NVDA'\n      AND window_start >= toDateTime('2025-07-11 00:00:00') AND window_start < toDateTime('2026-07-11 00:00:00')\n    GROUP BY et_date\n    HAVING countIf((toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) > 0\n)\nSELECT\n    round(argMax(c, et_date), 2) AS friday_close,\n    round(max(h), 2) AS high_52w,\n    argMax(toString(et_date), (h, et_date)) AS high_52w_date,\n    round(100 * (1 - argMax(c, et_date) / max(h)), 1) AS pct_below_52w_high,\n    round(min(l), 2) AS low_52w,\n    argMax(toString(et_date), (-l, et_date)) AS low_52w_date,\n    round(100 * (argMax(c, et_date) / min(l) - 1), 1) AS close_vs_52w_low_pct,\n    round(arrayAvg(arrayMap(t -> t.2, arraySlice(arrayReverseSort(t -> t.1, groupArray((et_date, c))), 1, 50))), 2) AS ma_50d,\n    round(100 * (argMax(c, et_date) / arrayAvg(arrayMap(t -> t.2, arraySlice(arrayReverseSort(t -> t.1, groupArray((et_date, c))), 1, 50))) - 1), 1) AS close_vs_ma50_pct,\n    round(arrayAvg(arrayMap(t -> t.2, arraySlice(arrayReverseSort(t -> t.1, groupArray((et_date, c))), 1, 200))), 2) AS ma_200d,\n    round(100 * (argMax(c, et_date) / arrayAvg(arrayMap(t -> t.2, arraySlice(arrayReverseSort(t -> t.1, groupArray((et_date, c))), 1, 200))) - 1), 1) AS close_vs_ma200_pct,\n    count() AS trading_days_observed\nFROM daily","computed_at":"2026-07-26T06:11:52.154349+00:00","elapsed":0.750521694}