PND Delta Candles

Visual reference — how it works, what each setting does. Join discord to get the indicator 💰  ·  ▶ See walkthrough on YouTube
PND Delta Candles — ATAS X Custom Indicator  ·  by profitnotiondaily  ·  discord.gg/profitnotiondaily  ·  Download ATAS/X

What it does

📊
Colors hollow candles by order flow
Each bar's color reflects the rolling sum of delta (buy aggression minus sell aggression) over the last N bars. The brighter the color, the more one-sided the flow. Yellow = contested / neutral.
Adaptive thresholds — no manual tuning
Neutral and max-intensity thresholds scale automatically to the instrument. On NQ 1m (avg delta ~80) the neutral zone is ~12, on NQ 5m (avg ~250) it's ~37. Same settings work on any chart.
Direction stripe
A solid-filled strip on the open side of each body shows candle direction at a glance. Hollow space faces the close, filled strip faces the open.
🔄
Replaces default candles
Uses ATAS's PaintbarsDataSeries to suppress the default candle rendering, then draws fully custom hollow candles on top via OnRender.

How the score is calculated — step by step

Raw data
candle.Delta
Ask-aggressor minus
bid-aggressor volume
Step 1
Rolling Sum
SUM(delta, Period)
over last N bars
Step 2
Rolling Mean |Δ|
SMA(|rollingSum|, Lookback)
= avg activity level
Step 3
Adaptive Thresholds
Neutral = avg × 0.15
Max = avg × 2.0
Step 4
t = position in range
0 at neutral thresh
1.0 at max thresh
Step 5
Power curve
tp = t ^ 0.7
(compresses ramp)
Output
Candle Color
LerpColor(soft, strong, tp)
per direction

Adaptive threshold diagram — how neutral zone and gradient range work

Neutral Zone |rollingDelta| ≤ avg × 0.15 −max +max avg × −2.0 avg × +2.0 Bear gradient Bull gradient 0 stronger ← → stronger
Neutral Fraction (0.15) — Below this fraction of avg |delta|, bar shows yellow. Raise to color fewer bars. Lower to always show a directional color.
Max Multiplier (2.0) — At this multiple of avg |delta|, gradient reaches full intensity. Lower to 1.5 to reach strong color sooner.

Color gradient

Bull (positive delta)
soft — low delta intensitystrong — high delta intensity
#88FFFFFF semi-transparent white → #FFFFFFFF opaque white
Bear (negative delta)
soft — low delta intensitystrong — high delta intensity
#FF505757 dark teal-gray → #FF242425 near-black
Neutral
#9EFFFF00 — rolling delta within the neutral zone (near-zero or contested)
Power Curve (default 0.7): shapes how the gradient ramps up. At t^0.7, mid-range delta values show noticeably colored bars — not just the extremes. Setting it to 1.0 gives a linear ramp. Setting it to 2.0 keeps bars mostly soft until a strong reading appears.

Mock chart — candle states

21460 21445 21430 21415 21400 Strong Bull delta > 2× avg Mid Bull delta ~1× avg Soft Bull delta > neutral Neutral |delta| ≤ neutral Doji open = close Soft Bear delta > neutral Mid Bear delta ~1× avg Strong Bear delta < −2× avg Body Fill on (BodyFill > A:0) ← stripe (open side) ← hollow (close side)

Direction stripe — reading the candle body

Bull candle (Close > Open)
Open is at the bottom of the body.
Stripe fills the bottom portion (open side).
Hollow space is at the top (close side).

Reading: price closed up from where it opened.
Bear candle (Close < Open)
Open is at the top of the body.
Stripe fills the top portion (open side).
Hollow space is at the bottom (close side).

Reading: price closed down from where it opened.
Doji (Close = Open)
Body height is zero → drawn as a
single horizontal line in the bar's color.

Color is still driven by rolling delta, so a yellow doji = neutral flow + indecision.
Stripe height controls
Stripe Fraction (0.9) — 90% of body height is filled by stripe. Lower for a thinner accent line.

Min Stripe Ticks (1) — Minimum height in ticks, so tiny-body bars still show a visible stripe.

