Gráficos em JavaScript
Os Gráficos de negociação JS da StockSharp constituem uma biblioteca de gráficos para navegador, autónoma e sem dependências. É publicada no npm como @stocksharp/chart e fornece o motor de canvas sschart utilizado pelo terminal web da StockSharp. Está disponível uma versão funcional na demonstração online.

Ao contrário dos componentes Windows de StockSharp.Xaml.Charting, esta biblioteca é executada num navegador e desenha diretamente num canvas HTML. O motor é exposto através do objeto global SSChart (de dist/sschart.js) e também pode ser importado como módulos ECMAScript a partir do pacote npm (import { createChart, CandlestickSeries } from '@stocksharp/chart').
Demonstração online
O gráfico abaixo utiliza o motor real em execução nesta página — velas com um histograma de volume e uma média móvel. Arraste para deslocar, utilize a roda do rato para ampliar ou reduzir e prima o botão de expansão (no canto superior direito) para o abrir em ecrã inteiro.
Funcionalidades
- Um conjunto completo de séries de preço: velas, barras OHLC, linha, área, histograma, banda, além dos tipos derivados Heikin-Ashi, Renko e Point & Figure.
- Estudos exatos de order-flow: footprint, perfil de volume e TPO (market profile).
- Carregamento de histórico e atualizações em tempo real com
setDataeupdate. - Marcadores de negócios, linhas de preço, cursor em cruz, zoom, deslocamento e cálculo automático do intervalo.
- Um motor de indicadores com aproximadamente 160 implementações de cálculo.
- Indicadores sobrepostos, painéis de osciladores sincronizados e uma legenda controlada pelo cursor em cruz.
- Temas claro e escuro, menu de contexto, diálogo de indicadores e mudança do tipo de gráfico.
Instalação
Instale o pacote a partir do npm e importe os módulos ES:
npm install @stocksharp/chart
import { createChart, CandlestickSeries } from '@stocksharp/chart';
Ou, sem um bundler, insira o global pré-compilado SSChart com uma tag <script>, conforme mostrado abaixo.
Adicionar um gráfico a uma página
A compilação gera dist/sschart.js, que publica window.SSChart. Os valores de tempo passados à API são marcas de tempo Unix em segundos.
<div id="chart" style="width: 800px; height: 400px"></div>
<script src="dist/sschart.js"></script>
Crie um gráfico, adicione uma série e carregue os dados:
const chart = SSChart.createChart(document.getElementById('chart'), {
timeScale: { timeVisible: true },
crosshair: { mode: SSChart.CrosshairMode.Normal },
});
const candles = chart.addSeries(SSChart.CandlestickSeries, {
upColor: '#26a69a',
downColor: '#ef5350',
borderVisible: false,
});
candles.setData([
{ time: 1704153600, open: 120, high: 122, low: 119, close: 121 },
{ time: 1704240000, open: 121, high: 124, low: 120, close: 123 },
]);
candles.update({
time: 1704326400,
open: 123,
high: 123.5,
low: 122.8,
close: 123.2,
});
chart.timeScale().fitContent();
Uma chamada a update com a marca de tempo atual substitui o último ponto. Uma marca mais recente adiciona um ponto.
Modos de gráfico
Cada tipo de série tem o seu próprio tópico com uma demonstração online e o JavaScript que a configura:
- Candlestick — velas OHLC clássicas.
- Barras OHLC — marcas de abertura/fecho numa barra vertical de intervalo.
- Linha — uma única polilinha através dos fechos.
- Área — uma linha com preenchimento em gradiente.
- Histograma — barras verticais, tipicamente de volume.
- Banda — um canal superior/inferior (envelopes, Bollinger).
- Velas Heikin-Ashi — velas suavizadas que filtram o ruído.
- Renko — tijolos determinados pelo preço, independentes do tempo.
- Ponto e Figura — colunas de X/O do movimento de preço.
- Footprint — volume de bid × ask em cada preço dentro de cada barra.
- Perfil de volume — volume por preço com POC e área de valor.
- TPO (Perfil de mercado) — tempo gasto em cada preço por sessão.
Além dos tipos de série, o gráfico também tem um motor de indicadores com cerca de 160 estudos e preenchimento de histórico a pedido, que carrega barras mais antigas à medida que o utilizador desloca o gráfico.
Para conhecer o editor visual de estratégias apresentado pela mesma plataforma web, consulte Diagrama em JavaScript.
Conjunto completo de módulos do terminal
Os módulos em src/chart ampliam o motor base com funcionalidades do terminal:
IndicatorEngine, renderizadores e definições de indicadores, além do catálogo de cálculos.- Um seletor de tipo de gráfico para velas, barras, linhas, áreas, Heikin-Ashi, Renko e Point & Figure.
- Legenda, painéis secundários sincronizados, menu de contexto e diálogo de seleção de indicadores.
- Recálculo dos indicadores ativos quando os dados em tempo real mudam.
Use src/chart/app.ts como exemplo de integração do conjunto completo.
Compilar a partir do código-fonte
Clone o repositório e use os scripts npm incluídos:
git clone https://github.com/StockSharp/Charts.git
cd Charts
npm install
npm run build
npm test
npm run serve
O servidor de desenvolvimento disponibiliza a demonstração em http://localhost:8791/demo/index.html.