Версия страницы для печати Версия страницы для печати

Аналитика циклов/трендов и Индикатор MAD

Джон Эйлерс (John Ehlers)

   Время чтения: 11 минут

Здесь мы представляем индикатор разницы скользящих средних (MAD) и объясняем причины его создания. Вы увидите, что индикатор надежен, но при этом отличается простотой.

Я занимаюсь исследовательским проектом, который я начал, чтобы получить представление о характеристиках циклов в рыночных данных. (См. мою статью в S&C от мая 2021 года “Техническое описание рыночных данных для трейдеров” и мою статью от февраля 2021 года “Создание более надежных торговых стратегий с помощью FM-демодулятора”). В конечном итоге эти исследования привели меня к разработке нового трендового индикатора – осциллятора разности скользящих средних (MAD).

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

ИНДИКАТОР В СТИЛЕ ОСЦИЛЛЯТОРА

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

Один из способов создания индикатора в стиле осциллятора заключается в вычитании скользящей средней цены из самой цены. Скользящее среднее содержит DC (нулевую частоту) и низкочастотные компоненты данных. Таким образом, вычитание скользящего среднего из цены приводит к индикатору, который имеет номинальное нулевое среднее значение и более высокочастотные компоненты цикла в данных.

Во вкладке “Аналитика циклов/тенденций” приведен код на языке EasyLanguage, который отображает осциллятор в цветовой гамме в зависимости от длины скользящей средней.

АНАЛИТИКА ЦИКЛОВ/ТЕНДЕНЦИЙ

Следующий EasyLanguage-код показывает исходный код, приводящий к индикатору MAD.

{
Cycle/Trend Analytics (C) 2021 John F. Ehlers
}

Inputs:
CTMode(“cycle”);
Vars:
Price(0),
Length(0),
NormalLength(0),
Color1(0),
Color2(0),
Color3(0);

Arrays:
Osc[50](0);

Plot1(0,””,white, 1, 1);
Price = Close;

If CTMode = “cycle” Then Begin
Price = Sine(360*CurrentBar / 30);
Plot2(Price,””, cyan, 4, 4);
Plot3(Average(Price, 5) – Average(Price, 30),””, green, 4, 4);
End;

Color1 = 255;
Color3 = 0;
For Length = 5 to 30 Begin
Osc[Length] = Price – Average(Price, Length);
End;

For Length = 5 to 30 Begin
Color2 = 306 – 10. 2*Length;

//If Length = 3 Then Plot3[0](Osc[Length], “S3”, RGB(Color1, Color2, Color3),0,4);

If Length = 4 Then Plot4[0](Osc[Length], “S4”, RGB(Color1, Color2, Color3),0,4);
If Length = 5 Then Plot5[0](Osc[Length], “S5”, RGB(Color1, Color2, Color3),0,4);
If Length = 6 Then Plot6[0](Osc[Length], “S6”, RGB(Color1, Color2, Color3),0,4);
If Length = 7 Then Plot7[0](Osc[Length], “S7”, RGB(Color1, Color2, Color3),0,4);
If Length = 8 Then Plot8[0](Osc[Length], “S8”, RGB(Color1, Color2, Color3),0,4);
If Length = 9 Then Plot9[0](Osc[Length], “S9”, RGB(Color1, Color2, Color3),0,4);
If Length = 10 Then Plot10[0](Osc[Length], “S10”, RGB(Color1, Color2, Color3),0,4);
If Length = 11 Then Plot11[0](Osc[Length], “S11”, RGB(Color1, Color2, Color3),0,4);
If Length = 12 Then Plot12[0](Osc[Length], “S12”, RGB(Color1, Color2, Color3),0,4);
If Length = 13 Then Plot13[0](Osc[Length], “S13”, RGB(Color1, Color2, Color3),0,4);
If Length = 14 Then Plot14[0](Osc[Length], “S14”, RGB(Color1, Color2, Color3),0,4);
If Length = 15 Then Plot15[0](Osc[Length], “S15”, RGB(Color1, Color2, Color3),0,4);
If Length = 16 Then Plot16[0](Osc[Length], “S16”, RGB(Color1, Color2, Color3),0,4);
If Length = 17 Then Plot17[0](Osc[Length], “S17”, RGB(Color1, Color2, Color3),0,4);
If Length = 18 Then Plot18[0](Osc[Length], “S18”, RGB(Color1, Color2, Color3),0,4);
If Length = 19 Then Plot19[0](Osc[Length], “S19”, RGB(Color1, Color2, Color3),0,4);
If Length = 20 Then Plot20[0](Osc[Length], “S20”, RGB(Color1, Color2, Color3),0,4);
If Length = 21 Then Plot21[0](Osc[Length], “S21”, RGB(Color1, Color2, Color3),0,4);
If Length = 22 Then Plot22[0](Osc[Length], “S22”, RGB(Color1, Color2, Color3),0,4);
If Length = 23 Then Plot23[0](Osc[Length], “S23”, RGB(Color1, Color2, Color3),0,4);
If Length = 24 Then Plot24[0](Osc[Length], “S24”, RGB(Color1, Color2, Color3),0,4);
If Length = 25 Then Plot25[0](Osc[Length], “S25”, RGB(Color1, Color2, Color3),0,4);
If Length = 26 Then Plot26[0](Osc[Length], “S26”, RGB(Color1, Color2, Color3),0,4);
If Length = 27 Then Plot27[0](Osc[Length], “S27”, RGB(Color1, Color2, Color3),0,4);
If Length = 28 Then Plot28[0](Osc[Length], “S28”, RGB(Color1, Color2, Color3),0,4);
If Length = 29 Then Plot29[0](Osc[Length], “S29”, RGB(Color1, Color2, Color3),0,4);
If Length = 30 Then Plot30[0](Osc[Length], “S30”, RGB(Color1, Color2, Color3),0,4);
End;
ИНДИКАТОР MAD (РАЗНИЦА СКОЛЬЗЯЩИХ СРЕДНИХ)

