{"slug":"bracket-orders-and-oco-orders","qid":"touch_odds","label":"Share of SPY sessions reaching a given distance from the open (Aug 2023 to Jul 2026)","post_title":"Bracket Orders and OCO Orders Explained","post_url":"/blog/bracket-orders-and-oco-orders#q-touch_odds","columns":["distance_from_open","reached_below_pct","reached_above_pct"],"rows":[{"distance_from_open":"0.25%","reached_below_pct":62.3,"reached_above_pct":64.7},{"distance_from_open":"0.5%","reached_below_pct":42.5,"reached_above_pct":39.2},{"distance_from_open":"1%","reached_below_pct":16.1,"reached_above_pct":9.3},{"distance_from_open":"1.5%","reached_below_pct":5.2,"reached_above_pct":2.7},{"distance_from_open":"2%","reached_below_pct":2.1,"reached_above_pct":1.2},{"distance_from_open":"3%","reached_below_pct":0.5,"reached_above_pct":0.3}],"shape":"ranking","sql":"SELECT\n    concat(toString(d.dist), '%')                             AS distance_from_open,\n    round(100 * countIf(\n        (toFloat64(a.open) - toFloat64(a.low)) / toFloat64(a.open) * 100 >= d.dist\n    ) / count(), 1)                                           AS reached_below_pct,\n    round(100 * countIf(\n        (toFloat64(a.high) - toFloat64(a.open)) / toFloat64(a.open) * 100 >= d.dist\n    ) / count(), 1)                                           AS reached_above_pct\nFROM global_markets.stocks_daily_aggs AS a\nCROSS JOIN\n(\n    SELECT arrayJoin([0.25, 0.5, 1.0, 1.5, 2.0, 3.0]) AS dist\n) AS d\nWHERE a.ticker = 'SPY'\n  AND a.date >= '2023-08-01'\n  AND a.date <  '2026-08-01'\nGROUP BY d.dist\nORDER BY d.dist","computed_at":"2026-08-22T04:03:39.793857+00:00","elapsed":0.020331855}