{"slug":"market-structure-and-break-of-structure","qid":"bos_trace","label":"bos_trace","post_title":"market-structure-and-break-of-structure","post_url":"/blog/lang/th/market-structure-and-break-of-structure#q-bos_trace","columns":["session_date","close","swing_high_level","pivot_label"],"rows":[{"session_date":"2025-03-25","close":223.75,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-03-26","close":221.53,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-03-27","close":223.85,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-03-28","close":217.9,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-03-31","close":222.13,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-01","close":223.19,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-02","close":223.89,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-03","close":203.19,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-04","close":188.38,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-07","close":181.46,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-08","close":172.42,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-09","close":198.85,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-10","close":190.42,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-11","close":198.15,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-14","close":202.52,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-15","close":202.14,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-16","close":194.27,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-17","close":196.98,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-21","close":193.16,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-22","close":199.74,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-23","close":204.6,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-24","close":208.37,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-25","close":209.28,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-28","close":210.14,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-29","close":211.21,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-04-30","close":212.5,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-01","close":213.32,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-02","close":205.35,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-05","close":198.89,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-06","close":198.51,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-07","close":196.25,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-08","close":197.49,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-09","close":198.53,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-12","close":210.79,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-13","close":212.93,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-14","close":212.33,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-15","close":211.45,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-16","close":211.26,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-19","close":208.78,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-20","close":206.86,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-21","close":202.09,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-22","close":201.36,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-23","close":195.27,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-27","close":200.21,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-28","close":200.42,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-29","close":199.95,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-05-30","close":200.85,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-02","close":201.7,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-03","close":203.27,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-04","close":202.82,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-05","close":200.63,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-06","close":203.92,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-09","close":201.45,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-10","close":202.67,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-11","close":198.78,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-12","close":199.2,"swing_high_level":212.94,"pivot_label":"14/04/2025"},{"session_date":"2025-06-13","close":196.45,"swing_high_level":212.94,"pivot_label":"14/04/2025"}],"shape":"series","sql":"WITH\npx AS\n(\n    SELECT\n        date,\n        toFloat64(high)  AS h,\n        toFloat64(close) AS c\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'AAPL'\n      AND date >= '2025-01-02'\n      AND date <  '2025-08-01'\n),\nflagged AS\n(\n    SELECT\n        date,\n        h,\n        c,\n        max(h) OVER w_prev  AS prev_high,\n        max(h) OVER w_next  AS next_high,\n        count() OVER w_prev AS bars_before,\n        count() OVER w_next AS bars_after\n    FROM px\n    WINDOW\n        w_prev AS (ORDER BY date ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING),\n        w_next AS (ORDER BY date ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING)\n),\npivot AS\n(\n    SELECT\n        date AS pivot_date,\n        h    AS level\n    FROM flagged\n    WHERE bars_before = 3\n      AND bars_after = 3\n      AND h > prev_high\n      AND h > next_high\n      AND date <= '2025-04-30'\n    ORDER BY date DESC\n    LIMIT 1\n)\nSELECT\n    toString(f.date)                         AS session_date,\n    round(f.c, 2)                            AS close,\n    round(p.level, 2)                        AS swing_high_level,\n    formatDateTime(p.pivot_date, '%d/%m/%Y') AS pivot_label\nFROM flagged AS f\nCROSS JOIN pivot AS p\nWHERE f.date >= p.pivot_date - 20\n  AND f.date <= p.pivot_date + 60\nORDER BY f.date","computed_at":"2026-09-22T15:02:09.997034+00:00","elapsed":0.003132724}