{"slug":"dragonfly-doji-follow-through","qid":"dragonfly_context","label":"dragonfly_context","post_title":"dragonfly-doji-follow-through","post_url":"/blog/lang/ta/dragonfly-doji-follow-through#q-dragonfly_context","columns":["context","sample_count","sample_size","median_5d_pct","median_20d_pct"],"rows":[{"context":"dragonfly_after_5d_decline","sample_count":202,"sample_size":"202","median_5d_pct":0.422,"median_20d_pct":1.035},{"context":"dragonfly_mid_range","sample_count":233,"sample_size":"233","median_5d_pct":0.444,"median_20d_pct":1.382},{"context":"other_days_after_5d_decline","sample_count":42707,"sample_size":"43 ஆயிரம்","median_5d_pct":0.445,"median_20d_pct":1.225},{"context":"other_days_mid_range","sample_count":53033,"sample_size":"53 ஆயிரம்","median_5d_pct":0.245,"median_20d_pct":1.203}],"shape":"table","sql":"WITH bars AS\n(\n    SELECT\n        ticker,\n        date,\n        toFloat64(open)  AS o,\n        toFloat64(high)  AS h,\n        toFloat64(low)   AS l,\n        toFloat64(close) AS c\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','META','JPM','XOM','JNJ','KO','PG','WMT','HD','UNH','CVX','MRK','CSCO','PEP','SPY','QQQ')\n      AND date >= '2006-01-01'\n      AND date <  '2026-10-01'\n      AND high > low\n      AND low > 0\n),\nshaped AS\n(\n    SELECT\n        ticker,\n        date,\n        c,\n        h - l              AS rng,\n        abs(c - o)         AS body,\n        h - greatest(o, c) AS upper_wick,\n        least(o, c) - l    AS lower_wick,\n        0.01 * o           AS min_range,\n        lagInFrame(c, 5)   OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN 5 PRECEDING AND CURRENT ROW)  AS c_prev5,\n        leadInFrame(c, 5)  OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN CURRENT ROW AND 20 FOLLOWING) AS c_fwd5,\n        leadInFrame(c, 20) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN CURRENT ROW AND 20 FOLLOWING) AS c_fwd20\n    FROM bars\n),\ntagged AS\n(\n    SELECT\n        ticker,\n        date,\n        c,\n        c_prev5,\n        c_fwd5,\n        c_fwd20,\n        multiIf(\n            rng >= min_range AND body <= 0.10 * rng AND upper_wick <= 0.10 * rng, 'dragonfly',\n            rng >= min_range AND body <= 0.10 * rng AND lower_wick <= 0.10 * rng, 'gravestone',\n            'other_days') AS pattern\n    FROM shaped\n),\nctx AS\n(\n    SELECT\n        ticker,\n        date,\n        c,\n        c_fwd5,\n        c_fwd20,\n        concat(pattern, if(c < c_prev5, '_after_5d_decline', '_mid_range')) AS context\n    FROM tagged\n    WHERE pattern != 'gravestone'\n      AND c_prev5 > 0\n      AND c_fwd5  > 0\n      AND c_fwd20 > 0\n)\nSELECT\n    context,\n    count()                 AS sample_count,\n    if(count() >= 10000,\n       concat(toString(round(count() / 1000)), ' ஆயிரம்'),\n       toString(count()))   AS sample_size,\n    round(100 * (quantileDeterministic(0.5)(c_fwd5  / c, cityHash64(concat(ticker, toString(date)))) - 1), 3) AS median_5d_pct,\n    round(100 * (quantileDeterministic(0.5)(c_fwd20 / c, cityHash64(concat(ticker, toString(date)))) - 1), 3) AS median_20d_pct\nFROM ctx\nGROUP BY context\nORDER BY context","computed_at":"2026-10-07T15:36:25.497359+00:00","elapsed":0.00711608}