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 Type | Indicator Condition | Market Meaning | Reliability |
|---|---|---|---|
| Price Bounce at Pivot (PP) | Price touches the daily Pivot (PP) level from above and forms a bullish reversal candlestick pattern | PP 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 Volume | Price closes above R1 resistance on above-average volume with the next bar opening above R1 | Bulls 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 Momentum | Price breaks below S1 support with a bearish candle closing below and momentum continuing lower | Sellers 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 Reversal | Price approaches R1 or R2 with a long upper wick and closes near the session open on the hourly chart | Resistance 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 Ride | Price opens near PP and trends steadily toward R1 without pulling back more than 2 ticks on a 5m chart | Intraday 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 Reversion | Price reaches S2 with RSI below 25 on a 15m chart and shows a bullish engulfing candle | The 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 Break | Price breaks below the weekly pivot low on a daily close with increased volume and no lower wick | The 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.
//@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.
| Parameter | Default | Description |
|---|---|---|
| Pivot Type | Daily | Selects 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 Levels | true | Toggles 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 Source | high / low / close | Price 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 Signals | true | Enables 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 IndicatorRelated Resources
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