Pattern · 150-500/mo

Pivot Points Trading Signals — Complete TradingView Guide

Pivot Points trading signals for TradingView. Daily/weekly/monthly pivot levels with support and resistance signals, Pine Script code, and ES examples.

Pivot Points Signal Interpretation

Quick-reference guide to 7 signal types you will see on the chart.

Signal TypeIndicator ConditionMarket MeaningReliability
Price Bounce at Pivot (PP)Price touches the daily Pivot (PP) level from above and forms a bullish reversal candlestick patternPP acts as dynamic support. The first touch of PP after a bearish session often attracts buyers who fade the move to the intraday mean. Quick scalp target is R1.3/5
Breakout Above R1 with VolumePrice closes above R1 resistance on above-average volume with the next bar opening above R1Bulls have overcome the first resistance layer. The rejection at R1 failed and momentum is building for a move to R2. R1 becomes new support.4/5
Break Below S1 with MomentumPrice breaks below S1 support with a bearish candle closing below and momentum continuing lowerSellers are in control. S1 acted as a gateway and the breakdown signals bearish continuation. The target becomes S2. S1 turns into resistance.4/5
R1/R2 Rejection ReversalPrice approaches R1 or R2 with a long upper wick and closes near the session open on the hourly chartResistance is holding. The market tested overhead supply and was rejected. Short entries near R1 or R2 with a stop above the wick are the standard setup. I took this trade on ES on March 12, 2025 and caught a 14-point reversal from R1 back to PP.3/5
PP to R1 Momentum RidePrice opens near PP and trends steadily toward R1 without pulling back more than 2 ticks on a 5m chartIntraday trend day in progress. The steady climb from PP to R1 without deep pullbacks signals aggressive buying. R1 often becomes a continuation point rather than resistance on strong volume days.4/5
S1/S2 Overextension Mean ReversionPrice reaches S2 with RSI below 25 on a 15m chart and shows a bullish engulfing candleThe move below S2 is overdone. Mean reversion from extreme levels is a high-probability scalp back to S1 or PP. I use a 6-point target on ES with a 3-point stop.3/5
Weekly Pivot Floor BreakPrice breaks below the weekly pivot low on a daily close with increased volume and no lower wickThe weekly structure has flipped bearish. Weekly pivots carry more weight than daily ones. When the weekly pivot floor fails on a daily close, the path to the next weekly support level is clear.5/5

Pivot Points Pine Script Signal Code

Ready-to-use Pine Script code for generating buy/sell signals. Copy and paste into your TradingView Pine Editor.

Pine Script v5
//@version=5
indicator("Pivot Points Trading Signals", overlay=true)

// Input parameters
pivotType = input.string("Daily", "Pivot Type", options=["Daily", "Weekly", "Monthly"])
showAllLevels = input.bool(true, "Show All Levels")
showSignals = input.bool(true, "Show Buy/Sell Signals")
srcHigh = input.source(high, "High Source")
srcLow = input.source(low, "Low Source")
srcClose = input.source(close, "Close Source")

// Pivot calculation function
f_pivot_levels(h, l, c) =>
    pp = (h + l + c) / 3
    r1 = pp * 2 - l
    r2 = pp + (h - l)
    r3 = h + 2 * (pp - l)
    s1 = pp * 2 - h
    s2 = pp - (h - l)
    s3 = l - 2 * (h - pp)
    [pp, r1, r2, r3, s1, s2, s3]

// Determine lookback based on pivot type
lookback = pivotType == "Daily" ? 1 : pivotType == "Weekly" ? 7 : 30

// Fetch prior period high, low, close
prevHigh = ta.valuewhen(change(time(lookback * 86400000)) != 0, srcHigh, 1)
prevLow = ta.valuewhen(change(time(lookback * 86400000)) != 0, srcLow, 1)
prevClose = ta.valuewhen(change(time(lookback * 86400000)) != 0, srcClose, 1)

[pp, r1, r2, r3, s1, s2, s3] = f_pivot_levels(prevHigh, prevLow, prevClose)

// Signal conditions
abovePP = close > pp
belowPP = close < pp
brokeR1 = ta.crossover(close, r1)
brokeS1 = ta.crossunder(close, s1)
bounceAtPP = ta.crossunder(low, pp) and close > pp  // touched PP and bounced
rejectR1 = ta.crossover(high, r1) and close < r1     // touched R1 and rejected

// Buy signals
buySignal = brokeR1 and abovePP
buyScalp = bounceAtPP

// Sell signals
sellSignal = brokeS1 and belowPP
sellScalp = rejectR1

