{"slug":"us-stock-market-hours-brasilia-time","qid":"abertura_empirica","label":"abertura_empirica","post_title":"us-stock-market-hours-brasilia-time","post_url":"/blog/lang/pt/us-stock-market-hours-brasilia-time#q-abertura_empirica","columns":["date","dia_mes","dia_semana","abertura_brt","abertura_brt_em_horas","salto_de_volume_vs_bloco_anterior"],"rows":[{"date":"2026-03-02","dia_mes":"02/03","dia_semana":"segunda","abertura_brt":"11:30","abertura_brt_em_horas":11.5,"salto_de_volume_vs_bloco_anterior":28.5},{"date":"2026-03-03","dia_mes":"03/03","dia_semana":"terça","abertura_brt":"11:30","abertura_brt_em_horas":11.5,"salto_de_volume_vs_bloco_anterior":23.7},{"date":"2026-03-04","dia_mes":"04/03","dia_semana":"quarta","abertura_brt":"11:30","abertura_brt_em_horas":11.5,"salto_de_volume_vs_bloco_anterior":14.4},{"date":"2026-03-05","dia_mes":"05/03","dia_semana":"quinta","abertura_brt":"11:30","abertura_brt_em_horas":11.5,"salto_de_volume_vs_bloco_anterior":17.8},{"date":"2026-03-06","dia_mes":"06/03","dia_semana":"sexta","abertura_brt":"11:30","abertura_brt_em_horas":11.5,"salto_de_volume_vs_bloco_anterior":18.5},{"date":"2026-03-09","dia_mes":"09/03","dia_semana":"segunda","abertura_brt":"10:30","abertura_brt_em_horas":10.5,"salto_de_volume_vs_bloco_anterior":19.8},{"date":"2026-03-10","dia_mes":"10/03","dia_semana":"terça","abertura_brt":"10:30","abertura_brt_em_horas":10.5,"salto_de_volume_vs_bloco_anterior":23.4},{"date":"2026-03-11","dia_mes":"11/03","dia_semana":"quarta","abertura_brt":"10:30","abertura_brt_em_horas":10.5,"salto_de_volume_vs_bloco_anterior":17.5},{"date":"2026-03-12","dia_mes":"12/03","dia_semana":"quinta","abertura_brt":"10:30","abertura_brt_em_horas":10.5,"salto_de_volume_vs_bloco_anterior":13.7},{"date":"2026-03-13","dia_mes":"13/03","dia_semana":"sexta","abertura_brt":"10:30","abertura_brt_em_horas":10.5,"salto_de_volume_vs_bloco_anterior":19.1}],"shape":"series","sql":"WITH blocos AS\n(\n    SELECT\n        toDate(window_start, 'America/New_York')                        AS dia,\n        toStartOfInterval(window_start, INTERVAL 30 MINUTE)             AS bloco,\n        bloco - INTERVAL 30 MINUTE                                      AS bloco_anterior,\n        sum(toFloat64(volume))                                          AS acoes\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= toDateTime('2026-03-02 00:00:00', 'America/New_York')\n      AND window_start <  toDateTime('2026-03-14 00:00:00', 'America/New_York')\n    GROUP BY dia, bloco, bloco_anterior\n)\nSELECT\n    toString(atual.dia)                                                                 AS date,\n    formatDateTime(atual.dia, '%d/%m')                                                  AS dia_mes,\n    multiIf(toDayOfWeek(atual.dia) = 1, 'segunda', toDayOfWeek(atual.dia) = 2, 'terça',\n            toDayOfWeek(atual.dia) = 3, 'quarta',  toDayOfWeek(atual.dia) = 4, 'quinta',\n            toDayOfWeek(atual.dia) = 5, 'sexta',   toDayOfWeek(atual.dia) = 6, 'sábado',\n            'domingo')                                                                  AS dia_semana,\n    formatDateTime(argMax(atual.bloco, atual.acoes / anterior.acoes), '%H:%i', 'America/Sao_Paulo') AS abertura_brt,\n    toHour(toTimeZone(argMax(atual.bloco, atual.acoes / anterior.acoes), 'America/Sao_Paulo'))\n      + toMinute(toTimeZone(argMax(atual.bloco, atual.acoes / anterior.acoes), 'America/Sao_Paulo')) / 60 AS abertura_brt_em_horas,\n    round(max(atual.acoes / anterior.acoes), 1)                                         AS salto_de_volume_vs_bloco_anterior\nFROM blocos AS atual\nINNER JOIN blocos AS anterior\n    ON anterior.dia = atual.dia\n   AND anterior.bloco = atual.bloco_anterior\nWHERE anterior.acoes > 0\nGROUP BY atual.dia\nORDER BY atual.dia","computed_at":"2026-11-01T01:49:13.475145+00:00","elapsed":0.91635198}