Open source · MIT · free for any market

Built for trading screens and price boards.

Charts, order entry, order flow and a realtime price board, for any exchange. One API family, every framework, no third-party runtime dependencies.

import { Chart } from '@tradecanvas/chart'

const chart = new Chart(el, { theme: 'dark' })
chart.setData(bars)
chart.addIndicator('ema', { period: 21 })
live · simulated market
Starting the market…
Orders, positions, stop-loss and take-profit on the chartChartWidget →
@tradecanvas/chart

Chart

18 chart types on Canvas 2D or WebGL, 134 indicators, 64 candlestick patterns, 69 drawing tools.

@tradecanvas/chart/widget

Trading widget

A complete screen: menus, watchlists, order ticket, positions and alerts, in 30 languages.

bo-grid

Price board

A realtime board for any exchange: 1,000 symbols at 30,000 ticks a second, flashing cells, grouping, pivot, Excel export.

@tradecanvas/chart

Order flow

Order-book depth, a liquidity heatmap on the GPU, a click-to-trade ladder and volume profile.

One focus: the screens people trade from. Charts, order entry, price boards and order flow, done properly.

Fast where trading gets heavy.

A million bars, a thousand symbols, ticks that never stop. Measured on a laptop with integrated graphics; run the same scenes on yours.

1,000,000
bars in one chart, panned at 60 fps with WebGL, four indicators on
~0.001 ms
to fold a live tick into four indicators on 100,000 bars
1,000
symbols on one price board, every changed cell flashing
176 KB
the headless chart, gzipped, with no dependencies
WebGL where it countsFrame time while panning, Canvas 2D against WebGL 2. Shorter is faster; 16.7 ms is 60 frames a second.
1600×900, zoomed out on 1,000,000 bars + 4 indicators · 2×
2560×1400, 2,000 candles + 4 indicators · 2×

Building a trading screen with TradeCanvas?

We'd like to hear about it.

Get in touch