Auditoria do sistema

O que ele faz, e com que velocidade.

Tudo nesta página vem no @tradecanvas/chart 1.31.0. Os tempos por quadro foram medidos no Chrome, em um notebook com GPU integrada (Intel UHD); node scripts/bench-render.mjs, no repositório, roda as mesmas cenas na sua máquina.

Em números

tipos de gráfico
18
indicadores integrados
111
ferramentas de desenho
69
idiomas do widget
30
chaves de estilo
101
chaves de recursos do widget
112
dependências de terceiros em runtime
0
testes unitários
3,000+

Tempo por quadro

Tempo para desenhar um quadro enquanto o gráfico desliza. 16,7 ms equivalem a 60 quadros por segundo.

GráficoProporção de pixelsCanvas 2DWebGLCanvas 2D / WebGL
1600×900, 500 candles + 4 indicadores · 2×227,4 ms19,6 ms
1600×900, zoom afastado em 200.000 barras + 4 indicadores · 2×234,5 ms20,2 ms
1600×900, zoom afastado em 1.000.000 de barras + 4 indicadores · 2×234,5 ms16,7 ms
1600×900, heatmap de profundidade, 240 instantâneos × 80 níveis · 2×225,5 ms16,8 ms
Seis gráficos, cada um com 500 candles e 2 indicadores · 2×223,5 ms17,2 ms
2560×1400, 2.000 candles + 4 indicadores · 1×141,6 ms17,7 ms
2560×1400, 2.000 candles + 4 indicadores · 1,5×1,570,8 ms17,6 ms
2560×1400, 2.000 candles + 4 indicadores · 2×2114,5 ms29,1 ms

O Canvas 2D é o padrão. renderer: 'webgl' (ou 'auto') desenha a área do gráfico com WebGL 2 e volta ao Canvas 2D onde falta WebGL 2 ou quando o contexto dele é perdido.

Caminho dos dados

Um tick ao vivo com Bandas de Bollinger, EMA, RSI e MACD em 100.000 barras
~0,001 ms
Os mesmos quatro indicadores recalculados por inteiro em 100.000 barras
~27 ms
Uma linha de 1.000.000 de pontos visíveis, reduzida para um quadro
~2,6 ms
Um redesenho ao passar o mouse (mira, legenda)
~0,2 ms
Uma troca de ativo ou de tempo gráfico só mostra o véu de carregamento depois de
200 ms

Tamanho do download

Minificado e com gzip, com tudo o que ele importa.

Chart, a API headless
176 KB
ChartWidget, a interface completa
315 KB
O renderizador WebGL, carregado no primeiro uso
18 KB

Como é verificado

  • Mais de 3.000 testes unitários nos sete pacotes rodam no CI a cada pull request.
  • O renderizador WebGL desenha os candles nos mesmos pixels do dispositivo que o Canvas 2D; linhas e preenchimentos diferem só em alguns pixels de borda suavizados.
  • O renderizador WebGL foi verificado no Chromium, no Firefox e no WebKit. Sem WebGL 2, ou quando o contexto dele é perdido, o gráfico segue com Canvas 2D.
  • Os exemplos de código da documentação e da skill para agentes passam por checagem de tipos contra a API real.
  • Os gráficos podem ser lidos por leitores de tela e usados pelo teclado; o widget fica da direita para a esquerda em árabe, hebraico e persa.

Recursos

Filtre por área ou busque por nome ou API.

