◆ New — Strategy Validator, Code Fixer & Prop Compliance Checker are live. Try one free →
Home / Indicators / Camarilla Pivots
Trend indicator

Camarilla Pivots

Intraday reference levels spaced from the previous close by fixed fractions of yesterday's range.

Illustrative diagram — not live market data.

What it is

Camarilla pivots are a set of intraday support and resistance levels computed from the previous session's high, low, and close. Unlike standard floor pivots, which build everything around the averaged pivot point (H + L + C) / 3, Camarilla levels are centered on the previous close and spaced by fixed fractions of the previous day's range using the coefficients 1.1/12, 1.1/6, 1.1/4, and 1.1/2. The method is usually attributed to a bond trader named Nick Scott in 1989, but that origin story is unverifiable marketing — no primary source exists, and the 1.1 coefficient has no published derivation. What is verifiable is the arithmetic: the levels are fixed, deterministic, and computable before the session opens, which is why they remain popular as pre-planned reference prices. They describe yesterday's range projected onto today's chart; they carry no information about whether price will actually respect them, and any apparent respect may be coincidence or self-fulfilling attention. This is educational content only, not financial advice, and trading involves risk of loss.

How it works

Take the previous completed session's high H, low L, and close C, and compute the range R = H − L. The four resistance levels step away from the close as R1 = C + R × 1.1/12, R2 = C + R × 1.1/6, R3 = C + R × 1.1/4, and R4 = C + R × 1.1/2, with supports S1–S4 mirrored below the close using the same coefficients. The spacing has a simple internal structure: R1, R2, and R3 sit at one, two, and three multiples of R × 1.1/12 from the close, while R4 jumps to six multiples — double the R3 distance — which is why R3/S3 and R4/S4 are conventionally treated as the 'reversal' and 'breakout' pairs. The 1.1 factor itself is a convention inherited from the original promotional material, not a derived constant. The main implementation trap is data access: on an intraday chart, requesting daily H/L/C naively with lookahead enabled reads today's still-forming daily bar and repaints. The correct non-repainting pattern requests the daily series offset by one bar with lookahead off, so the levels are built only from the last completed session. Standard floor pivots differ structurally: they derive R1 and S1 from the averaged pivot P = (H + L + C) / 3, while Camarilla hangs every level off the previous close alone.

How traders read it

Common settings

The previous daily session on an intraday chart is the standard configuration; some traders anchor to weekly or monthly bars for higher-timeframe ladders. The 1.1 coefficient with divisors 12, 6, 4, and 2 is the common convention, but platforms occasionally differ in how they derive R4/S4 or add R5/S5 extensions, so check the exact formula your platform uses. The session definition matters too: exchange time versus UTC changes which bars count as 'yesterday' and therefore shifts every level.

Strengths

Pitfalls to watch

Pine v6 example

//@version=6
indicator("Camarilla Pivots Example", overlay = true)

tf = input.timeframe("D", "Pivot Timeframe")

[pH, pL, pC] = request.security(syminfo.tickerid, tf, [high[1], low[1], close[1]], lookahead = barmerge.lookahead_off)

r = pH - pL
r4 = pC + r * 1.1 / 2
r3 = pC + r * 1.1 / 4
r2 = pC + r * 1.1 / 6
r1 = pC + r * 1.1 / 12
s1 = pC - r * 1.1 / 12
s2 = pC - r * 1.1 / 6
s3 = pC - r * 1.1 / 4
s4 = pC - r * 1.1 / 2

plot(r4, "R4", color = color.red, style = plot.style_linebr)
plot(r3, "R3", color = color.orange, style = plot.style_linebr)
plot(r2, "R2", color = color.new(color.orange, 50), style = plot.style_linebr)
plot(r1, "R1", color = color.new(color.orange, 70), style = plot.style_linebr)
plot(s1, "S1", color = color.new(color.teal, 70), style = plot.style_linebr)
plot(s2, "S2", color = color.new(color.teal, 50), style = plot.style_linebr)
plot(s3, "S3", color = color.teal, style = plot.style_linebr)
plot(s4, "S4", color = color.green, style = plot.style_linebr)

Pro tip: Verify two things before relying on any Camarilla script: that it requests the previous session's data with the offset-plus-lookahead-off pattern (so the levels never peek at the forming daily bar), and that its session definition matches your instrument's actual trading day. If you want to know whether the levels add anything, log how price behaves at them versus at arbitrary levels the same distance from the close — the comparison is sobering more often than not. Educational information only, not financial advice; trading involves risk of loss.

Built an indicator from this? Run it through the Validator to catch look-ahead bias and repainting, or convert a strategy to Pine Script.

Educational only — not financial advice, not a recommendation to trade. No indicator is predictive; trading involves substantial risk of loss.

Catch the bug that compiles.Run auditGet Pro