{
MAD (Moving Average Difference) Indicator
(C) 2021 John F. Ehlers
}

Inputs:
ShortLength(8), LongLength(23);

Vars:
MAD(0);

MAD = 100*(Average(Close, ShortLength) – Average(Close, LongLength)) / Average(Close, LongLength);

Plot1(MAD, “”, red, 4, 4);
Plot2(0,””, white, 1, 1);

РЕЖИМ ЦИКЛОВ

В коде, приведенном во вкладке “Аналитика циклов/трендов”, который представляет собой код для отображения осциллятора в цветовой схеме, по умолчанию используется режим “цикл”. В этом режиме цена, которая начинается как закрытие, переписывается в виде синусоиды с периодом 30 баров. Для отображения входной цены строится голубая линия. Разница между двумя скользящими средними была добавлена позже, поэтому сейчас эта линия игнорируется. Скользящие средние и массив осцилляторов (osc) рассчитывались в диапазоне от 5 до 30 баров. Каждому осциллятору присваивалось значение зеленого цвета от 255 до 0 при изменении длины от 5 до 30. Это значение, в сочетании с красным цветом, давало чистый ярко-желтый цвет при длине 5 и ярко-красный при длине 30.

Аналитика циклов/трендов и Индикатор MAD. Рис 1.
РИСУНОК 1: РЕЖИМ ЦИКЛА. Аналитика циклов/трендов показывает реакцию на чистый цикл в диапазоне значений скользящей средней.

Результирующий дисплей для режима “цикл” показан на рисунке 1. Выходной сигнал индикатора опережает входной почти на 90 градусов для самой короткой скользящей средней. В этом нет ничего удивительного, ведь короткая скользящая средняя почти такая же, как цена, но отложенная на небольшую величину. По своей разнице она похожа на функцию импульса. Но импульс – это аналог производной в исчислении, а производная синусоиды – это косинусоида. Другими словами, выход индикатора опережает фазу входа примерно на 90 градусов.

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

РЕЖИМ ТРЕНДА

Сюрприз возникает при изменении входа CTMode с “цикла” на “тренд” в процессе работы кода. Такое изменение входа приводит к тому, что блок кода, содержащий теоретический синусоидальный вход данных, игнорируется при работе кода. В этом случае значение цены на момент закрытия не перезаписывается, и мы видим применение индикатора к реальным данным. Пример применения индикатора к ценам закрытия показан на рисунке 2.

