pine-scripts

Tweezer & Kangaroo Zones

Detects two specific reversal candlestick patterns — tweezer tops/bottoms and kangaroo tails (pin bars) — and converts them into scored supply and demand zones that persist and decay over time. Instead of just marking the pattern, the script uses it as the origin of a dynamic zone whose score decays with age and touches, producing a living map of supply/demand levels grounded in actual rejection events.

Features

  • Tweezer top/bottom detection with flexible lookback, level tolerance, wick-similarity check, and volume validation
  • Kangaroo tail (pin bar) detection with wick/body ratio, body fraction, and body position thresholds
  • Timeframe sensitivity: pattern thresholds auto-adjust to the chart timeframe (stricter on low TFs, looser on high TFs)
  • Auto-tuning of kangaroo thresholds based on choppiness regime
  • 5-component zone scoring (0–100): rejection quality, extreme proximity, impulse before, freshness, cleanliness
  • Zone freshness decay (configurable half-life) and Top-N filtering of active zones
  • Zone grading (A/B/C) with labels and detailed tooltips, reversal bonus / continuation penalty
  • Zone merging on overlap, cluster limit, TTL, and close-through invalidation
  • Structure context: HH/HL/LH/LL swing detection with score bonus
  • Trend gate: EMA + HTF regime, optional Supertrend and MOST (local/HTF/both scopes)
  • Confluence scoring on zone retests (regime, HTF stack, structure, relative volume, chop, zone thinness, ST, MOST, and pattern strength when a pattern forms on the retest bar) with normalized 0–10 output
  • HTF Stack panel (3 timeframes) plus session, chop, and score readouts (light-theme table)
  • Buy/sell alerts on scored zone retests; hidden plots export signals and scores for external consumers
  • Optional session filter (RTH/ETH profiles) and daily zone reset
  • Debug logging for pattern tuning

Scoring

A zone is created when a pattern fires and the initial score clears Min Zone Score. The base score weights five components: rejection 30%, extreme proximity 25%, impulse 20%, freshness 15%, cleanliness 10%. The result is multiplied by the pattern weight (kangaroo default 1.2, tweezer 0.8), gets a structure bonus when aligned with swing structure, and a reversal bonus or continuation penalty depending on zone classification. Scores update every bar as freshness decays and touches accumulate — pattern weight and structure bonus are kept in those updates; grade and color follow the score. Impulse is measured over the five bars before the pattern bar, so the pattern’s own wick is not counted as impulse.

Retest signals fire when price re-enters an active zone on a later bar (the bar whose pattern created or reinforced the zone is not a retest) and the confluence score clears Min Score BUY / Min Score SELL. Choppiness acts as a hard block above the hard threshold and a soft gate below it.

Edit this page on GitHub