Market readout table

A table in a chart corner with the newest bar's delta, delta percent, RSI, ATR and range, each value cell shaded from red to green by what it says.

//@xfscript 1
indicator("Market Readout")

let corner_pick: int = input.int(0, "corner", "Corner, 0 to 3 clockwise from top right", 0, 3, 1)
let corner: string = corner_pick == 0 ? "top_right" : corner_pick == 1 ? "bottom_right" : corner_pick == 2 ? "bottom_left" : "top_left"
let quiet: color = "#00000000"
let head_bg: color = "#1F2937E6"
let label_color: color = "#9CA3AF"
let value_color: color = "#F9FAFB"

let rsi: float = ta.rsi(close, 14)
let atr: float = ta.atr(14)
let delta_percent: float = tape.delta() / tape.volume() * 100
let tick: float = nz(chart.tick_size(), 0.25)
let range_ticks: float = (high - low) / tick

fn shade(value: float, low_end: float, high_end: float) -> color {
  return is_nan(value) ? "#00000000" : color.from_gradient(value, low_end, high_end, "#EF444466", "#22C55E66")
}

fn shown(value: float, decimals: int) -> string {
  return is_nan(value) ? "n/a" : str.tostring(value, decimals)
}

plot.table(0, 0, "Readout", value_color, head_bg, corner)
plot.table(0, 1, str.concat(format.compact(bar_count), " bars"), label_color, head_bg, corner)
plot.table(1, 0, "Delta", label_color, quiet, corner)
plot.table(1, 1, format.compact(tape.delta()), value_color, shade(delta_percent, -40, 40), corner)
plot.table(2, 0, "Delta %", label_color, quiet, corner)
plot.table(2, 1, shown(delta_percent, 1), value_color, shade(delta_percent, -40, 40), corner)
plot.table(3, 0, "RSI 14", label_color, quiet, corner)
plot.table(3, 1, shown(rsi, 1), value_color, shade(rsi, 30, 70), corner)
plot.table(4, 0, "ATR 14", label_color, quiet, corner)
plot.table(4, 1, shown(atr, 2), value_color, quiet, corner)
plot.table(5, 0, "Range ticks", label_color, quiet, corner)
plot.table(5, 1, shown(range_ticks, 0), value_color, shade(range_ticks / nz(atr / tick, 1), 0.5, 1.5), corner)

Every layer of the market, Orderflow to optionflow, on one chart.

Institutional grade Orderflow data with backtesting and journaling built in. Join the waitlist for early access.

Get Access