Porta fiel do YuClusters em MQL5 puro via CCanvas, sem dependências externas.
Funcionalidades:
- Clusters bid/ask por nível com POC, modo delta, painel inferior
- Ferramentas de desenho: Zona e Volume Profile de região (right-drag)
- Painéis de configuração via right-click com color picker inline (160 cores)
- Zoom vertical/horizontal, pan, eixo de preço customizado
- Menu de configurações (formação + cores) com gear button
- Adiciona backendDirty separado de configDirty
- stepMultiplier e viewMode só setam configDirty (frontend-only, sem replay)
- closeMode, deltaMax, volumeMax, timeSeconds, rangePoints setam backendDirty também
- Aplicar chama applyConfig apenas se backendDirty=true, evitando reload desnecessário
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove PRICE STEP e VIEW MODE do System Overview
- Remove seção inteira Cluster Formation do sidebar
- Painel da engrenagem agora tem todos os modos: delta, volume, tempo, range
- Todos os campos de threshold são inputs editáveis com botões −/+
- Sidebar fica apenas com estatísticas e status
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Toolbar flutuante no canto superior esquerdo do canvas
- Ícone de mira: centraliza o gráfico no preço atual (reset scroll Y)
- Ícone de engrenagem: abre painel de configurações flutuante sobre o gráfico
- Painel de config: modo de exibição, passo do preço, modo de fechamento, delta máx
- Passo do preço e delta máx agora têm input de texto digitável + botões −/+
- zoomH/zoomV separados: centerTrigger prop para alinhar do App.jsx
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- zoomH controla largura das colunas (colWidth, colGap)
- zoomV controla altura das linhas (rowHeight) independentemente
- Arrastar eixo de preço (direita) → ajusta zoomV, não mais o stepMultiplier
- Arrastar painel inferior → ajusta zoomH
- Ctrl+scroll e botões +/- → zoomH com escala multiplicativa
- Mínimos: zoomH=0.05, zoomV=0.1 — permite redução bem maior
- Sensibilidade multiplicativa em todos os controles de zoom
- Corrige dependências do useEffect (zoomH, zoomV, bid, ask, etc.)
- Reset View reseta ambos os zooms
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Combina on_history_ready_callback (replay reset) com on_big_trade_callback (Thiago)
- DOM subscription + visualização no canvas
- VWAP e delta profile no volume profile
- Big trades com alerta visual no canvas
- Endpoints /trade/buy, /trade/sell para execução via MQL5
- Historical Browser: date picker no header, /history/load e /history/live
- Trading panel no sidebar com botões BUY/SELL
- config/settings.py: mantém USTEC como padrão, adiciona BIG_TRADE_THRESHOLD
- Todos os fixes de ontem preservados: broadcast live, history_ready, replay reset
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove guard closed_json que bloqueava updates do cluster ativo.
Frontend recebe estado a cada tick sem precisar de F5.
Heartbeat ping a cada 20s para manter conexao WS viva.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Frontend recalculava imbalance independente do backend.
Desativado ate implementacao correta ser encontrada.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Tick split via while-loop no process_tick: clusters fecham em +-800 delta sem overshoot
- Session start detection: busca maior gap em 3000 bars M1 para detectar abertura de sessao
- Imbalance dots: codigo presente mas desativado (6 abordagens testadas, todas geraram dots em todos os levels com dados CFD polling)
- ask_events/bid_events tracking por level (para futura implementacao de imbalance)
- Bottom panel redesign: volume bars + delta blocks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>