График свечей: Финансовая торговля и движение цен

При отслеживании финансовых рынков и колебаний цен на активы во времени, График свечей является стандартным инструментом визуализации. Объединяя четыре ключевых ценовых показателя — Открытие, Максимум, Минимум и Закрытие (OHLC) — в одну визуальную полосу, графики свечей показывают колеблемость цен, торговый диапазон и рыночную настроенность за один взгляд, что делает их необходимыми для панелей отчетов по акциям, трекеров криптовалют и просмотров торговли товарами.

Механика свечей

В Apache ECharts серии свечей отображаются с использованием type: 'candlestick' (или алиас 'k'). Каждая точка данных требует массив из 4 значений, явно упорядоченных как [Открытие, Закрытие, Минимум, Максимум]. Двигатель графика рисует сплошное или пустое тело между Открытием и Закрытием, с тонкими «ножками» линий, простирающимися до минимальных и максимальных цен.

1. Основная настройка

Чтобы создать базовый график свечей, отобразите временные значения по непрерывной оси X и передайте [Открытие, Закрытие, Минимум, Максимум] массивы в данные серии:

option = {
    tooltip: {
        trigger: 'axis',
        axisPointer: { type: 'cross' }
    },
    xAxis: {
        type: 'category',
        data: ['2026-05-01', '2026-05-02', '2026-05-03', '2026-05-04', '2026-05-05']
    },
    yAxis: {
        type: 'value',
        scale: true
    },
    series: [
        {
            type: 'candlestick',
            data: [
                [20, 34, 10, 38], // [Открытие, Закрытие, Минимум, Максимум] -> Бычий (Закрытие > Открытие)
                [40, 35, 30, 50], // Медвежий (Закрытие < Открытие)
                [31, 38, 33, 44],
                [38, 15, 5, 42],
                [15, 28, 10, 32]
            ]
        }
    ]
};

 

Расширенные структурные техники

Графики свечей можно настраивать с использованием международных цветовых традиций, увеличенных временных диапазонов или комбинировать с скользящими средними.

1. Настройка цветов и скользящих средних

Настройте цвета бычьих (вверх) и медвежьих (вниз) полос с помощью itemStyle, и наложите линии скользящей средней, комбинируя линейные серии с серией свечей:

option = {
    tooltip: {
        trigger: 'axis',
        axisPointer: { type: 'cross' }
    },
    legend: {
        data: ['Ежедневный K', 'MA5']
    },
    xAxis: {
        type: 'category',
        data: ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс']
    },
    yAxis: {
        type: 'value',
        scale: true
    },
    series: [
        {
            name: 'Ежедневный K',
            type: 'candlestick',
            data: [
                [2320, 2320, 2287, 2362],
                [2300, 2291, 2288, 2341],
                [2295, 2312, 2290, 2380],
                [2315, 2330, 2310, 2360],
                [2330, 2325, 2312, 2355],
                [2325, 2350, 2320, 2370],
                [2350, 2340, 2330, 2385]
            ],
            itemStyle: {
                color: '#eb4d4b',       // Цвет для бычьего тренда (Закрытие > Открытие)
                color0: '#6ab04c',      // Цвет для медвежьего тренда (Закрытие < Открытие)
                borderColor: '#eb4d4b',
                borderColor0: '#6ab04c'
            }
        },
        {
            name: 'MA5',
            type: 'line',
            smooth: true,
            data: [null, null, null, null, 2310, 2321, 2329],
            lineStyle: { opacity: 0.8, width: 2 }
        }
    ]
};

 

Тонкая настройка макета и интерактивного масштабирования

Добавление элементов управления масштабированием временных рядов предоставляет пользователям гибкость при навигации по плотным историческим записям торговли.

1. Управление масштабированием данных и указателями осей

Используйте горизонтальные ползунки и масштабирование колесиком мыши с помощью блока конфигурацииdataZoom блока конфигурации:

option = {
    grid: {
        left: '10%',
        right: '10%',
        bottom: '15%'
    },
    xAxis: {
        type: 'category',
        data: ['День 1', 'День 2', 'День 3', 'День 4', 'День 5', 'День 6', 'День 7', 'День 8']
    },
    yAxis: {
        type: 'value',
        scale: true
    },
    dataZoom: [
        {
            type: 'inside', // Включает масштабирование колесиком мыши
            start: 20,
            end: 100
        },
        {
            type: 'slider', // Визуальный ползунок масштабирования внизу
            show: true,
            top: '90%'
        }
    ],
    series: [
        {
            type: 'candlestick',
            data: [
                [100, 110, 95, 115],
                [110, 105, 100, 112],
                [105, 120, 104, 125],
                [120, 118, 112, 122],
                [118, 125, 115, 128],
                [125, 122, 120, 130],
                [122, 135, 121, 138],
                [135, 130, 128, 140]
            ]
        }
    ]
};

 

Стратегические лучшие практики

  • Правильно упорядочьте данные: Проверьте структуру массива! ECharts ожидает [Открытие, Закрытие, Минимум, Максимум]—перестановка Закрытия и Минимума — распространённая причина ошибок отображения.
  • Включите scale: true на оси Y: Всегда включайте scale: true на числовых осях цен, чтобы график автоматически масштабировался в соответствии с текущим диапазоном цен, а не вынуждал начало отсчёта быть нулевым.
  • Используйте указатели осей в виде креста: Установите tooltip.axisPointer.type = 'cross' чтобы отображать непрерывные вертикальные и горизонтальные линии-ориентиры для простой привязки цены и временной метки.
Прокрутить вверх