{"slug":"stop-order-vs-stop-limit-order","qid":"gap_open_trace","label":"NVDA's largest gap-down opens and the 30 minutes that followed","post_title":"Stop Order vs Stop-Limit Order: How Each Fills","post_url":"/blog/stop-order-vs-stop-limit-order#q-gap_open_trace","columns":["session_date","open_vs_prior_close_pct","first_30m_low_vs_open_pct"],"rows":[{"session_date":"2022-02-24","open_vs_prior_close_pct":-6.13,"first_30m_low_vs_open_pct":-0.59},{"session_date":"2022-08-08","open_vs_prior_close_pct":-7.83,"first_30m_low_vs_open_pct":-0.82},{"session_date":"2022-09-01","open_vs_prior_close_pct":-5.86,"first_30m_low_vs_open_pct":-2.46},{"session_date":"2024-08-05","open_vs_prior_close_pct":-14.18,"first_30m_low_vs_open_pct":-1.49},{"session_date":"2025-01-27","open_vs_prior_close_pct":-12.49,"first_30m_low_vs_open_pct":-0.93},{"session_date":"2025-04-03","open_vs_prior_close_pct":-6.26,"first_30m_low_vs_open_pct":-0.24},{"session_date":"2025-04-07","open_vs_prior_close_pct":-7.26,"first_30m_low_vs_open_pct":-0.96},{"session_date":"2025-04-16","open_vs_prior_close_pct":-6.82,"first_30m_low_vs_open_pct":-0.19}],"shape":"series","sql":"WITH sessions AS\n(\n    SELECT\n        date,\n        toFloat64(open)  AS open_px,\n        toFloat64(close) AS close_px,\n        row_number() OVER (ORDER BY date)     AS session_n,\n        row_number() OVER (ORDER BY date) + 1 AS next_session_n\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'NVDA'\n      AND date >= '2021-08-01'\n      AND date <  '2026-08-01'\n),\ngap_days AS\n(\n    SELECT\n        cur.date                                           AS d,\n        round(100 * (cur.open_px / prior.close_px - 1), 2) AS gap_pct\n    FROM sessions AS cur\n    INNER JOIN sessions AS prior ON cur.session_n = prior.next_session_n\n    WHERE cur.date NOT IN\n    (\n        SELECT execution_date\n        FROM global_markets.stocks_splits\n        WHERE ticker = 'NVDA'\n    )\n    ORDER BY gap_pct ASC\n    LIMIT 8\n),\nopening_30m AS\n(\n    SELECT\n        toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n        argMin(toFloat64(open), window_start)                AS first_print,\n        min(toFloat64(low))                                  AS low_30m\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'NVDA'\n      AND window_start >= '2021-08-01'\n      AND window_start <  '2026-08-01'\n      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM gap_days)\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'))) < 600\n    GROUP BY d\n)\nSELECT\n    toString(g.d)                                     AS session_date,\n    g.gap_pct                                         AS open_vs_prior_close_pct,\n    round(100 * (o.low_30m / o.first_print - 1), 2)   AS first_30m_low_vs_open_pct\nFROM gap_days AS g\nINNER JOIN opening_30m AS o ON o.d = g.d\nORDER BY g.d","computed_at":"2026-08-08T15:31:42.563711+00:00","elapsed":0.005265718}