how signals work

The Signal Pipeline

Every bar, the indicator runs through the following pipeline to determine whether to plot a long (green dot) or short (red dot):

  1. Calculate each pillar independently

  2. Compute the confluence score (how many agree)

  3. Apply filters (chop zone, regime, curl protection, Volatility gate)

  4. Resolve conflicts (if long + short both qualify)

  5. Apply position state machine (cooldown, flip logic)

  6. Plot the dot

1

Step 1: Individual Pillar Conditions

Each pillar produces a true/false output:

Pillar
Long True When
Short True When

Expansion Wave

Bullish expansion active (bullOK)

Bearish expansion active (bearOK)

Momentum

Recovering from Oversold zone, rising, above its MA

Rejecting from Overbought zone, falling, below its MA

Order Flow

Order Flow slope is positive (rising over last 5 bars)

Order Flow slope is negative (falling over last 5 bars)

Divergence

Valid bullish divergence detected recently

Valid bearish divergence detected recently

The Volatility line does not add to the score — it acts as a binary gate that can block an otherwise valid signal.

2

Step 2: Confluence Score

The scores are summed:

Long Score  = Expansion Wave(long)  + Momentum(long)  + Order Flow(long)  + Divergence score (0–3)
Short Score = Expansion Wave(short) + Momentum(short) + Order Flow(short) + Divergence score (0–3)

The Divergence pillar is "soft" — it can contribute 1, 2, or 3 points depending on how many divergence types are detected (Momentum div, Expansion div, Order Flow div). Its absence never blocks an entry.

The Base Min Score setting determines how many points are required. With Score Pillars (auto-scale) enabled, the minimum is automatically capped to the number of available pillars.

3

Step 3: Filters Applied

Even if the score threshold is met, these filters can block the signal:

Chop Zone Block

If the Momentum line is between Chop Zone Low (35) and Chop Zone High (65) → signal blocked.

Regime Filter

If the Regime Filter is enabled (Noise Filter section):

  • Long requires bullOK (Expansion Wave is bullish)

  • Short requires bearOK (Expansion Wave is bearish)

Curl Protection

  • If Momentum is rising for 2 bars AND above its MA AND Order Flow is rising → shorts blocked

  • If Momentum is falling for 2 bars AND below its MA AND Order Flow is falling → longs blocked

Volatility Gate

  • Long requires Volatility line is not overbought (≥80) and is rising or was recently oversold

  • Short requires Volatility line is not oversold (≤20) and is falling or was recently overbought

Momentum Trend Filter (optional)

If the Momentum Trend Filter is enabled (Momentum Filter (Pivots) section), signals are gated to only fire in the direction the smoothed Momentum derivative is pointing.

4

Step 4: Conflict Resolution

On rare occasions, both long and short conditions are true on the same bar. The indicator resolves this:

  1. Higher score wins. Long score > short score → take long. Short score > long score → take short.

  2. On a tie: If Momentum ≥ 50, prefer long. If Momentum < 50, prefer short.

Only one dot can fire per bar.

5

Step 5: Position State Machine

The indicator tracks a virtual position state:

  • pos = 1 → currently long

  • pos = -1 → currently short

  • pos = 0 → flat (starting state)

Rules:

  • A long entry can only fire if currently flat or short

  • A short entry can only fire if currently flat or long

  • After any flip, a cooldown timer starts. No new signal fires until the set number of bars has elapsed.

6

Step 6: Plot Mode

Two modes are available via Only plot on state change (Signals section):

Mode
When Dot Appears

✅ On (default)

Only on the bar where the signal flips direction

❌ Off

Every bar the signal condition is true

The default "on flip only" mode produces cleaner charts with discrete entry markers. The "every bar" mode is useful for understanding how long a condition persists or for debugging settings.

Visual Summary

GREEN DOT at the bottom of the panel = Long entry signal
RED DOT at the top of the panel      = Short entry signal

Each dot represents a moment when all active filters aligned and the score threshold was met in that direction. The dot marks the first bar of that condition (when using state-change mode).

Was this helpful?