## Введение: Пример 1
Достаточно всего двух команд

Формат CHD очень прост, если не заниматься дизайном графика. Для описания графика вполне хватает двух команд NewData и Series, за которыми следуют строки данных.

Команда NewData создаёт новую матрицу данных с заданными столбцами и делает её текущей. Число значений в каждой последующей строке данных должно равняться количеству столбцов в матрице.

Команда Series создаёт серию точек на графике и описывает её свойства, такие как X-координата, Y-координата, цвет, форма точки, и т.д. Каждое свойство может быть либо константой, либо именем столбца данных из какой-либо матрицы текущего слайда. Cвойства точек подробно описаны в разделе Серии.

Следующий график показывает динамику цен и объёмов торгов акциями компании ЛУК ОЙЛ на ММВБ с февраля по ноябрь 1999 года.

График был построен по входному потоку данных, содержавшему по 3 значения в каждой строке: дату, цену и объём. Каждая строка соответствовала одному дню. Ниже приводится начальный отрывок входного потока:

    #NewData day, price, value
    #Series X=day Y=price S=0 LC=1
    #Series X=day Z=value S=0 LC=3
    28/01/99 25.35 216335
    29/01/99 25.68 124938
    01/02/99 25.57 10226
    ...

У этого графика много недостатков: даты отображаются числами, отсутствует заголовок и названия осей, слишком много нулей в метках правой вертикальной оси, и так далее... Таково форматирование графика по умолчанию.

## Введение: Пример 2
И всё-таки двух команд не достаточно

Тот же график можно сделать существенно более понятным и привлекательным, если задать фоновую заливку, установить русскую локализацию, добавить заголовки и ещё несколько команд форматирования:

    #Locale= rus
    #Slide.Background = 17 17 7 7, bidir
    #Slide.GradMaxSize = 2
    #Title Торги акциями ЛУК ОЙЛ, 1999 год
    #YName = цена
    #ZName= объём, млн. руб
    #XAxis.Type = date
    #YAxis.Color = 1
    #ZAxis.Color = 3
    #NewData day, price, value
    #Let vmill= value / 1000000
    #Series X=day Y=price S=0 LP=2 LW=2 LC=1
    #Series X=day Z=vmill S=0 LP=2 LW=1 LC=3 FD=1 FP=2 FC=15
    #Series X=day Z=0 S=0

    28/01/99 25.35 216335
    29/01/99 25.68 124938
    01/02/99 25.57 10226
    ...

## Введение: Пример 3
Несколько графиков на одном слайде

Продолжим пример с графиком хода торгов. Биржевые графики часто рисуют друг под другом: сверху цены, снизу объёмы. Ход цены изображают с помощью интервальных гистограмм или японских подсвечников:

Данные для этого графика те же самые, что и в примерах 1 и 2. Слайд разбивается на две панели командами NewPanel. Команда Group размещает эти панели друг под другом и говорит, что верхняя панель в три раза выше. Команда CandleWidth задаёт ширину подсвечников в секундах (в данном случае одна неделя).

    ## определяем данные
    #NewData day, price, value
    #Let vmill= value / 1000000
    #Slide.Background = 17 17 7 7, bidir
    #Slide.GradMaxSize = 2

    ## определяем верхнюю панель цен
    #NewPanel price
    #Title Торги акциями ЛУК ОЙЛ, 1999 год
    #YName = цена
    #XAxis.Type = date
    #XAxis.Visible off
    #Series X=day MC=price MS=2 C=7
    #CandleWidth 1 weeks

    ## определяем нижнюю панель объёмов
    #NewPanel volume
    #Title.Border 0, 1, 0, 1
    #Title.IndentVert = 0
    #XAxis.Type = date
    #XAxis.SpaceVert = 1
    #XAxis.IndentVert = 0
    #Series X=day MC=vmill ML=0 MS=3 C=15
    #CandleWidth = 1 weeks

    ## располагаем панели друг под другом, синхронизируем оси
    #Group (3,1)(1) main = price, volume
    #SyncAxis price.XAxis, volume.XAxis

    27/01/99 24.85 66913
    28/01/99 25.35 216335
    29/01/99 25.68 124938
    ...

## Введение: Пример 4
Биржевые торги — необычный ракурс

Можно пойти дальше и построить третий график по тем же колонкам данных. Например, это могла бы быть гистограмма распределения объёмов торгов по ценам, дающая нестандартное представление биржевых торгов.

Создадим ещё одну панель и разместим на ней гистограммную серию. Для построения гистограммы распределения необходимы две дополнительных команды. HorizHist говорит, что гистограмма горизонтальная и каждая точка отображается отдельно внутри столбца. Команда ColWidth задаёт ширину колонки гистограммы.

    ## определяем данные
    #NewData day, price, value
    #Let vmill= value / 1000000
    #Slide.Background = 17 17 7 7, bidir
    #Slide.GradMaxSize = 2

    ## определяем верхнюю панель цен
    #NewPanel price
    #Title Торги акциями ЛУК ОЙЛ, 1999 год
    #YName = цена
    #XAxis.Type = date
    #XAxis.SpaceVert = 1
    #XAxis.IndentVert = 0
    #XAxis.RulePose both
    #Series X=day MC=price MS=2 C=7
    #CandleWidth 1 weeks

    ## определяем нижнюю панель объёмов
    #NewPanel volume
    #Title.IndentVert = 0
    #XAxis.Type = date
    #XAxis.Visible off
    #Series X=day MC=vmill ML=0 MS=3 C=15
    #CandleWidth = 1 weeks

    ## определяем правую панель с гистограммой объёмов
    #NewPanel hist
    #HorizHist = detailed
    #ColWidth = 5
    #YAxis.Visible off
    #Series Y=price HW=vmill HS=time C=15

    ## располагаем панели друг под другом, синхронизируем оси
    #Group (3,1)(2,1) main = price, hist, volume
    #SyncAxis price.XAxis, volume.XAxis
    #SyncAxis price.YAxis, hist.YAxis

    27/01/99 24.85 66913
    28/01/99 25.35 216335
    29/01/99 25.68 124938
    ...

## Введение: Пример 5
Можно обходиться без данных

Точнее, данные можно вычислять по формулам. Например, чтобы построить график функции номального распределения, достаточно всего четырёх строк описания:

    #Let x= RowIndex/5-4
    #Let y= FNorm(x)
    #ResizeData 40
    #Series X=x Y=y

Команда Let создаёт новый столбец данных, значения в котором вычисляются по указанной формуле. Встроенная переменная RowIndex даёт порядковый номер текущей точки, а команда ResizeData устанавливает число строк в столбцах x и y, то есть число точек на графике.

Вот что в итоге получается: