Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Vertical histograms constructor - библиотека для MetaTrader 5

Просмотров:
2383
Рейтинг:
(29)
Опубликован:
2016.10.27 18:18
Обновлен:
2016.11.22 07:32
\MQL5\Include\ \MQL5\Indicators\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

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

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

Рис. 1. Вертикальная гистограмма распределения цен Bid и Ask.

Рис. 1. Вертикальная гистограмма распределения цен Bid и Ask

Конструктор вертикальных гистограмм построен на классе CHistogram. Реализация всех методов которого базируется на использовании так называемой "графической" памяти.

Метод: конструктор класса CHistogram.

Инициализирует экземпляр класса.

void CHistogram(
   string name,                     // уникальный префикс имени
   int    hsize,                    // масштаб диаграммы
   int    width,                    // толщина линий столбцов гистограммы
   color  active,                   // цвет активных линий
   color  passive,                  // цвет пассивных линий
   bool   Left_Right=true,          // left=false or right=true
   bool   relative_frequency=false, // относительная или абсолютная гистограмма
   int    sub_win=0                 // индекс окна построения гистограммы
   );

Параметры:

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.

Отображает столбцы гистограммы: создаёт новые; редактирует имеющиеся; сохраняет значения частот в графической памяти; отображает гистограмму на текущем баре.

void DrawHistogram(
   double price,  // значение варианты
   datetime time  // временя текущего бара
   );

Параметры:

price

   [in] Значение варианты исследуемой характеристики рынка.

time

   [in] Время текущего бара. На этом баре будет ось гистограммы.

Возвращаемое значение:

   Нет возвращаемого значения. В случае успеха, будет создан новый или скорректирован имеющийся столбец гистограммы. Если появится новый бар, гистограмма сдвигается таким образом, чтобы ось находилась на текущем баре.

Метод: расчёт характеристик гистограммы HistogramCharacteristics.

Возвращает рассчитанные характеристики вариационного ряда в переменной типа sVseries.

sVseries HistogramCharacteristics();

Параметры:

   Нет входных параметров.

Возвращаемое значение:

   В случае успеха возвращает значение переменной типа sVseries.

Структура для получения текущих значений характеристик гистограммы (sVseries).

Структура для хранения последних значений характеристик статистического распределения. Предназначена для получения наиболее востребованной информации о вариационном ряде.

struct sVseries
  {
   long     N;    // общее число наблюдений
   double   Na;   // среднее значение частот
   double   Vmax; // максимальное значение варианты
   double   Vmin; // минимальное значение варианты
   double   A;    // амплитуда ряда
   double   Mean; // взвешенная средняя арифметическая
   double   D;    // дисперсия
   double   SD;   // среднеквадратическое отклонение
  };
Переменная типа sVseries позволяет за один вызов функции HistogramCharacteristics() получить значения всех основных характеристик вариационного ряда отображённого в виде гистограммы.

Метод: визуализация значения средней DrawMean.

Отображает значение взвешенной средней арифметической вариационного ряда на графике.

void DrawMean(
   double coord,     // значение взвешенной средней арифметической
   datetime time,    // время текущего бара
   bool marker=false,// отображать маркер или нет
   bool save=false   // сохранять значение в истории или нет
   );

Параметры:

coord

   [in] Значение взвешенной средней арифметической.

time

   [in] Время текущего бара. На этом баре будет фиксироваться значение взвешенной средней арифметической.

marker=false

   [in] Отображать маркер на графике или нет. false — маркер не отображается, true — маркер отображается на графике.

save=false

   [in]  Сохранять значение взвешенной средней арифметической в истории. false — не отображать, true — отображать значение на графике.

Возвращаемое значение:

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

Метод: визуализация среднеквадратического отклонения DrawSD.

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

void DrawSD(
   sVseries &coord,        // переменная типа sVseries
   datetime time,          // время текущего бара
   double deviation=1.0,   // отклонение
   color clr=clrYellow     // цвет отображения
   );

Параметры:

coord

   [in] Значение переменной типа sVseries.

time

   [in] Время текущего бара.

deviation=1.0

   [in] Коэффициент, на который будет увеличено значение среднеквадратического отклонения.

clr=clrYellow

   [in] Цвет прямоугольника визуализирующего среднеквадратического отклонения.

Возвращаемое значение:

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


На видео демонстрируются возможности класса. Код тестового примера находится в приложении.

Прилагаемый код показывает, как вызвать тот или иной метод класса (функцию).


Советы:

  • Лучше всего использовать класс на младших таймфреймах.

BrainTrend2SigAlert BrainTrend2SigAlert

Семафорный сигнальный индикатор BrainTrend2Sig с подачей алертов, с отправкой почтовых сообщений и push-сообщений на смартфон.

MFI_Histogram_Round MFI_Histogram_Round

Классический осциллятор MFI, выполненный в виде гистограммы, с округлением своих значений до стандартного ряда.

e-Regr e-Regr

e-Regr — советник для MetaTrader 5. Торговля по индикатору i-Regr (Канал Регрессии). Широкое применение классов стандартной библиотеки.

i-Regr i-Regr

i-Regr — индикатор для MetaTrader 5. Канал Регрессии: Линейный Канал Регрессии, Канал квадратичной (параболической) регрессии, Канал кубической регрессии.