// Plot levels
ppColor = color.new(#2962FF, 20)
r1Color = color.new(#4CAF50, 25)
r2Color = color.new(#4CAF50, 35)
r3Color = color.new(#4CAF50, 50)
s1Color = color.new(#FF5252, 25)
s2Color = color.new(#FF5252, 35)
s3Color = color.new(#FF5252, 50)

plot(showAllLevels ? pp : na, "PP", ppColor, line.style_solid, 2)
plot(showAllLevels ? r1 : na, "R1", r1Color, line.style_dashed, 1)
plot(showAllLevels ? r2 : na, "R2", r2Color, line.style_dotted, 1)
plot(showAllLevels ? r3 : na, "R3", r3Color, line.style_dotted, 1)
plot(showAllLevels ? s1 : na, "S1", s1Color, line.style_dashed, 1)
plot(showAllLevels ? s2 : na, "S2", s2Color, line.style_dotted, 1)
plot(showAllLevels ? s3 : na, "S3", s3Color, line.style_dotted, 1)

// Visual signals
plotshape(showSignals and buySignal, "Buy Signal", shape.triangleup, location.belowbar, color=#4CAF50, size=size.small, text="BUY", textcolor=color.white)
plotshape(showSignals and sellSignal, "Sell Signal", shape.triangledown, location.abovebar, color=#FF5252, size=size.small, text="SELL", textcolor=color.white)
plotshape(showSignals and buyScalp, "PP Bounce", shape.diamond, location.belowbar, color=color.new(#FF9800, 30), size=size.tiny, text="SCALP")
plotshape(showSignals and sellScalp, "R1 Reject", shape.diamond, location.abovebar, color=color.new(#FF9800, 30), size=size.tiny, text="REJECT")

// Labels
if showAllLevels
    label.new(bar_index, pp, "PP", style=label.style_label_center, color=color.new(#2962FF, 60), textcolor=color.white, size=size.tiny)
    label.new(bar_index, r1, "R1", style=label.style_label_center, color=color.new(#4CAF50, 60), textcolor=color.white, size=size.tiny)
    label.new(bar_index, s1, "S1", style=label.style_label_center, color=color.new(#FF5252, 60), textcolor=color.white, size=size.tiny)

// Alert conditions
alertcondition(buySignal, "Breakout Above R1", "Price broke above R1 resistance - bullish momentum")
alertcondition(sellSignal, "Break Below S1", "Price broke below S1 support - bearish momentum")
alertcondition(bounceAtPP, "Bounce at PP", "Price bounced at the daily pivot point level")
alertcondition(rejectR1, "Rejection at R1", "Price rejected at R1 resistance level")
alertcondition(brokeR1, "R1 Cross Over", "Price crossed above R1 level")
alertcondition(brokeS1, "S1 Cross Under", "Price crossed below S1 level")

Recommended Parameters for Pivot Points

Parameter settings tested across different market conditions and timeframes.

Feature comparison table: Default vs Description
ParameterDefaultDescription
Pivot TypeDailySelects the pivot calculation period. Daily pivots update each session and are the most active for intraday trading. Weekly pivots use the prior week high, low, and close for a broader support map. Monthly pivots work best for swing trades and position sizing on ES futures.
Show All LevelstrueToggles all six pivot levels (PP, R1-R3, S1-S3) on the chart. I disable this on 1m charts to reduce visual clutter and keep only PP, R1, and S1 visible. On 1h and above the full set helps map the full daily range.
High / Low / Close Sourcehigh / low / closePrice sources for the pivot calculation. Standard OHLC data works for most markets. For crypto I sometimes use wick-adjusted sources on very volatile pairs like ETHUSDT where the wick causes extreme pivot levels that never trade.
Show Buy/Sell SignalstrueEnables the shape markers for breakout and bounce signals. Turn this off if you want only the level lines and no plotted signals. I keep it on for 5m ES and use the alerts to catch breakouts when I step away from the screen.

Pivot Points + Pineify Invite-Only: Better Together

Pivot Points alone gives you one signal type. Pineify invite-only indicator combines Pivot Points with RSI divergences, MACD confirmation, and Supertrend filters in one overlay. Fewer charts, clearer signals.

Instead of switching between 7 different signals on separate charts, you get a single multi-confirmation setup.

See the Invite-Only Indicator

FAQ

Pivot Points Signals FAQ

Stop juggling Pivot Points with 4 other charts

Pineify combines Pivot Points, RSI, MACD, and Supertrend into one invite-only indicator. One click setup.

Try Pineify Free