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

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

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

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

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

Рис. 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. Канал Регрессии: Линейный Канал Регрессии, Канал квадратичной (параболической) регрессии, Канал кубической регрессии.