Аналитика циклов/трендов и Индикатор MAD. Рис 2.
РИСУНОК 2: РЕЖИМ ТРЕНДА. Аналитика цикла/тренда показывает силу тренда в виде ширины отображений. Величина разрыва между самой красной и самой желтой линиями отражает силу тренда. Когда красная линия находится сверху, тренд восходящий. Когда красная линия находится внизу, тренд направлен вниз.

Удивительным результатом (для меня) является то, что преобладающим эффектом является то, что величина разрыва между самой красной и самой желтой линиями отражает силу тренда. Когда красная линия находится сверху, тренд восходящий. Когда красная линия находится внизу, тренд нисходящий.

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

Таким образом, идея заключается в том, чтобы показать тренд, взяв разницу двух осцилляторов. При взятии разности высокочастотные компоненты аннулируются. Если разность длин двух скользящих средних равна половине периода доминирующего цикла, то результирующая будет точно в фазе с входной ценой. Вы можете убедиться в этом, изменив длину второй скользящей средней при построении зеленой линии на 20. Таким образом, разница между длиной двух скользящих средних составит 15, то есть ровно половину длины 30-барного цикла. В результате зеленая линия перекрывается голубой, показывая, что они находятся в точной фазе.

Взять разность двух индикаторов-осцилляторов математически то же самое, что взять разность двух скользящих средних, потому что ценовой член в каждом осцилляторе отменяется.

“УМНЫЙ” MACD

Вот и все. Несмотря на запутанный процесс выведения, индикатор MAD (разница скользящих средних), по сути, представляет собой разность двух простых скользящих средних, длина усреднения которых отличается примерно на половину периода доминирующего цикла в данных. Индикатор становится более гладким по мере увеличения длины более короткой скользящей средней. Длина более длинной скользящей средней должна быть равна длине более короткой плюс половина периода доминирующего цикла в данных. Если доминирующий цикл неизвестен, просто сделайте длину более длинной скользящей средней вдвое больше длины более короткой.

Как различие скользящих средних, индикатор MAD – это “умный” MACD, потому что есть обоснование для установления длины скользящих средних. Кроме того, простые скользящие средние имеют линейную фазовую характеристику, поэтому разность скользящих средних избавляет от необходимости в третьей сглаживающей средней.

Код индикатора MAD приведен на вкладке “Индикатор MAD (Moving Average Difference)”. Для удобства индикатор строится в процентах от цены закрытия. Нормализующим членом является среднее значение, чтобы сделать индикатор как можно более гладким.

Аналитика циклов/трендов и Индикатор MAD. Рис 3.
РИСУНОК 3: ИНДИКАТОР MAD, НЕПРЕРЫВНЫЙ КОНТРАКТ НА ФЬЮЧЕРС EMINI S&P 500,
12/1/2019 – 7/1/2021. Индикатор MAD (разница скользящих средних) отображает тренд в виде осциллятора, масштабированного в процентах от цены.

Пример индикатора MAD показан на рисунке 3. Этот индикатор относительно нечувствителен к изменениям параметров в относительно широких диапазонах.

В следующий раз

В следующем месяце я предложу расширение этой концепции и представлю модификацию этого индикатора. Я покажу, как его можно использовать для улучшения времени торговли и уменьшения количества ложных сигналов.

Об Авторе


Джон Эйлерс, редактор журнала Stocks & Commodities, является пионером в области использования циклов и DSP (цифровой обработки сигналов) технического анализа. Он является президентом компании MESA Software. С ним можно связаться через его веб-сайт MESAsoftware.com.


ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА:

Эйлерс, Джон Ф. [2021]. Окно”, Technical Analysis of Stocks & Commodities, Volume 39: Сентябрь [2021]. “Создание более надежных торговых стратегийс помощью FM-демодулятора”, Technical Analysis of Stocks & Commodities, Volume 39: Июнь.
[2021]. “Техническое описание рыночных данных
Для трейдеров”, Technical Analysis of Stocks & Commodities, Том 39: Май.
[2016]. “Измерение рыночных циклов”, Technical Analysis of Stocks & Commodities, Volume 34:
Сентябрь.
[2013]. Cycle Analytics For Traders, John Wiley& Sons.

———————————————————
Переведено специально для сайта Finware Technologies, www.finware.ru
Вы можете свободно распространять эту статью любыми способами целиком вместе с этим блоком и действующей гиперссылкой на сайт finware.ru.
———————————————————

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*