80 de 80
RecursoÁreaDetalhes e API
Candles, barras OHLC, linha, área, linha de base, Heikin-Ashi, candles vazadosTipos de gráficocandlestick, bar, line, area, baseline, heikinAshi, hollowCandle
Renko, line break, Kagi, ponto e figura, barras de rangeTipos de gráficoTamanho da caixa ou ATR, linhas para o rompimento, reversão em porcentagem ou em preço, range por barra
Candles de volume, Equivolume, área HLC, linha em degraus, linha com marcadores, máxima-mínimaTipos de gráfico18 tipos de gráfico no total
A série principal ocultaTipos de gráficoSó ficam os indicadores e os desenhos
Gráficos para dashboardsTipos de gráficoBarras (agrupadas, empilhadas, horizontais), rosca e pizza, dispersão e bolhas, histogramas, calendários, matrizes de correlação, mapas por setor, curvas anti-horárias, sparklines, medidores, mapas de calor e treemaps, cascatas, profundidade, curvas de patrimônio
Canvas 2D ou WebGL 2Renderizaçãorenderer: 'canvas' | 'webgl' | 'auto', setRenderer, o evento rendererChange
Um traço por coluna de pixels com zoom afastadoRenderizaçãoLinhas, bandas e histogramas de indicadores abaixo de um pixel por barra
Um milhão de barras deslizando com suavidadeRenderizaçãoCom quatro indicadores, em proporção de pixels 2
Heatmap de profundidade, perfil de volume e perfil de mercado na GPURenderizaçãopushDepthSnapshot(book, time)
Vários gráficos WebGL em uma páginaRenderizaçãoAté 8 (setMaxWebGLCharts); os demais desenham com Canvas 2D; voltam ao WebGL quando o contexto retorna
Nítido em qualquer escala de telaRenderizaçãoCandles, volume e desenhos em pixels do dispositivo a 100%, 125% e 200%
Sem dependências de terceiros em runtimeRenderizaçãoNada mais para instalar ou auditar
134 indicadores integradosIndicadoresPivot points de seis tipos, MA Cross, correlação com outro ativo
Fonte de preçoIndicadoresopen, high, low, hl2, hlc3, ohlc4, hlcc4
Um indicador sobre outro indicadorIndicadoresComo uma média móvel do RSI, atualizada a cada tick
Vários indicadores em um painel, movidos entre painéisIndicadoresmoveIndicatorToPane
O mesmo indicador várias vezesIndicadoresEMA 20 e EMA 50 lado a lado
Níveis e limiaresIndicadoresRSI 30/70, CCI ±100, salvos com o layout
Último valor no eixoIndicadoresNo eixo de preço e no eixo de cada painel, na cor da linha
Painéis recolhidos, maximizados e reordenadosIndicadoresSalvos com o layout
Modelos de indicadoresIndicadoresParâmetros, estilo, níveis e painel, salvos e aplicados juntos
Estilo e visibilidade de cada linhaIndicadoresUma linha oculta não estica a escala; setIndicatorDefaults
Delta de volume e CVDIndicadoresEstimados a partir das barras
Exportação dos valores dos indicadoresIndicadoresCSV ou JSON, uma coluna por linha
Atualizações incrementais com ticks ao vivoIndicadoresupdate() recalcula só a barra em formação
69 ferramentas de desenhoFerramentas de desenhoLinhas, canais, Fibonacci, Gann, pitchforks, ondas de Elliott, padrões, ciclos, projeções
Configurações próprias de cada ferramentaFerramentas de desenhoEstilo, propriedades e coordenadas na grade de preços do mercado
Posições compradas e vendidasFerramentas de desenhoRisco:retorno, quantidade a partir do risco em porcentagem ou em dinheiro
Alertas em um desenhoFerramentas de desenhoQuando o preço cruza uma linha de tendência ou um canal como foi desenhado, inclusive em escala logarítmica
Ordem, grupos e modelosFerramentas de desenhoTrazer para frente, enviar para trás, agrupar, travar, ocultar
Notas, balões, setas, bandeiras, pincel, caminho, curvaFerramentas de desenhoDesenho à mão livre e de vários pontos
VWAP ancorado e perfil de volume de intervalo fixoFerramentas de desenhoLeem as barras do gráfico
Borracha, zoom por área, ímã forte, atalhos de tecladoFerramentas de desenhoAlt+T, Alt+H, Alt+J, Alt+V, Alt+C, Alt+F
Ir para uma data; períodos de 1D a TudoEscalas e tempoSem limite para afastar o zoom
Fusos horários IANA com horário de verãoEscalas e tempoOu o fuso da própria bolsa
Qualquer tempo gráfico, e barras de tickEscalas e tempo7m, 90m, 2d montados a partir do que o feed fornece; 100T a partir dos negócios dele
Escalas à esquerda e à direita; logarítmica, invertida e percentual por painelEscalas e tempoA escala da esquerda para uma sobreposição ou uma cópia da escala de preço
Comparar ativos, spread e razãoEscalas e tempoNa própria escala ou painel, alinhados pelo tempo
Horário estendidoEscalas e tempoA partir dos horários de pregão do ativo
Formatos de preço e de horaEscalas e tempopriceFormat como função ou frações como 1/32; timeFormatter
A escala nas casas decimais e no passo de preço do ativoEscalas e tempopricePrecision, minTick: uma ação que se move de 10 em 10 nunca mostra 21.705
Linhas de máxima e mínima, bid e askEscalas e tempoBid e ask a partir dos ticks do feed
Marcas de eventos no gráficoEscalas e temposignalMarkerHover, signalMarkerClick
Feeds prontos e os seusDados e tempo realBinance, Bybit, Coinbase, Kraken, mock; WebSocketAdapter, PollingAdapter
Histórico mais antigo carregado ao rolar para a esquerdaDados e tempo realfetchHistoryBefore
Busca de ativos com detalhesDados e tempo realsearchSymbols, resolveSymbol: casas decimais, passo de preço, pregões, fuso horário
Detalhes do ativo descobertos após a conexãoDados e tempo realO evento symbolInfo do adaptador
Book de ofertas em escadaDados e tempo realVolume de compra e de venda por preço; clique para operar
Cotações ao vivo para listas de observaçãoDados e tempo realsubscribeQuotes, setQuotes, getQuote
Notícias e status do mercadoDados e tempo realfetchNews; uma contagem regressiva até a abertura ou o fechamento
Regras da bolsaDados e tempo realsetMarket: variação mínima por faixa de preço, teto e piso diários, lotes, sessões; HOSE, HNX, UPCoM e futuros do VN30
Ordens e posições no gráficoTradingArraste para modificar; cancele, feche e inverta pela linha
Marcas de execuçãoTradingMotivo e lucro ou prejuízo em executionFill
BoletaTradingQuantidade, tipo, stop-loss e take-profit, validade, verificados enquanto você digita; a variação mínima, o teto, o piso e os lotes da bolsa
Painel da contaTradingPosições com lucro e prejuízo ao vivo, ordens em aberto, execuções
Sinais e zonas de tradeTradingChaves de estilo markers.*, tradeZones.*
Backtesting e métricas de riscoTrading@tradecanvas/analytics: comissão, slippage, Sharpe, Sortino, Calmar, drawdown
Alertas além de um nível de preçoAlertas e replayLinha cruzando linha, um movimento de N% em N barras, no fechamento da barra, com expiração
Replay de barras em passos menoresAlertas e replayUm tempo gráfico maior reproduzido a partir de barras menores
Paper trading no replayAlertas e replayOrdens executadas aos preços do replay
Replay em uma grade de gráficosAlertas e replayTodos em sincronia
Replay para aplicaçõesAlertas e replaystartTime, hideHistory, duration, marcas reveladas conforme avança, replayComplete
Uma grade de widgets sincronizadosÁrea de trabalhoAté 6, compartilhando ativo, tempo gráfico, mira, tempo e desenhos
Layouts com nome no seu próprio armazenamentoÁrea de trabalhoSalvar, abrir, renomear, salvamento automático; LayoutStorage para um servidor
Desfazer e refazer para tudoÁrea de trabalhoDesenhos, indicadores, configurações e tipo de gráfico; recordUndo
Menus de contexto por áreaÁrea de trabalhoDesenhos, área do gráfico, painéis, eixo de preço, eixo de tempo
Listas de observaçãoÁrea de trabalhoVárias listas, reordenadas arrastando
Eventos para a aplicaçãoÁrea de trabalhosymbolChange, timeframeChange, ordersChange, executionFill, styleChange e mais
Três aparências para o widgetPersonalizaçãoStudio, Terminal, Capsule; ui e setUI; variáveis CSS --tcw-*
A aparência do gráfico por chavePersonalizaçãoapplyOverrides sobre 101 chaves tipadas, numa camada da aplicação e numa do usuário
Configurações que alcançam cada chavePersonalizaçãoUma aba de estilo para o tipo de gráfico em exibição, uma aba de trading
112 chaves de recursosPersonalizaçãofeatures, setFeatures, isFeatureOn; alteráveis em execução
Suas próprias peças no widgetPersonalizaçãoBotões e menus suspensos na barra de ferramentas, botões na barra lateral, itens de status, slots, itens de menu
Seus próprios atalhosPersonalizaçãoaddHotkey de acordo com o layout do teclado
O widget em 30 idiomasIdiomas e acessibilidadeÁrabe, hebraico e persa da direita para a esquerda
Leitores de tela e tecladoIdiomas e acessibilidadeUm resumo do gráfico, barras lidas uma a uma, diálogos pelo teclado
Documentação em seis idiomas, este site em quatorzeIdiomas e acessibilidadeEnglish, Tiếng Việt, 简体中文, 日本語, 한국어, Español
Componentes para React, Vue e SvelteDesenvolvedoresProps reativas: overrides, indicators, features
PluginsDesenvolvedoresIndicadores, ferramentas de desenho, tipos de gráfico e sobreposições; overlayScale e getPriceStep para desenhar na grade de preços
Documentação para agentes de códigoDesenvolvedoresllms.txt, llms-full.txt e uma skill para agentes

Limites conhecidos

  • O Canvas 2D continua como renderizador padrão até o WebGL ser testado em mais dispositivos; a taxa de quadros do WebGL no Safari e em telas 5K ainda não foi medida.
  • Com proporção de pixels 2 em um gráfico de 2560×1400, só a composição do navegador leva cerca de 23 ms em GPU integrada, então ali os quadros WebGL ficam em média em 29 ms.
  • Tempos gráficos de tick são montados com os negócios recentes que o feed retorna; não é possível carregar histórico de ticks mais antigo.
  • Delta de volume e CVD são estimados a partir das barras, não do lado de cada negócio.
  • No máximo 8 gráficos por página desenham com WebGL ao mesmo tempo; os outros desenham com Canvas 2D.