JavaScript-графики
Торговые JavaScript-графики StockSharp — это самостоятельная браузерная библиотека графиков без внешних зависимостей. Она опубликована в npm как @stocksharp/chart и поставляет canvas-движок sschart, используемый в веб-терминале StockSharp. Рабочую версию можно посмотреть в онлайн-демо.

В отличие от Windows-компонентов из StockSharp.Xaml.Charting, эта библиотека работает в браузере и рисует непосредственно на HTML-элементе canvas. Движок доступен через глобальный объект SSChart (из dist/sschart.js), а также может быть импортирован как ECMAScript-модули из npm-пакета (import { createChart, CandlestickSeries } from '@stocksharp/chart').
Онлайн-демо
График ниже — это реальный движок, работающий прямо на этой странице: свечи с гистограммой объёма и скользящей средней. Тяните мышью для прокрутки, используйте колесо для масштабирования и нажмите кнопку разворота (в правом верхнем углу), чтобы открыть его на весь экран.
Возможности
- Полный набор ценовых серий: свечи, OHLC-бары, линия, область, гистограмма, полоса (band), а также производные типы Heikin-Ashi, Renko и Point & Figure.
- Точные исследования потока ордеров: footprint, профиль объёма и TPO (рыночный профиль).
- Загрузка истории и обновление в реальном времени через
setDataиupdate. - Маркеры сделок, ценовые линии, перекрестие, масштабирование, прокрутка и автоматический расчёт диапазона.
- Движок индикаторов примерно со 160 реализациями расчётов.
- Наложенные индикаторы, синхронизированные панели осцилляторов и легенда, управляемая перекрестием.
- Светлая и тёмная темы, контекстное меню, диалог индикаторов и переключение типа графика.
Установка
Установите пакет из npm и импортируйте ES-модули:
npm install @stocksharp/chart
import { createChart, CandlestickSeries } from '@stocksharp/chart';
Либо без сборщика подключите готовый глобальный объект SSChart тегом <script>, как показано ниже.
Добавление графика на страницу
При сборке создаётся dist/sschart.js, который публикует window.SSChart. Значения времени передаются в API как Unix-время в секундах.
<div id="chart" style="width: 800px; height: 400px"></div>
<script src="dist/sschart.js"></script>
Создайте график, добавьте серию и загрузите данные:
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();
Вызов update с текущей меткой времени заменяет последнюю точку. Более новая метка добавляет точку.
Режимы графика
У каждого типа серии есть собственная тема с онлайн-демо и JavaScript-кодом, который его настраивает:
- Свечи — классические OHLC-свечи.
- OHLC-бары — тики открытия/закрытия на вертикальном баре диапазона.
- Линия — одна ломаная линия по ценам закрытия.
- Область — линия с градиентной заливкой.
- Гистограмма — вертикальные бары, обычно объём.
- Полоса (Band) — верхний/нижний канал (конверты, полосы Боллинджера).
- Свечи Heikin-Ashi — сглаженные свечи, фильтрующие шум.
- Renko — кирпичи, управляемые ценой, независимые от времени.
- График Point and Figure — столбцы X/O ценового движения.
- Footprint-график — объём bid × ask на каждой цене внутри каждого бара.
- Профиль объёма — объём по ценам с POC и зоной стоимости.
- TPO (Профиль рынка) — время, проведённое на каждой цене за сессию.
Помимо типов серий, у графика есть движок индикаторов (около 160 исследований) и ленивая догрузка истории, которая подгружает старые бары по мере прокрутки.
О визуальном редакторе стратегий, отрисовываемом тем же веб-стеком, см. JavaScript-диаграмма.
Полный набор модулей терминала
Модули в src/chart расширяют базовый движок возможностями терминала:
IndicatorEngine, отрисовщики и настройки индикаторов, а также каталог расчётов.- Переключатель типа графика для свечей, баров, линий, областей, Heikin-Ashi, Renko и крестиков-ноликов.
- Легенда, синхронизированные дополнительные панели, контекстное меню и диалог выбора индикаторов.
- Пересчёт активных индикаторов при изменении данных в реальном времени.
В качестве примера интеграции полного набора модулей используйте src/chart/app.ts.
Сборка из исходного кода
Клонируйте репозиторий и используйте включённые npm-скрипты:
git clone https://github.com/StockSharp/Charts.git
cd Charts
npm install
npm run build
npm test
npm run serve
Сервер разработки публикует демо по адресу http://localhost:8791/demo/index.html.