Здесь мы представляем индикатор разницы скользящих средних (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 (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.
Результирующий дисплей для режима «цикл» показан на рисунке 1. Выходной сигнал индикатора опережает входной почти на 90 градусов для самой короткой скользящей средней. В этом нет ничего удивительного, ведь короткая скользящая средняя почти такая же, как цена, но отложенная на небольшую величину. По своей разнице она похожа на функцию импульса. Но импульс — это аналог производной в исчислении, а производная синусоиды — это косинусоида. Другими словами, выход индикатора опережает фазу входа примерно на 90 градусов.
Выход индикатора находится точно в фазе с ценовым входом, когда длина скользящей средней составляет половину периода цикла. И в этом нет ничего удивительного, поскольку суммирование синусоиды за половину периода цикла точно совпадает по фазе с ценовым циклом в той же системе отсчета. Индикатор имеет относительно запаздывающую фазу, когда длина скользящей средней больше половины периода цикла.
РЕЖИМ ТРЕНДА
Сюрприз возникает при изменении входа CTMode с «цикла» на «тренд» в процессе работы кода. Такое изменение входа приводит к тому, что блок кода, содержащий теоретический синусоидальный вход данных, игнорируется при работе кода. В этом случае значение цены на момент закрытия не перезаписывается, и мы видим применение индикатора к реальным данным. Пример применения индикатора к ценам закрытия показан на рисунке 2.
Удивительным результатом (для меня) является то, что преобладающим эффектом является то, что величина разрыва между самой красной и самой желтой линиями отражает силу тренда. Когда красная линия находится сверху, тренд восходящий. Когда красная линия находится внизу, тренд нисходящий.
Более того, высокочастотные тильды у всех индикаторов, как правило, почти одинаковы. Это объясняется тем, что, когда берется разница между ценой и ее средним значением, все линии индикатора имеют схожее высокочастотное содержание.
Таким образом, идея заключается в том, чтобы показать тренд, взяв разницу двух осцилляторов. При взятии разности высокочастотные компоненты аннулируются. Если разность длин двух скользящих средних равна половине периода доминирующего цикла, то результирующая будет точно в фазе с входной ценой. Вы можете убедиться в этом, изменив длину второй скользящей средней при построении зеленой линии на 20. Таким образом, разница между длиной двух скользящих средних составит 15, то есть ровно половину длины 30-барного цикла. В результате зеленая линия перекрывается голубой, показывая, что они находятся в точной фазе.
Взять разность двух индикаторов-осцилляторов математически то же самое, что взять разность двух скользящих средних, потому что ценовой член в каждом осцилляторе отменяется.
«УМНЫЙ» MACD
Вот и все. Несмотря на запутанный процесс выведения, индикатор MAD (разница скользящих средних), по сути, представляет собой разность двух простых скользящих средних, длина усреднения которых отличается примерно на половину периода доминирующего цикла в данных. Индикатор становится более гладким по мере увеличения длины более короткой скользящей средней. Длина более длинной скользящей средней должна быть равна длине более короткой плюс половина периода доминирующего цикла в данных. Если доминирующий цикл неизвестен, просто сделайте длину более длинной скользящей средней вдвое больше длины более короткой.
Как различие скользящих средних, индикатор MAD — это «умный» MACD, потому что есть обоснование для установления длины скользящих средних. Кроме того, простые скользящие средние имеют линейную фазовую характеристику, поэтому разность скользящих средних избавляет от необходимости в третьей сглаживающей средней.
Код индикатора MAD приведен на вкладке «Индикатор MAD (Moving Average Difference)». Для удобства индикатор строится в процентах от цены закрытия. Нормализующим членом является среднее значение, чтобы сделать индикатор как можно более гладким.
Пример индикатора 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.
———————————————————
Оставьте первый комментарий