NoRepaint Pivot Indicator — Institutional Swing Structure LIVE TRAINING
SniperTrader
Precision · Discipline · Execution

NoRepaint Pivot
Indicator Framework

// True Swing Points · Never Repaint

What The NoRepaint Pivot Indicator Does

Identifies validated swing highs and lows that will not repaint, disappear, or shift after the fact. Every pivot is confirmed using a “future bar confirmation” algorithm — once printed, it’s final. Designed for daytraders who need reliable structure levels.

🔺

Swing Highs (Resistance)

Local maximum where price made a high, pulled back, and never exceeded that high for N bars. Serves as resistance / potential reversal zone.

🔻

Swing Lows (Support)

Local minimum where price made a low, rallied, and never broke below for N bars. Acts as support / bounce zone.

⏱️

No Repaint Guarantee

Pivots only appear after confirmation threshold (e.g., 3 bars to the right). No backpainting, no recalc. Your entry levels remain static.

Why NoRepaint Matters for Daytraders
01

Stop Hunting with Integrity

Many indicators repaint — they show a pivot and then erase it when price moves. That leads to fake signals and losing trades. NoRepaint pivots stay fixed, so you can place stops and targets with confidence.

02

Structural Breakouts

Break of a confirmed pivot high signals trend continuation. Failure to break signals potential reversal. NoRepaint pivots give you objective levels without hindsight bias.

03

Divergence & Confluence

Because pivots are reliable, you can overlay momentum oscillators (RSI, MACD) to spot hidden/regular divergences. The indicator itself can also plot divergence automatically.

How The Indicator Generates Pivots

A multi-stage rule-based system: raw price → lookback/forward confirmation → persistence filtering → final pivot print. The core is the “fractal” logic with a required number of confirming bars on each side.

📈
Stage 1
Swing Detection
🔮
Stage 2
Future Confirmation
🧹
Stage 3
Repaint Filter
🏷️
Stage 4
Label + Arrow

Stage 1 — Raw Fractal Pattern

A classic pivot requires that a bar’s high is strictly greater than the highs of leftBars before it and rightBars after it (for swing high). For swing low, the low must be lower than surrounding lows.

// Swing High: high > max(high[leftBars]) and high > max(high[rightBars]) def leftHighMax = Highest(high[1], leftBars); def rightHighMax = Highest(high[-rightBars], rightBars); def swingHighRaw = high > leftHighMax and high > rightHighMax; // Swing Low: low < min(low[leftBars]) and low < min(low[rightBars]) def leftLowMin = Lowest(low[1], leftBars); def rightLowMin = Lowest(low[-rightBars], rightBars); def swingLowRaw = low < leftLowMin and low < rightLowMin;
⚙️

Default parameters: leftBars = 2, rightBars = 2. That means a pivot needs two lower highs on each side. Increase to 3 or 4 for higher timeframe significance.

Stage 2 — NoRepaint Mechanism (The Core Innovation)

Instead of printing the pivot on the bar that would later be confirmed (which would repaint), the indicator prints only when the right-side confirmation bars have closed. For real-time trading, the pivot label appears with a delay of rightBars bars — but it never moves.

// The confirmed pivot prints on the bar index - rightBars def pivotHighConfirmed = swingHighRaw and IsNaN(high[rightBars + 1]) == 0; // Only plot arrow when all right bars have occurred without repaint risk plot pivotHighArrow = pivotHighConfirmed and !pivotHighConfirmed[1];
⏲️

Delay vs. Repaint: Yes, the pivot appears up to rightBars bars later. But it never changes. That trade‑off is acceptable for professional traders who value static levels over recalc chaos.

Interpreting Pivot Labels & Arrows

Each pivot is displayed with a triangle (▲ for swing high, ▼ for swing low) and optional text label. The color indicates strength: green = bullish context, red = bearish context, blue = neutral.

SH SH SL SL ▲ Swing High (resistance) · ▼ Swing Low (support)
🟢 Bullish Pivot Setup

Price breaks above a confirmed swing high with momentum → trend continuation. Alternatively, price rejects a swing low (bounce) → long entry.

🔴 Bearish Pivot Setup

Price breaks below a swing low → continuation short. Price rejects a swing high → short entry.

⚠️

False breakouts: A pivot high is not automatically a resistance. Wait for a full candle close above it for breakout longs. The pivot level becomes support after breakout. Same for swing lows.

