MetaTrader 5 / Индикаторы

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

dm34@mail.ru
3674
(23)

Реальный автор:

dm34@mail.ru

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

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

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

SignalPeriod(Number)  =  StartLength + Number * Step,

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

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

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

  1. SMA - простое скользящее среднее;
  2. EMA - экспоненциальное скользящее среднее;
  3. SMMA - сглаженное скользящее среднее;
  4. LWMA - линейно-взвешенное скользящее среднее;
  5. JJMA - адаптивное усреднение JMA;
  6. JurX - ультралинейное усреднение;
  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 RSI_Period=13;                         // Период индикатора RSI input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Использованная цена //---- input Smooth_Method W_Method=MODE_JJMA;         // Метод усреднения input int StartLength=3;                        // Стартовый период усреднения                     input int WPhase=100;                            // Параметр усреднения //----   input uint Step=5;                               // Шаг изменения периода input uint StepsTotal=10;                        // Количество изменений периода //---- input Smooth_Method SmoothMethod=MODE_JJMA;     // Метод сглаживания input int SmoothLength=3;                        // Глубина сглаживания input int SmoothPhase=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;                // Толщина уровней

Индикатор UltraRSI