- Bottom panel: dual bid/ask bars per cluster (red=sell, blue=buy) with white volume label inside and delta block below
- Price axis: labels every 10 rows (~7.5pts) instead of every row — cleaner, closer to original
- Price axis: bid/ask spread boxes with arrow indicator (shows on live market open)
- Price axis zoom: inverted so drag-up = zoom in, matching original behavior
- Current price line rendered last (always on top of all bars)
- Bar colors: corrected — ask (buy) = blue, bid (sell) = pink
- Backend: close_time field added to cluster JSON; bar_volume M1 annotation (triggers after replay)
- Backend: last_bid/ask tracked and injected into active cluster WS message
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Footprint bars bid/ask por nível com cor dominante
- Painel inferior duplo: volume (barras) + delta (blocos azul/laranja)
- Linha de preço atual ciano dashed com tag no eixo
- Timestamp por cluster no eixo X
- Drag no eixo de tempo para zoom horizontal
- Drag no eixo de preço para ajustar step multiplier
- Coleta de volume via price-step method para delta correto
- Guard is_live para evitar flood de WebSocket no replay histórico
- total_ticks adicionado ao aggregator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>