Why Pivots Never Repaint

Most "pivot" indicators redraw in real‑time because they use future data without locking the signal. Our algorithm uses a forward‑only confirmation window — the pivot is calculated on a bar that is already closed and has enough subsequent bars to validate it.

// Pseudo-code: NoRepaint guarantee by delayed plotting int confBars = 3; // require 3 bars after potential pivot bool potentialPivot = (high > high[1] && high > high[2] && high > high[-1] && high > high[-2] && high > high[-3]); // Only plot after we have seen all confirmation bars in real-time if (potentialPivot && BarNumber() > pivotBarIndex + confBars) { DrawArrow(pivotBarIndex, high); }

Verification test: Run the indicator on historical data and refresh the chart multiple times. Pivots never shift. If you see a pivot disappear or move, it’s a repainting indicator — ours passes the static test.

📌 Right‑Bars Parameter

Sets how many bars after a potential pivot must close to confirm. Default 2. Higher value = later signal but stronger confirmation.

⏳ Delay vs. Reactivity

For 1‑minute charts, a 2‑bar delay is acceptable (2 minutes). For 5‑minute charts, 10 minutes. Adjust rightBars to balance latency and reliability.

🧠 No Lookahead Bias

Script never accesses high[-1] or low[-1] for plotting. It only uses historical data at the time of bar close.

Using Pivots for Entries, Stops & Targets

NoRepaint pivots become your anchor. Enter on breaks, place stops behind the pivot, and target the next pivot in the direction of the trend.

// Long Entry Rules
  • Price breaks above a confirmed swing high with a full candle close
  • Optional: Retest of the swing high as new support (pullback entry)
  • Stop loss placed below the most recent swing low (or below the broken pivot)
  • Target 1: next swing high (previous resistance)
  • Target 2: measure projected move using average pivot range
// Short Entry Rules
  • Price breaks below a confirmed swing low with a full candle close
  • Retest of the swing low as new resistance (pullback entry)
  • Stop loss placed above the most recent swing high
  • Target 1: next swing low
  • Target 2: measured move extension
🚫

Avoid “pivot fading” without confirmation: Do not short right at a swing high unless you see a reversal candle (engulfing, pin bar). The pivot is a structure level, not a limit order.

Pivot Strength & Multi‑Timeframe Alignment

The indicator can calculate a “pivot score” based on: number of touches, volume at pivot, distance to moving averages, and higher timeframe alignment.

FactorPointsDescription
Pivot age (bars ago)+5 to +15Older pivots that held multiple times get higher weight
Volume spike at pivot+10High volume at the pivot suggests institutional interest
HTF pivot alignment+20If the 15min pivot aligns with a 1hr pivot → strong confluence
Breakout candle strength+10Close beyond pivot by ≥ 0.5 ATR adds conviction
📊

Score interpretation: Score ≥ 30 = tradable setup. ≥ 50 = high confidence. Use score to adjust position sizing.

Step‑by‑Step Trading Routine

A systematic workflow for daytrading with NoRepaint pivots, from pre‑market to exit.

1

Identify Key Pivot Levels

Mark the last 3–4 swing highs and lows on your trading timeframe. These are your battle lines.

2

Wait for Break or Rejection

Do not anticipate. Let price reach a pivot and react. A break = trend trade; a rejection = mean reversion trade.

3

Confirm with Candle Close

For breakout trades: wait for a full bar close beyond the pivot. For rejection: wait for a close back inside the range.

4

Set Stop & Target

Stop = opposite side of the pivot zone (e.g., 2–3 ticks beyond the high/low). Target = next pivot level + trailing once in profit.

5

Manage & Trail

Once price moves past the first target, move stop to break-even. Then trail behind each new pivot formed in your direction.

Pro Tips
📈 Higher Timeframe Bias

Use 1h or 4h pivots to determine trend direction. Only take long setups if price is above the most recent higher timeframe swing low.

⏲️ Adjusting RightBars

Scalping (1m chart): rightBars=1 or 2. Daytrading (5m/15m): rightBars=2 or 3. Swing: rightBars=4–5.


ParameterDefaultEffect on NoRepaint
leftBars2How many bars left of pivot must be lower/higher
rightBars2How many future bars confirm pivot — directly controls repaint delay
minPivotDistance0 (ATR-based)Optional minimum price movement between pivots to filter noise