All settings — quick reference

SettingDefaultWhat it controls
Delta
Period 15 Number of bars to SUM delta over. This is your CVD window. On a 1m chart, Period=5 ≈ 5-min flow, Period=15 ≈ 15-min flow. Higher = slower/smoother signal that ignores single-bar spikes. Lower = more reactive to recent delta changes.
Adaptive Thresholds
Lookback Period 60 How many bars back to average |rollingDelta| for the adaptive threshold baseline. 60 bars on 1m = 1 hour of history to set the "typical delta" for the session. Lower = adapts faster to changing conditions. Higher = more stable baseline.
Neutral Zone 0.15 Fraction of avg |delta| where bar shows yellow. At 0.15: if avg delta is 80, then |rolling delta| below 12 = yellow. Raise toward 0.3–0.5 to only show directional color on stronger readings. Lower toward 0.05 to color nearly every bar.
Max Intensity 2.0 Multiple of avg |delta| at which gradient reaches full strength. At 2.0: full-color white/black appears when rolling delta ≥ 2× the average. Lower to 1.5 to reach full intensity sooner (useful in fast markets). Raise to 3.0 if you only want full-color on truly extreme readings.
Gradient
Power Curve 0.7 Exponent applied to the normalized intensity (tp = t ^ power). <1 pushes color out earlier — mid-range bars get noticeably colored. =1 is a pure linear ramp. >1 keeps bars soft until near the max — only extreme readings get strong color.
Colors
Bull Soft
#88FFFFFF
Color at the low-intensity end of the bull ramp (delta just above the neutral zone).
Bull Strong
#FFFFFFFF
Color at full bull intensity (rolling delta ≥ max threshold).
Bear Soft
#FF505757
Color at the low-intensity end of the bear ramp.
Bear Strong
#FF242425
Color at full bear intensity. Near-black by design — strong selling pressure.
Neutral
#9EFFFF00
Color for bars where |rolling delta| is within the neutral zone. Yellow = contested flow.
Candle Body
Body Fill #00000000 Fill color for the interior of the candle body. Default alpha=0 = fully hollow (only the border and stripe show). Set a non-zero alpha to get a translucent filled body.
Direction Stripe
Stripe Fraction 0.9 What fraction of the body height the stripe occupies. 0.9 = 90% filled (very visible). Lower to 0.3–0.5 for a subtle accent line at the open edge.
Min Stripe Ticks 1 Minimum stripe height in ticks, regardless of body size. Ensures small-body bars still show a distinguishable stripe.

Setting the Period for different timeframes

The Period setting controls how many bars are summed. On a 1-minute chart, each bar = 1 minute, so Period = bars ≈ minutes. Mix and match to see different time perspectives simultaneously.

Timeframe goal On 1m chart On 5m chart Lookback suggestion
Intrabar / scalp Period = 3 Period = 1 Lookback = 20–30
5-minute flow Period = 5 Period = 1 Lookback = 30–50
15-minute flow (default) Period = 15 Period = 3 Lookback = 60
30-minute flow Period = 30 Period = 6 Lookback = 80–100
Hourly bias Period = 60 Period = 12 Lookback = 120+

Tip: Run two instances side by side — one at Period=5 for scalp reads, one at Period=15 for bias direction. When both agree, conviction is higher.

PND Delta Candles vs PND Order Flow Composite — when to use each

Characteristic PND Delta Candles PND Order Flow Composite
Core signal Rolling sum of delta only 7 signals combined (delta, absorption, exhaustion, DOM, footprint)
Speed / reactivity Very fast — single calculation Slightly slower — z-scores + EMA smoothing
False signal filtering Moderate — single metric Better — signals must agree to score high
Live DOM data (L2) No Yes — Queue Imbalance signal
Footprint cluster data No Yes — Cluster Location signal
Works on historical bars Fully Yes, except S6 (DOM = 0 on history)
Best use case Quick read: is flow net bullish or bearish right now? Higher-conviction reads: do multiple signals confirm the same direction?
Run together? Yes — use the same Period / FastPeriod so they cover the same CVD window. Colors are different by design.