Гистограмма представляет собой столбиковую диаграмму частот. По одной из осей откладывают значения переменной, а по другой — частоту встречаемости (возникновение, появление и т.п.) этих значений. Высота каждого столбца показывает частоту (количество) значений, принадлежащих соответствующему интервалу, равному ширине столбца. Чаще всего такие диаграммы изображаются горизонтально, т.е. значения переменной расположены на горизонтальной оси, а частоты — на вертикальной.
В данной библиотеке остановимся на вертикальных гистограммах вариационных рядов: ценовые значения исследуемых характеристик будут находится на вертикальной оси в порядке возрастания, а частоты — на горизонтальной. Поступающие в терминал ценовые данные распределяются и группируются на текущем баре и могут быть отображены относительно его оси слева, справа или одновременно с обеих сторон.

Рис. 1. Вертикальная гистограмма распределения цен Bid и Ask
Конструктор вертикальных гистограмм построен на классе CHistogram. Реализация всех методов которого базируется на использовании так называемой "графической" памяти.
Метод: конструктор класса CHistogram.
Инициализирует экземпляр класса.
Параметры:
name
[in] Уникальный префикс имени для всех столбцов гистограммы.
hsize
[in] Масштаб отображения гистограммы.
width
[in] Толщина линий столбцов гистограммы.
active
[in] Цвет столбцов гистограммы обновлённых на текущем баре.
passive
[in] Цвет столбцов гистограммы, которые на текущем баре не обновлялись.
Left_Right=true
[in] Направление отображения гистограммы. false — гистограмма расположена слева от текущего бара, true — справа.
relative_frequency=false
[in] Метод учёта значений частот. false — абсолютные значения частот, true — относительные значения частот.
sub_win=0
[in] Индекс окна для построения гистограммы. 0 — главное окно графика.
Возвращаемое значение:
Нет возвращаемого значения. В случае успеха, создаётся экземпляр класса с заданными параметрами.
Метод: отображения гистограммы DrawHistogram.
Отображает столбцы гистограммы: создаёт новые; редактирует имеющиеся; сохраняет значения частот в графической памяти; отображает гистограмму на текущем баре.
Параметры:
price
[in] Значение варианты исследуемой характеристики рынка.
time
[in] Время текущего бара. На этом баре будет ось гистограммы.
Возвращаемое значение:
Нет возвращаемого значения. В случае успеха, будет создан новый или скорректирован имеющийся столбец гистограммы. Если появится новый бар, гистограмма сдвигается таким образом, чтобы ось находилась на текущем баре.
Метод: расчёт характеристик гистограммы HistogramCharacteristics.
Возвращает рассчитанные характеристики вариационного ряда в переменной типа sVseries.
Параметры:
Нет входных параметров.
Возвращаемое значение:
В случае успеха возвращает значение переменной типа sVseries.
Структура для получения текущих значений характеристик гистограммы (sVseries).
Структура для хранения последних значений характеристик статистического распределения. Предназначена для получения наиболее востребованной информации о вариационном ряде.
Метод: визуализация значения средней DrawMean.
Отображает значение взвешенной средней арифметической вариационного ряда на графике.
Параметры:
coord
[in] Значение взвешенной средней арифметической.
time
[in] Время текущего бара. На этом баре будет фиксироваться значение взвешенной средней арифметической.
marker=false
[in] Отображать маркер на графике или нет. false — маркер не отображается, true — маркер отображается на графике.
save=false
[in] Сохранять значение взвешенной средней арифметической в истории. false — не отображать, true — отображать значение на графике.
Возвращаемое значение:
В случае успеха, на графике отображается горизонтальная линия соответствующая значению взвешенной средней арифметической.
Метод: визуализация среднеквадратического отклонения DrawSD.
Отображает значение среднеквадратического отклонения в виде прямоугольника, ширина которого совпадает со средней частотой, а высота стандартному отклонению, отложенному вверх и вниз от значения взвешенной средней арифметической.
Параметры:
coord
[in] Значение переменной типа sVseries.
time
[in] Время текущего бара.
deviation=1.0
[in] Коэффициент, на который будет увеличено значение среднеквадратического отклонения.
clr=clrYellow
[in] Цвет прямоугольника визуализирующего среднеквадратического отклонения.
Возвращаемое значение:
В случае успеха на графике отображается прямоугольник, характеризирующий среднеквадратическое отклонение от значения взвешенной средней арифметической.
На видео демонстрируются возможности класса. Код тестового примера находится в приложении.
Прилагаемый код показывает, как вызвать тот или иной метод класса (функцию).
Советы:
BrainTrend2SigAlert
Семафорный сигнальный индикатор BrainTrend2Sig с подачей алертов, с отправкой почтовых сообщений и push-сообщений на смартфон.
MFI_Histogram_Round
Классический осциллятор MFI, выполненный в виде гистограммы, с округлением своих значений до стандартного ряда.
e-Regr
e-Regr — советник для MetaTrader 5. Торговля по индикатору i-Regr (Канал Регрессии). Широкое применение классов стандартной библиотеки.
i-Regr
i-Regr — индикатор для MetaTrader 5. Канал Регрессии: Линейный Канал Регрессии, Канал квадратичной (параболической) регрессии, Канал кубической регрессии.