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

UltraMFI - индикатор для MetaTrader 5

Просмотров:
1260
Рейтинг:
(10)
Опубликован:
2018.08.01 15:07
Обновлен:
2023.03.16 17:12
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Реальный автор: Дмитрий.

В основе этого индикатора лежат показания технического индикатора MFI (Money Flow Index) и анализ множества его сигнальных линий. Алгоритм вычисления сигнальных линий выглядит следующим образом. В качестве исходных данных имеем входные параметры индикатора:

  • StartLength - минимальное стартовое значение первой сигнальной линии;
  • Step - шаг изменения периода;
  • StepsTotal - количество изменений периода.

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

SignalPeriod(Number) = StartLength + Number * Step,

где значение переменной Number изменяется в пределах от нуля и до StepsTotal. Полученные значения периодов складываются в массив переменных и используются на каждом тике индикатора для получения массива усредненных значений индикатора Larry Williams' Percent Range. На основе этого массива вычисляются направления текущего тренда для каждого из усреднений и определяются количества положительных и отрицательных трендов для всего массива усредненных значений MFI.

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

Направление тренда в данном индикаторе определяется цветом облака, а сила тренда - его шириной. Можно использовать уровни перекупленности (UpLevel) и перепроданности (DnLevel), которые задаются в процентах от максимального размаха индикатора.

Алгоритмы усреднения в индикаторе можно менять, используя для этого десять возможных вариантов:

  1. SMA - простое скользящее среднее;
  2. EMA - экспоненциальное скользящее среднее;
  3. SMMA - сглаженное скользящее среднее;
  4. LWMA - линейно-взвешенное скользящее среднее;
  5. JJMA - адаптивное усреднение JMA;
  6. JJurX - ультралинейное усреднение;
  7. ParMA - параболическое усреднение;
  8. T3 - множественное экспоненциальное сглаживание Тиллсона;
  9. VIDYA - усреднение с использованием алгоритма Тушара Чанде;
  10. AMA - усреднение с использованием алгоритма Пэрри Кауфмана.

Следует обратить внимание на тот факт, что параметры Phase1 и Phase2 для разных алгоритмов усреднения имеют совершенно различный смысл. Для JMA - это внешняя переменная Phase, изменяющаяся от -100 до +100. Для T3 - это коэффициент усреднения, умноженный на 100 для лучшего восприятия, для VIDYA - это период осциллятора CMO, а для AMA - период медленной EMA. В остальных алгоритмах эти параметры на усреднение не влияют. Для AMA период быстрой EMA является фиксированным и по умолчанию равным 2. Коэффициент возведения в степень для AMA тоже равен 2.

Индикатор использует классы библиотеки SmoothAlgorithms.mqh (нужно скопировать в каталог_данных_терминала\MQL5\Include), подробное описание работы с которыми было опубликовано в статье Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов.

//+----------------------------------------------+
//| Входные параметры индикатора                 |
//+----------------------------------------------+
input int MFI_Period=13;                            // Период индикатора MFI
input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK;   // Объем индикатора MFI 
//----
input Smooth_Method W_Method=MODE_JJMA; // Метод усреднения
input int StartLength=3;                // Стартовый период усреднения                    
input int WPhase=100;                   // Параметр усреднения
// Для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса;
// Для VIDIA это период CMO, для AMA это период медленной скользящей
//----  
input uint Step=5;        // Шаг изменения периода
input uint StepsTotal=10; // Количество изменений периода
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // Метод сглаживания
input int SmoothLength=3;                   // Глубина сглаживания                    
input int SmoothPhase=100;                  // Параметр сглаживания
// Для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса;
//----                          
input uint UpLevel=80;            // Уровень перекупленности в %%
input uint DnLevel=20;            // Уровень перепроданности в %%
input color UpLevelsColor=Blue;   // Цвет уровня перекупленности
input color DnLevelsColor=Blue;   // Цвет уровня перепроданности
input STYLE Levelstyle=DASH_;     // Стиль уровней
input WIDTH  LevelsWidth=Width_1; // Толщина уровней
//+----------------------------------------------+

Рис.1. Индикатор UltraMFI

Рис.1. Индикатор UltraMFI

Damiani_Volatmeter Damiani_Volatmeter

Damiani Volatmeter - индикатор определения тренда/флета.

TriggerLines TriggerLines

Трендовый индикатор TriggerLines рисует две линии скользящих средних, окрашенных по направлению тренда: вверх - зеленые, вниз - красные.

Wiseman1 Wiseman1

Индикатор делает пометки на свечках цветом в зависимости от положения этих свеч по отношению к предыдущим свечкам.

BBands_Stop_v1_Alert BBands_Stop_v1_Alert

Индикатор BBands Stop v1 с возможностью подавать алерты, отправлять почтовые и Push-сообщения в момент, когда происходит изменение направления тренда и, соответственно, изменение цвета индикатора.