RSI with bands

An RSI in the sub panel with fixed overbought and oversold levels and Bollinger bands drawn on the RSI itself, candles coloured when the RSI is stretched beyond both, and markers when it turns back.

//@xfscript 1
indicator("RSI Bands")

let length: int = input.int(14, "length", "RSI length", 2, 200, 1)
let band_length: int = input.int(20, "bandLength", "Band length", 2, 200, 1)
let band_mult: float = input.float(2, "bandMult", "Band width", 0.5, 4, 0.1)
let upper: float = input.float(70, "upper", "Overbought", 50, 100, 1)
let lower: float = input.float(30, "lower", "Oversold", 0, 50, 1)

let rsi: float = ta.rsi(close, length)
let band_top: float = ta.bb_upper(rsi, band_length, band_mult)
let band_bottom: float = ta.bb_lower(rsi, band_length, band_mult)

plot.panel_range(0, 100)
plot.panel_line(band_top, "#6B7280", 1, "dashed")
plot.panel_line(band_bottom, "#6B7280", 1, "dashed")
plot.panel_line(rsi, "#A78BFA", 2, "solid")
plot.panel_hline(upper, "#EF4444", "dotted", "Overbought")
plot.panel_hline(50, "#4B5563", "dotted", "")
plot.panel_hline(lower, "#22C55E", "dotted", "Oversold")

let stretched_up: bool = rsi > upper && rsi > band_top
let stretched_down: bool = rsi < lower && rsi < band_bottom
plot.candle_color(stretched_up || stretched_down, stretched_up ? "#EF4444" : "#22C55E", 0.8)
plot.marker(ta.crossunder(rsi, upper), high, "#EF4444", "triangle", "above", 9, 3)
plot.marker(ta.crossover(rsi, lower), low, "#22C55E", "triangle", "below", 9, 3)

Všechny vrstvy trhu – od Orderflow po optionflow – v jednom grafu.

Orderflow data institucionální kvality s vestavěným backtestingem a obchodním deníkem. Zapište se na čekací listinu a získejte předběžný přístup.

Získat přístup