Custom big trade rule
A big trade rule of your own: mark every bar carrying a print above your size, draw the bubble at the price it printed, scale the bubble with the size, and count the big prints in the panel.
//@xfscript 1
indicator("Custom Big Trades")
let min_size: float = input.float(75, "minSize", "Big trade size", 1, 100000, 1)
let top_size: float = input.float(400, "topSize", "Size for the largest bubble", 2, 100000, 1)
let min_radius: float = input.float(5, "minRadius", "Smallest bubble", 1, 20, 1)
let max_radius: float = input.float(18, "maxRadius", "Largest bubble", 1, 20, 1)
let buy_color: color = input.color("#22C55E", "buyColor", "Bought")
let sell_color: color = input.color("#EF4444", "sellColor", "Sold")
let label_size: float = input.float(9, "labelSize", "Label size", 6, 24, 1)
let prints: bool = tape.prints_available()
let biggest: float = nz(tape.largest_size(), 0)
let at_price: float = nz(tape.largest_price(), close)
let big_side: side = tape.largest_side()
let qualifies: bool = prints && biggest >= min_size
let radius: float = math.scale(biggest, min_size, top_size, min_radius, max_radius)
let bought: bool = qualifies && big_side == "BUY"
let sold: bool = qualifies && big_side == "SELL"
plot.dot(bought, at_price, buy_color, radius)
plot.dot(sold, at_price, sell_color, radius)
plot.text(qualifies, at_price, format.compact(biggest), "#E5E7EB", "above", label_size, 10, 60)
let cluster: float = tape.count_above(min_size)
plot.histogram(nz(cluster, 0), buy_color, sell_color)
plot.label(str.concat("BIG PRINTS ", format.compact(cluster)), "#E5E7EB")