Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Vertical histograms constructor - библиотека для MetaTrader 5
- Просмотров:
- 2431
- Рейтинг:
- Опубликован:
- 2016.10.27 18:18
- Обновлен:
- 2016.11.22 07:32
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Гистограмма представляет собой столбиковую диаграмму частот. По одной из осей откладывают значения переменной, а по другой — частоту встречаемости (возникновение, появление и т.п.) этих значений. Высота каждого столбца показывает частоту (количество) значений, принадлежащих соответствующему интервалу, равному ширине столбца. Чаще всего такие диаграммы изображаются горизонтально, т.е. значения переменной расположены на горизонтальной оси, а частоты — на вертикальной.
В данной библиотеке остановимся на вертикальных гистограммах вариационных рядов: ценовые значения исследуемых характеристик будут находится на вертикальной оси в порядке возрастания, а частоты — на горизонтальной. Поступающие в терминал ценовые данные распределяются и группируются на текущем баре и могут быть отображены относительно его оси слева, справа или одновременно с обеих сторон.
Рис. 1. Вертикальная гистограмма распределения цен Bid и Ask
Конструктор вертикальных гистограмм построен на классе CHistogram. Реализация всех методов которого базируется на использовании так называемой "графической" памяти.
Метод: конструктор класса 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.
Отображает столбцы гистограммы: создаёт новые; редактирует имеющиеся; сохраняет значения частот в графической памяти; отображает гистограмму на текущем баре.
double price, // значение варианты
datetime time // временя текущего бара
);
Параметры:
price
[in] Значение варианты исследуемой характеристики рынка.
time
[in] Время текущего бара. На этом баре будет ось гистограммы.
Возвращаемое значение:
Нет возвращаемого значения. В случае успеха, будет создан новый или скорректирован имеющийся столбец гистограммы. Если появится новый бар, гистограмма сдвигается таким образом, чтобы ось находилась на текущем баре.
Метод: расчёт характеристик гистограммы HistogramCharacteristics.
Возвращает рассчитанные характеристики вариационного ряда в переменной типа sVseries.
Параметры:
Нет входных параметров.
Возвращаемое значение:
В случае успеха возвращает значение переменной типа sVseries.
Структура для получения текущих значений характеристик гистограммы (sVseries).
Структура для хранения последних значений характеристик статистического распределения. Предназначена для получения наиболее востребованной информации о вариационном ряде.
{
long N; // общее число наблюдений
double Na; // среднее значение частот
double Vmax; // максимальное значение варианты
double Vmin; // минимальное значение варианты
double A; // амплитуда ряда
double Mean; // взвешенная средняя арифметическая
double D; // дисперсия
double SD; // среднеквадратическое отклонение
};
Метод: визуализация значения средней 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.
Отображает значение среднеквадратического отклонения в виде прямоугольника, ширина которого совпадает со средней частотой, а высота стандартному отклонению, отложенному вверх и вниз от значения взвешенной средней арифметической.
sVseries &coord, // переменная типа sVseries
datetime time, // время текущего бара
double deviation=1.0, // отклонение
color clr=clrYellow // цвет отображения
);
Параметры:
coord
[in] Значение переменной типа sVseries.
time
[in] Время текущего бара.
deviation=1.0
[in] Коэффициент, на который будет увеличено значение среднеквадратического отклонения.
clr=clrYellow
[in] Цвет прямоугольника визуализирующего среднеквадратического отклонения.
Возвращаемое значение:
В случае успеха на графике отображается прямоугольник, характеризирующий среднеквадратическое отклонение от значения взвешенной средней арифметической.
На видео демонстрируются возможности класса. Код тестового примера находится в приложении.
Прилагаемый код показывает, как вызвать тот или иной метод класса (функцию).
Советы:
- Лучше всего использовать класс на младших таймфреймах.
Семафорный сигнальный индикатор BrainTrend2Sig с подачей алертов, с отправкой почтовых сообщений и push-сообщений на смартфон.
MFI_Histogram_RoundКлассический осциллятор MFI, выполненный в виде гистограммы, с округлением своих значений до стандартного ряда.
e-Regr — советник для MetaTrader 5. Торговля по индикатору i-Regr (Канал Регрессии). Широкое применение классов стандартной библиотеки.
i-Regri-Regr — индикатор для MetaTrader 5. Канал Регрессии: Линейный Канал Регрессии, Канал квадратичной (параболической) регрессии, Канал кубической регрессии.