- Platform
-
- TradingView
Here is the Central Pivot Range fix requested by a Discord member. We made it multi time frame.
It is TradingView only right now. ToS version can be made easily.
Code:
// Get support at: https://b4signals.com
// Join us at: https://discord.gg/kD3pKE2CQd
//@version=5
indicator(title="CPR Multi Time Frame", shorttitle="MTF-CPR", overlay=true, format=format.price, precision=2)
mtf = input.timeframe('D', 'Time Frame')
h = request.security(syminfo.tickerid, mtf, high[1], lookahead=barmerge.lookahead_on)
l = request.security(syminfo.tickerid, mtf, low[1], lookahead=barmerge.lookahead_on)
c = request.security(syminfo.tickerid, mtf, close[1], lookahead=barmerge.lookahead_on)
tfInMinutes(simple string tf = "") =>
float chartTf =
timeframe.multiplier * (
timeframe.isseconds ? 1. / 60 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
float result = tf == "" ? chartTf : request.security(syminfo.tickerid, tf, chartTf)
notHigherTimeframe = tfInMinutes() <= tfInMinutes(mtf)
calculatePivot() =>
(h + l + c) / 3
calculateBC() =>
(h + l) / 2
calculateTC() =>
(calculatePivot() - calculateBC()) + calculatePivot()
truncate(number, decimals) =>
factor = math.pow(10, decimals)
int(number * factor) / factor
pivot = calculatePivot()
tc = calculateTC()
bc = calculateBC()
if tc < bc
t = tc
tc := bc
bc := t
r1Level = truncate((2 * pivot) - l, 2)
r2Level = truncate(pivot + (h - l), 2)
r3Level = truncate(h + 2 * (pivot - l), 2)
r4Level = truncate(h + 3 * (pivot - l), 2)
r5Level = truncate(h + 4 * (pivot - l), 2)
s1Level = truncate((2 * pivot) - h, 2)
s2Level = truncate(pivot - (h - l), 2)
s3Level = truncate(l - 2 * (h - pivot), 2)
s4Level = truncate(l - 3 * (h - pivot), 2)
s5Level = truncate(l - 4 * (h - pivot), 2)
plot(series=notHigherTimeframe ? truncate(pivot, 2) : na, title="P", color = pivot[1] != pivot and notHigherTimeframe ? na : color.fuchsia, style = plot.style_linebr, linewidth=1)
plot(series=notHigherTimeframe ? truncate(tc, 2) : na, title="TC", color = pivot[1] != pivot and notHigherTimeframe ? na: color.blue, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? truncate(bc, 2) : na, title="BC", color = pivot[1] != pivot and notHigherTimeframe ? na: color.yellow, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? r1Level : na, title="R1", color = pivot[1] != pivot and notHigherTimeframe ? na: #32cd32, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? s1Level : na, title="S1", color = pivot[1] != pivot and notHigherTimeframe ? na: #ff3030, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? r2Level : na, title="R2", color = pivot[1] != pivot and notHigherTimeframe ? na: #32cd32, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? s2Level : na, title="S2", color = pivot[1] != pivot and notHigherTimeframe ? na: #ff3030, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? r3Level : na, title="R3", color = pivot[1] != pivot and notHigherTimeframe ? na: #32cd32, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? s3Level : na, title="S3", color = pivot[1] != pivot and notHigherTimeframe ? na: #ff3030, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? r4Level : na, title="R4", color = pivot[1] != pivot and notHigherTimeframe ? na: #32cd32, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? r5Level : na, title="R5", color = pivot[1] != pivot and notHigherTimeframe ? na: #32cd32, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? s4Level : na, title="S4", color = pivot[1] != pivot and notHigherTimeframe ? na: #ff3030, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? s5Level : na, title="S5", color = pivot[1] != pivot and notHigherTimeframe ? na: #ff3030, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? h : na, title="PDH", color = pivot[1] != pivot and notHigherTimeframe ? na : color.white, style = plot.style_line, linewidth=1)
plot(series=notHigherTimeframe ? l : na, title="PDL", color = pivot[1] != pivot and notHigherTimeframe ? na : color.white , style = plot.style_line, linewidth=1)
It is TradingView only right now. ToS version can be made easily.