Pivot Points Explained
Pivot Points are horizontal levels calculated from the prior period's high, low, and close — used to project likely support and resistance for the current session. The central pivot (PP) is the average of the three inputs; R1/R2/R3 and S1/S2/S3 are symmetric projections above and below. Originally used by floor traders; still watched by algos and institutional desks today.
The classic formula
Using yesterday's H, L, C:
PP = (High + Low + Close) / 3
R1 = 2 × PP − Low
S1 = 2 × PP − High
R2 = PP + (High − Low)
S2 = PP − (High − Low)
R3 = High + 2 × (PP − Low)
S3 = Low − 2 × (High − PP)
Seven levels total: PP, R1/R2/R3, S1/S2/S3. Plotted as horizontal lines on the current day's chart.
Variants
Classic (Floor Trader) pivots — formula above. Original and still most common.
Camarilla pivots. Computes levels using a different formula (multiples of 1.1, 1.2, etc.) that produces tighter levels closer to the prior close. Better for intraday mean-reversion.
Fibonacci pivots. Uses Fibonacci ratios (38.2%, 61.8%, 100%) to space the levels. Combines pivots with Fibonacci retracement logic.
Woodie's pivots. Weights the prior close more heavily: PP = (H + L + 2×C) / 4. Meant to capture the most recent price info.
DeMark pivots. Non-symmetric formula based on the relationship between open and close. Different behavior in up vs. down days.
For most retail traders, classic and Camarilla cover 95% of the use cases. Stick with one.
How to trade pivots
Pivot as bias. If today's price is above PP, the session bias is bullish. Below PP, bearish. Simple but useful first-read.
R/S levels as reaction zones. Price tagging R1 or S1 often stalls or reverses. Tagging R2/S2 is less common; R3/S3 signals an exceptional move.
Bounce entries. In range sessions, fade R1 back to PP; fade S1 back to PP. Tight stops, modest targets.
Breakout entries. In trending sessions, buy breaks above R1 targeting R2; sell breaks below S1 targeting S2. Skip if price is already near PP at breakout time.
Why pivots still work
Self-fulfilling. A lot of algos are programmed to react at pivot levels. Even if the math is arbitrary, the behavior around the levels isn't.
Floor trader legacy. Pit traders used pivots because they were easy to compute on paper during the session. That legacy persists in today's algos even though computation is trivial.
Consistency. Unlike drawn support/resistance (subjective), pivots are mechanically computed — everyone looks at the same levels.
Pivot Points in Pine Script (v6)
//@version=6
indicator("Daily Pivot Points", overlay=true)
// Pull prior day's HLC
prevHigh = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
prevLow = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
prevClose = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
pp = (prevHigh + prevLow + prevClose) / 3
r1 = 2 * pp - prevLow
s1 = 2 * pp - prevHigh
r2 = pp + (prevHigh - prevLow)
s2 = pp - (prevHigh - prevLow)
r3 = prevHigh + 2 * (pp - prevLow)
s3 = prevLow - 2 * (prevHigh - pp)
plot(pp, color=color.orange, linewidth=2, title="PP")
plot(r1, color=color.new(color.red, 0), title="R1")
plot(r2, color=color.new(color.red, 30), title="R2")
plot(r3, color=color.new(color.red, 50), title="R3")
plot(s1, color=color.new(color.green, 0), title="S1")
plot(s2, color=color.new(color.green, 30), title="S2")
plot(s3, color=color.new(color.green, 50), title="S3")
if ta.crossover(close, r1)
alert("Price broke above R1 pivot on " + syminfo.ticker, alert.freq_once_per_bar_close)
if ta.crossunder(close, s1)
alert("Price broke below S1 pivot on " + syminfo.ticker, alert.freq_once_per_bar_close)
For weekly pivots, change "D" to "W" and adjust the indexing.
Common mistakes
- Treating pivots as exact levels. Use them as zones ±2-3 ticks. Exact-price thinking leads to wick-induced whipsaws.
- Using yesterday's RTH-only vs. full-session data. Be consistent. Mixing RTH and overnight data across sessions produces inconsistent pivots.
- Combining too many pivot variants. Classic, Camarilla, and Fibonacci all produce different levels. Running them all at once = too many lines, no edge.
Frequently Asked Questions
What's the best pivot point formula?
Classic (Floor Trader) pivots are the most widely watched and therefore most self-fulfilling. Camarilla is better for intraday mean-reversion because levels cluster closer to the prior close. Pick one and commit — mixing variants creates chart clutter without edge.
Do pivot points work on futures?
Yes — they're particularly effective on ES, NQ, and CL because those markets have heavy algo participation that reacts to pivot levels. Daily pivots from the prior RTH session are the most common setup.
Daily vs weekly pivots — which should I use?
Daily pivots for day trading. Weekly pivots for swing trading or position trading. Some traders plot both on intraday charts so they can see when weekly levels reinforce daily levels — that confluence produces stronger reactions.