MQL4 - automated forex trading   /  

Технический анализ

Технический анализ  Технические индикаторы  Осцилляторы  Ultimate Oscillator

Окончательный Осциллятор (Ultimate Oscillator)

Осцилляторы обычно сравнивают сглаженную цену финансового инструмента и его значение n-периодов назад. Ларри Уильямс (Larry Williams) заметил, что эффективность подобных осцилляторов может сильно варьироваться в зависимости от числа единичных периодов, взятых для расчета. Поэтому он разработал "Окончательный Осциллятор" (Ultimate Oscillator), использующий взвешенные суммы трех осцилляторов с разными периодами расчета.

Ларри Уильямс впервые описал этот осциллятор в 1985 году в журнале Technical Analysis of Stocks and Commodities. Значения индикатора варьируются в диапазоне от нуля до ста, а центр расположен на отметке пятьдесят. Зоне перепроданности соответствуют значения осциллятора расположенные ниже тридцати, а перепроданности — между семьюдесятью и ста.

Осциллятор использует три временные периода, которые можно задавать в ручную. Обычно, эти значения равны 7, 14 и 28 периодам. Учтите, что более длинные периоды включают в себя более короткие, то есть 28-периодные значения уже учитывают как 14-периодные, так и 7-периодные. Это означает, что значения самого короткого периода используется три раза и поэтому имеют наибольшее влияние на результаты осциллятора.

Ларри Уильямс рекомендует открывать позицию после образования расхождений. Покупайте если:

  • возникло бычье расхождение: цены достигли более низкого минимума, не подтвержденного более низким минимумом осциллятора;

  • при формировании бычьего расхождения осциллятор упал ниже 30;

  • осциллятор затем поднялся выше максимального уровня, достигнутого в период формирования бычьего расхождения. Именно в этот Момент следует покупать.

Закрывайте длинные позиции, если:

  • осциллятор поднялся выше 50, а затем упал ниже 45;

  • осциллятор поднялся выше 70 (иногда рекомендуется дождаться, когда он затем упадет ниже 70);

  • возникли сигналы для продажи.

Продавайте, если:

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

  • при формировании медвежьего расхождения осциллятор поднялся выше 50;

  • осциллятор упал ниже минимального уровня, достигнутого в период формирования медвежьего расхождения.

Закрывайте короткие позиции, если:

  • осциллятор поднялся выше 65;

  • осциллятор упал ниже 30;

  • возникли сигналы для покупки.


Расчет

  1. Определить текущий "истинный минимум" (True Low, TL). TL — наименьшее из текущего минимума или предыдущей цены закрытия.

    TL (i) = MIN (LOW (i) || CLOSE (i - 1))
  2. Вычислить текущее "Покупательное давление" (Buying Pressure, BP), равное разнице между текущей ценой закрытия и текущим истиным минимумом.

    BP (i) = CLOSE (i) - TL (i)
  3. Определить "Истинный Диапазон" (True Range, TR). Это наибольшее из разностей: текущих максимума и минимума; текущего максимума и предыдущей цены закрытия; предыдущей цены закрытия и текущего минимума.

    TR (i) = MAX (HIGH (i) - LOW (i) || HIGH (i) - CLOSE (i - 1) || CLOSE (i - 1) - LOW (i))
  4. Вычислить сумму значений BP для всех трех периодов расчета:

    BPSUM (N) = SUM (BP (i), i)
  5. Вычислить сумму значений TR для всех трех периодов расчета:

    TRSUM (N) = SUM (TR (i), i)
  6. Вычислить "сырое значение" Окончательного Осциллятора (The Raw Ultimate Oscillator, RawUO):

    RawUO = 4 * (BPSUM (1) / TRSUM (1)) + 2 * (BPSUM (2) / TRSUM (2)) + (BPSUM (3) / TRSUM (3))
  7. Рассчитать значение Окончательного Осциллятора (Ultimate Oscillator, UO) по формуле:

    UO = ( RawUO / (4 + 2 + 1)) * 100

Где:
MIN - минимальное значение;
MAX — максимальное значение;
|| — логическое ИЛИ;
LOW (i) — минимальная цена текущего бара;
HIGH (i) — максимальная цена текущего бара;
CLOSE (i) — цена закрытия текущего бара;
CLOSE (i — 1) — цена закрытия предыдущего бара;
TL (i) — Истинный минимум ;
BP (i) — Покупательное давление;
TR (i) — Истинный Диапазон;
BPSUM (N) — математическая сумма значений BP для периода N (N равное 1 соответствует i = 7 барам; при N = 2, i = 14 барам; при N = 3, i = 28 барам);
TRSUM (N) — математическая сумма значений TR для периода N (N равное 1 соответствует i = 7 барам; при N = 2, i = 14 барам; при N = 3, i = 28 барам);
RawUO — "сырое значение" Окончательного Осциллятора;
UO — значение Окончательного Осциллятора.


Исходные коды

Полный исходный код Ultimate Oscillator на MQL4 находится в Code Base: Ultimate Oscillator

Предупреждение: все права на данные материалы принадлежат MetaQuotes Software Corp. Полная или частичная перепечатка запрещена.