График акций — это визуальное представление изменения цены акций компании на фондовом рынке за определённый период времени. Обычно он строится в виде линейного или свечного графика, где по оси абсцисс откладывается время, а по оси ординат — стоимость. Разберём, как построить такой график в Delphi.
Компонент TChart
Для построения графиков в Delphi исторически используется компонент TChart из пакета TeeChart, который входит в поставку среды. Он поддерживает множество типов серий данных — линии, свечи (Candlestick), бары (Bar), точки — и хорошо подходит именно для финансовых графиков, где свечной тип отображения уже встроен «из коробки».
Подготовка данных
Прежде чем рисовать график, нужно получить и подготовить сами данные: дата, цена открытия, максимум, минимум, цена закрытия за каждый период (день, час, минута — зависит от задачи). Эти данные можно хранить в массиве записей или загружать из файла/базы данных:
type
TPriceBar = record
Date: TDateTime;
OpenPrice, HighPrice, LowPrice, ClosePrice: Double;
end;
Добавление серии на график
На форму добавляется компонент TChart, в него — серия типа TCandleSeries (для свечного графика) или TLineSeries (для простого линейного). Далее данные добавляются в серию методом AddCandle или Add:
ChartSeries1.AddCandle(Bar.Date, Bar.HighPrice, Bar.LowPrice,
Bar.OpenPrice, Bar.ClosePrice);
Настройка отображения
TChart позволяет гибко настраивать внешний вид: цвета растущих и падающих свечей, масштаб осей, легенду, всплывающие подсказки при наведении на отдельную свечу. Для финансовых графиков часто добавляют дополнительные серии поверх основной — например, скользящие средние — что в TeeChart делается добавлением ещё одной серии типа TLineSeries, рассчитанной на основе тех же данных.
Если нужны данные в реальном времени
Для графика, обновляющегося «вживую», данные можно получать периодически (например, по таймеру TTimer) из внешнего источника и добавлять новые точки в существующую серию, не пересоздавая график целиком — это заметно экономит ресурсы при частом обновлении.