Возможности Мастера MQL5, которые вам нужно знать (Часть 75): Использование Awesome Oscillator и конвертов
Введение
Awesome Oscillator с каналом конвертов — еще одна пара индикаторов, где мы объединяем следование за трендом с определением уровней поддержки/сопротивления. Мы снова рассматриваем 10 возможных сигнальных паттернов, которые можно получить из этой пары, и проводим оценочные тесты пары USDJPY на 30-минутном таймфрейме за 2023 год, а форвард-тесты — за 2024 год. Прежде чем перейти к анализу сигнальных паттернов, давайте рассмотрим основные определения каждого из этих индикаторов, начиная с Awesome Oscillator (AO). Осциллятор был разработан Биллом Уильямсом как трендовый индикатор, сравнивающий краткосрочные и долгосрочные средние значения срединной цены актива.
Индикатор отображается в виде гистограммы и, помимо помощи в определении направления тренда и сигналов разворота, может также быть полезен для выявления медвежьих/бычьих дивергенций, двойных пиков и пересечений нулевой линии. Классическая формула выглядит так:
![]()
где:
- AOt = значение AO в момент времени t
- Mt=(Ht+Lt)/2 = средняя (медианная) цена в момент времени t
- Ht = максимальная цена в момент времени t
- Lt = минимальная цена в момент времени t
- SMA5(Mt) = 5-периодная простая скользящая средняя средней цены
- SMA34(Mt) = 34-периодная простая скользящая средняя средней цены
Бычий сигнал для этого индикатора обычно возникает, когда AO пересекает нулевую линию снизу вверх, что означает, что краткосрочный импульс превышает долгосрочный. Медвежий сигнал возникает, когда AO пересекает нулевую линию и опускается ниже нее. Индикатор также можно использовать в стратегии "двойных пиков", при которой два пика выше или ниже нулевой линии (последний ближе к нулю, чем первый), могут предвещать изменение направления и, следовательно, новый сигнал. Индикатор может показать отличные результаты на трендовых рынках, а также выполнять второстепенную роль подтверждения импульса.
Второй индикатор, канал конвертов, накладывает две линии, выше и ниже скользящей средней цены, с отклонением в процентах. Образуются две линии (полосы) - верхняя и нижняя. Индикатор позволяет точно определить уровни перекупленности/перепроданности цены актива, а также границы волатильности. Он эффективен на рынках с боковым движением цены, в отличие от упомянутой выше AO, которая хорошо работает на рынках с трендом. Это обычно означает, что он может хорошо работать со стратегиями возврата к среднему. Формула выглядит следующим образом:

где:
- MAt = скользящая средняя (обычно SMA или EMA) в момент времени t
- P = процентное отклонение (например, 2%)
- Upper Band = верхняя граница канала
- Lower Band = нижняя граница канала
Индикатор конверта используется, когда цена касается верхней полосы, указывая на перекупленность, или когда цена соприкасается с нижней полосой, что свидетельствует о перепроданности. Использование подтверждений, особенно на рынках с сильным трендом, может иметь первостепенное значение, поскольку цена может не вернуться к среднему значению, продолжив тренд. Конверты динамичны: они расширяются на волатильных рынках и сужаются при замедлении. Они часто используются в паре с другими индикаторами, такими как RSI, MACD или индикаторы объема, для проверки сигналов, поэтому наше сочетание с AO не является чем-то необычным.
К другим возможным синергетическим эффектам, которые могут быть получены в результате такого сочетания, относится уменьшение запаздывания по сравнению с трендовыми сигналами. Сигналы, основанные на анализе конверта, всегда предвосхищают события, в отличие от чисто трендовых стратегий, которые полагаются на сигналы импульса. Помимо возможности совершать сделки с возвратом к среднему значению, как уже говорилось выше, они не только хорошо работают в условиях нестабильности и ограниченного диапазона, но и хорошо умеют использовать дивергенции импульса в виде предупреждений о развороте на границах конверта.
Ложный прорыв конверта при экстремальном AO
Наш начальный паттерн — это классический ложный сигнал прорыва, который подтверждается экстремальным значением AO. Бычий сценарий, который по сути является ложным медвежьим прорывом, возникает, когда цена на короткое время опускается ниже нижнего конверта, а затем резко возвращается внутрь канала. В таких случаях AO отражает ситуацию перепроданности. Иными словами, продавцы выталкивают цену за пределы уровня поддержки, но не могут ее удержать, что свидетельствует об истощении. Часто в этот момент AO опускается ниже нуля, что является признаком медвежьего импульса, и обычно в этот момент формируется локальная впадина. Например, гистограмма могла быть красной и медленно уменьшаться в размере, или вы могли видеть небольшую бычью дивергенцию в AO с ложным пробоем. Такое совпадение указывает на то, что нисходящий импульс ослабевает, поскольку цена достигла экстремального уровня. Реализуем паттерн на MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_0(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X()) > 0.0 && AO(X() + 1) < 0.0 && Close(X() + 2) > Envelopes_Lo(X() + 2) && Close(X() + 1) <= Envelopes_Lo(X() + 1) && Close(X()) > Envelopes_Lo(X()) //m_symbol.Bid() ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X()) < 0.0 && AO(X() + 1) > 0.0 && Close(X() + 2) < Envelopes_Up(X() + 2) && Close(X() + 1) >= Envelopes_Up(X() + 1) && Close(X()) < Envelopes_Up(X()) ) { return(true); } return(false); }
Аналогичный медвежий ложный пробой происходит на верхней полосе, где цена резко поднимается выше верхнего края, создавая ложный бычий прорыв, а затем отступает обратно ниже него. Значение AO будет выше нуля, что может указывать на скругление вершины или падение зеленых баров. Это свидетельствует об ослаблении покупательной способности. В своей основе эти ложные сигналы представляют собой сигналы возврата к среднему значению. Когда цена пробивает полосу конверта, а затем возвращается внутрь, это часто означает отказ от попытки прорыва. Конверты определяют ожидаемый диапазон цен, так что быстрый возврат внутрь всегда означает, что переход за пределы был ловушкой для припозднившихся покупателей или продавцов. Роль AO заключается в подтверждении того, что тренд на самом деле не способствовал прорыву.
Чрезвычайно низкий уровень AO или нисходящая красная гистограмма во время ложного пробоя вниз означают перепроданность и истощение сил продавцов. Это повышает вероятность бычьего разворота. И наоборот, чрезвычайно высокий показатель AO или убывающая зеленая гистограмма при ложном прорыве вверх указывают на перекупленность. Это означает, что силы покупателей на исходе.
Добавление фильтра AO повышает надежность таких ложных срабатываний или ложных пробоев. Это не только повышает вероятность подлинности сделок, учитывая входы в рынок на экстремальных уровнях, когда цена снова входит в полосы, но и обеспечивает благоприятное соотношение риска и прибыли. Это происходит потому, что вход в сделку осуществляется на крайних значениях или вблизи них, что позволяет размещать стоп-лоссы чуть дальше недавних максимумов/минимумов колебаний, то есть непосредственно за пределами конверта. Тестирование паттерна на паре USDJPY на 30-минутном временном интервале за 2 года, из которых в ходе обучения использовался только один период — 2023 год, — дает нам следующий отчет:

По всей видимости, наш паттерн способен поддерживать положительную или практически стабильную динамику, что выглядит многообещающе, хотя и требует дальнейшего тестирования.
Устойчивый прорыв с подтверждением импульса AO
Во многих аспектах паттерн 1 является противоположностью ложного прорыва. Он позволяет определить, когда прорыв за пределы конверта является подлинным и, вероятно, получит дальнейшее развитие. Это достигается за счет необходимости обеспечения сильного импульса со стороны АО. Бычий сигнал срабатывает, когда цена закрывается выше верхней полосы конверта как минимум в течение двух последовательных свечей, и AO демонстрирует высокий бычий импульс. Это проявляется в регистрации большого положительного значения или нахождении в состоянии перекупленности относительно недавнего диапазона. На практике, если два последовательных бара закрываются выше верхних конвертов, это указывает на мощный восходящий импульс, сумевший преодолеть сопротивление.
Если при этом AO значительно превышает ноль, возможно, достигая многопериодных максимумов или оставаясь в плюсе на повышенных уровнях, это подтверждает сильное давление со стороны покупателей. Это сигнал продолжения тренда, указывающий на то, что тренд все еще в силе. В MQL5 мы реализуем паттерн 1 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_1(ENUM_POSITION_TYPE T) { vector _last = AO_Last3(X()); if ( T == POSITION_TYPE_BUY && _last[0] < 0.0 && _last[2] < 0.0 && _last[0] > _last[2] && Close(X() + 2) > Envelopes_Mid(X() + 2) && Close(X() + 1) <= Envelopes_Mid(X() + 1) && Close(X()) > Envelopes_Mid(X()) ) { return(true); } else if ( T == POSITION_TYPE_SELL && _last[0] > 0.0 && _last[2] > 0.0 && _last[0] < _last[2] && Close(X() + 2) < Envelopes_Mid(X() + 2) && Close(X() + 1) >= Envelopes_Mid(X() + 1) && Close(X()) < Envelopes_Mid(X()) ) { return(true); } return(false); }
Медвежьим сигналом является прорыв вниз. Мы наблюдаем два или более последовательных закрытия ниже нижнего конверта, при этом AO оказывается глубоко отрицательным в результате нисходящего импульса. Это свидетельствует о реальном прорыве с потенциалом дальнейшего развития событий. Этот паттерн хорошо работает для рынков с трендами. В отличие от паттерна 0, где мы предполагали, что конверт будет содержать цену, в данном случае цена на некоторое время выходит за пределы конверта, сигнализируя о резком увеличении волатильности в направлении тренда. Конверт можно рассматривать как динамический канал — когда цена может выходить за его пределы на протяжении нескольких баров. Это часто свидетельствует о том, что предыдущее боковое движение уступило место тренду.
Таким образом, AO выступает в роли фильтра подтверждения. Например, если цена дважды закрывается выше верхней полосы, но AO лишь немного выше нуля, прорыв может оказаться слабым и ложным. Однако, если AO останется, скажем, значительно выше своего медианного значения и будет демонстрировать последовательные высокие зеленые бары (признак ускорения импульса), это подтвердит предположение о прорыве. Тестирование паттерна 1 в условиях, аналогичных паттерну 0, дает впечатляющие результаты с неплохим движением вперед, как показано ниже:

Паттерн 1 показал одни из лучших результатов при форвард-тестировании. Ниже представлен графический вид паттерна для короткой позиции:

Дивергенция AO в точке поддержки/сопротивления конвертов
Наш третий паттерн (паттерн 2) использует один из самых мощных сигналов разворота в техническом анализе. Бычья или медвежья дивергенция между ценой и осциллятором, возникающая у границ конверта. Бычья дивергенция формируется, когда цена формирует более низкий минимум, который касается или слегка пробивает нижний конверт, указывая на тестирование уровня поддержки, и одновременно с этим AO формирует более высокий минимум, при этом его впадина на гистограмме на втором нисходящем движении оказывается более пологой, чем на первом. Иными словами, рынок будет стремиться к новому ценовому минимуму, но AO не сможет достичь нового минимума импульса. Это классический признак того, что сила, направленная вниз, ослабевает.
В этом сценарии нижняя полоса конверта служит сильной зоной поддержки, совпадающей с дивергенцией, что подтверждает версию о развороте тренда. Реализуем этот паттерн в MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_2(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X() + 2) > AO(X() + 1) && AO(X() + 1) < AO(X()) && Close(X() + 2) > Envelopes_Lo(X() + 2) && Close(X() + 1) <= Envelopes_Lo(X() + 1) && Close(X()) > Envelopes_Lo(X()) ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X() + 2) < AO(X() + 1) && AO(X() + 1) > AO(X()) && Close(X() + 2) < Envelopes_Up(X() + 2) && Close(X() + 1) >= Envelopes_Up(X() + 1) && Close(X()) < Envelopes_Up(X()) ) { return(true); } return(false); }
Вариант медвежьей дивергенции является зеркальным отражением. Цена формирует более высокий максимум на уровне или чуть выше верхней границы (тестируя ключевое сопротивление), но AO показывает более низкий максимум на пиках своей гистограммы. Это говорит нам о том, что, хотя цена и достигла нового максимума, покупательский импульс во второй раз был слабее. Это указывает на вероятное достижение вершины и разворот. Паттерны дивергенции формируются на основе прогнозных изменений тренда. Требуя, чтобы ценовые экстремумы происходили вблизи полос конверта, мы в конечном итоге сосредотачиваемся на дивергенциях на логических уровнях поддержки/сопротивления. Как правило, это делает их более сильнодействующими. Например, бычья дивергенция, возникшая прямо на нижнем пределе, может означать финальный толчок нисходящего движения перед значительным отскоком.
Логика этого паттерна интуитивно понятна. Конверт указывает на то, что цена находится в зоне перепроданности, а индикатор AO говорит о том, что относительный импульс уже не такой медвежий, как это следует из динамики цен. Иными словами, медведи опустили цену до нового минимума, но более высокий минимум AO показывает, что медведи теряют свою силу. Часто к моменту завершения дивергенции AO может начать двигаться вверх, даже если цена остается неизменной или достигает нового минимума, что является дополнительным свидетельством изменений. Конверт содержит движение цены, и неспособность решительно пробить его свидетельствует о том, что уровень поддержки остался в силе. Судя по результатам тестирования, паттерн, похоже, приносит прибыль, хотя и с некоторой волатильностью. Отчет:

Пересечение AO нулевой линии и отступление к средней линии конверта
Паттерн 3 указывает на возобновление тренда или, другими словами, ситуацию типа "покупай на спаде/продавай на подъеме". Он объединяет сдвиг импульса через нулевую линию AO с коррекцией цены к ключевой скользящей средней — средней линии конверта. В бычьем варианте Awesome Oscillator пересекает нулевую отметку, переходя из положения ниже нуля в положение выше нуля, сигнализируя о сдвиге импульса от отрицательного к положительному. Покупатели получают преимущество. Примерно в то же время цена, которая находилась в коррекции, находит поддержку на уровне или вблизи средней линии канала, которая является основной скользящей средней канала.
По сути, цена возвращается к своему среднему значению, средней линии, в рамках восходящего тренда, и при этом AO пересекает нулевую отметку, сигнализируя о том, что коррекция, скорее всего, заканчивается и восходящий импульс возобновляется. Таким образом, это дает сигнал "покупай на спаде" на уровне средней линии динамического уровня поддержки. В MQL5 мы реализуем этот паттерн следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_3(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X()) - AO(X() + 1) > AO(X() + 1) - AO(X() + 2) && AO(X() + 1) > AO(X() + 2) && AO(X() + 2) > 0.0 && Close(X() + 1) < Envelopes_Up(X() + 1) && Close(X()) > Envelopes_Up(X()) ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X() + 1) - AO(X()) > AO(X() + 2) - AO(X() + 1) && AO(X() + 2) > AO(X() + 1) && AO(X() + 2) < 0.0 && Close(X() + 1) > Envelopes_Lo(X() + 1) && Close(X()) < Envelopes_Lo(X()) ) { return(true); } return(false); }
В условиях медвежьего тренда AO пересекает нулевую отметку ниже нуля, поскольку импульс и тренды становятся медвежьими. Это происходит как раз в тот момент, когда цена поднимается внутрь, к средней линии конверта, снизу вверх. Срединная линия служит динамическим сопротивлением. Это предполагает возможность открытия короткой позиции на этапе роста, происходящего в нисходящем тренде. То есть продавать следует при отскоке от среднего значения. Таким образом, мы фиксируем классические случаи следования за трендом, используя этот паттерн. Вход осуществляется в направлении более крупного тренда после незначительного движения против тренда.
В условиях установившегося тренда цена обычно колеблется вокруг этой скользящей средней — взлетая выше нее в восходящем тренде, а затем снижаясь обратно к ней и так далее. Когда цена откатывается к восходящей средней линии и удерживается на ней, это часто является хорошей зоной входа для дальнейшего развития тренда. Между тем, нулевая линия AO служит четким разделителем между бычьим и медвежьим импульсом.
Таким образом, в конкретной ситуации рынок может находиться в восходящем движении, при этом цена, как правило, будет выше средней линии, а AO — выше нуля. Затем произойдет небольшая коррекция, и AO опустится ниже нуля, что укажет на небольшой медвежий импульс, а также цена опустится выше средней линии и коснется ее. Если и когда AO снова пересечет нулевую отметку, это будет свидетельствовать о том, что импульс перестраивается в соответствии с преобладающим трендом, и послужит сигналом для повторного входа. Тестирование паттерна, как и в случае с тремя предыдущими, также показывает успешное форвард-тестирование. Отчет:

Сжатие волатильности и тенденция к прорыву AO
Паттерн 4 использует сокращение волатильности внутри канала конвертов. Часто называемый сжатием, он предшествует прорыву, а индикатор AO указывает на вероятное направление прорыва. При таком паттерне полосы конверта существенно сужаются, что предвещает период низкой волатильности или консолидации. В этом контексте мы наблюдаем, как верхняя и нижняя полосы почти сближаются или просто выравниваются. Это также указывает на период затишья на рынке, когда ценовые диапазоны сужаются. При сжатии отслеживается постепенное изменение или смещение AO. Это важно, потому что AO может оставаться вблизи нулевой линии, медленно поднимаясь от уровня чуть ниже нуля в сторону бычьего тренда, что может указывать на долгосрочную тенденцию, или наоборот.
В бычьей ситуации вы можете наблюдать колебания AO в небольшом диапазоне, поскольку цена находится в пределах заданного диапазона, но даже в таких случаях гистограмма AO часто имеет тенденцию к дальнейшему росту. Это видно по тому, что в зоне AO короткие зеленые бары встречаются чаще, чем красные. Такое постепенное нарастание импульса предполагает, что если волатильность возрастет, то в случае сжатия прорыв может произойти в сторону роста. Реализация на MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_4(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X() + 2) > AO(X() + 1) && AO(X() + 1) < AO(X()) && AO(X() + 1) > 0.0 && Close(X() + 2) <= Envelopes_Mid(X() + 2) && Close(X() + 2) >= Envelopes_Lo(X() + 2) && Close(X() + 1) <= Envelopes_Mid(X() + 1) && Close(X() + 1) >= Envelopes_Lo(X() + 1) && Close(X()) <= Envelopes_Mid(X()) && Close(X()) >= Envelopes_Lo(X()) ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X() + 2) > AO(X() + 1) && AO(X() + 1) < AO(X()) && AO(X() + 1) > 0.0 && Close(X() + 2) >= Envelopes_Mid(X() + 2) && Close(X() + 2) <= Envelopes_Up(X() + 2) && Close(X() + 1) >= Envelopes_Mid(X() + 1) && Close(X() + 1) <= Envelopes_Up(X() + 1) && Close(X()) >= Envelopes_Mid(X()) && Close(X()) <= Envelopes_Up(X()) ) { return(true); } return(false); }
Аналогично, медвежий тренд с последующим сжатием также приведет к постепенному снижению AO между небольшими колебаниями. Это может проявляться в виде небольшой серии более низких максимумов на гистограмме, близких к нулю, что указывает на то, что путь наименьшего сопротивления лежит вниз после прорыва. Паттерн похож на знаменитый метод сжатия полос Боллинджера, разница лишь в том, что мы используем конверты с AO.
Сужение обычно означает, что скользящая средняя не сильно смещается, и недавние максимумы/минимумы цен не сильно от нее отклоняются — это классическая консолидация. Сужение полос огибающей служит визуальным сигналом, который легко заметить и, по сути, количественно оценить. Например, измерение процентного расстояния между полосами относительно среднего значения может дать нам определенный показатель.
Таким образом, мы получаем ясность, когда паттерн "включен". Однако периоды низкой волатильности часто сопровождаются снижением внимания со стороны многих трейдеров. Таким образом, бдительность в это время в отношении смещения AO может потенциально дать вам возможность "опередить толпу", которая обычно реагирует, как только прорыв становится очевидным. Результаты форвард-тестирования сомнительны:

Экстремальный импульс AO с расширяющимся конвертом
Паттерн 5 фокусируется на скрытых мощных трендах, где импульс находится на экстремальном уровне. Это явление характеризуется тем, что значение AO остается очень высоким или очень низким в течение длительного периода времени. Это может служить признаком постоянного давления со стороны покупателей или продавцов. В это время конверты также начинают расширяться и иметь более крутой наклон. Это подтверждает сильное направленное движение.
В бычьем сигнале для паттерна 5 AO остается выше нулевой отметки на повышенном уровне. Обычно это происходит выше недавних пиков, то есть ограничивается положительной зоной. На графике это выглядит как полностью зеленый возвышающийся AO. Одновременно с этим верхняя полоса огибающей будет резко подниматься вверх. На графике может показаться, что каждый новый ценовой бар сдвигает верхнюю границу вверх, что означает, что диапазон цен корректируется в соответствии с повышением цен.
В некоторых вариантах реализации этого паттерна "расширение конверта" может означать, что как только отслеживание конверта начнет использовать процентные измерения, расстояние между полосами и ценой увеличится, даже если процентное значение останется относительно постоянным. Визуально важно обратить внимание на то, что канал решительно направлен вверх, а не имеет плоскую форму. В этой ситуации, когда AO находится выше заданного порогового значения, а диапазон значений направлен вверх, мы получаем сигнал о продолжении восходящего движения. Тренд будет иметь сильное развитие и, вероятно, продолжит подталкивать цены вверх. Реализуем паттерн на MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_5(ENUM_POSITION_TYPE T) { vector _last = AO_Last3(X()); if ( T == POSITION_TYPE_BUY && _last[0] < 0.0 && _last[2] < 0.0 && _last[0] > _last[2] && Low(X()) < Low(X() + 1) && Envelopes_Up(X() + 1) - Envelopes_Lo(X() + 1) > Envelopes_Up(X()) - Envelopes_Lo(X()) ) { return(true); } else if ( T == POSITION_TYPE_SELL && _last[0] > 0.0 && _last[2] > 0.0 && _last[0] < _last[2] && High(X()) > High(X() + 1) && Envelopes_Up(X() + 1) - Envelopes_Lo(X() + 1) > Envelopes_Up(X()) - Envelopes_Lo(X()) ) { return(true); } return(false); }
Медвежий тренд подтверждается, когда AO остается глубоко отрицательным, когда на гистограмме отчетливо видны несколько красных полос, и они находятся достаточно ниже нулевой отметки. В сочетании с этим, конверт значительно смещается вниз, что означает наличие устойчивого импульса продаж для продолжения нисходящего движения. Паттерн, по сути, указывает на моменты, когда рынок находится в экстремальном тренде — например, во время стремительного роста или падения. Поскольку верхняя полоса конверта постоянно достигает новых максимумов, а нижняя полоса следует за ней, эту ситуацию можно рассматривать как "цена, движущаяся вдоль полосы".
В ряде стратегий считается, что рынок находится в тренде, когда цена приближается к верхней границе Боллинджера или, в данном случае, к конвертам, однако нам необходимо, чтобы AO подтвердил необычайный импульс. На практике паттерн 5 может появиться после некоторой консолидации рынка, возможно, после паттерна 4 или паттерна 1. Паттерн показал прибыль при форвард-тестировании:

Двойное дно/вершина с двойным пиком AO
Наш седьмой паттерн, паттерн-6, объединяет двойное дно или двойную вершину на границе конверта с новым паттерном AO, обычно называемым двойным пиком. Для построения бычьего паттерна представьте себе цену, которая снижается, находит поддержку на нижнем уровне, отскакивает, а затем повторно тестирует нижнюю полосу, формируя двойное дно W-образной формы. Два минимума находились бы примерно на одном уровне в нижней границе конверта, в зоне поддержки, что указывает на то, что она удержалась дважды. В ходе этого процесса AO одновременно сформирует бычий двойной пик ниже своей нулевой границы.
В форме кривой AO вторая впадина будет выше первой, то есть ближе к нулю. Что еще более важно, Ao все равно остается ниже нуля и не пересекает границы между двумя минимумами. Считается, что двойные пики отражают формирование основания бычьего импульса на фоне снижения интенсивности продаж. Реализация потенциального бычьего разворота на MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_6(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X() + 2) > 0.0 && AO(X() + 1) < 0.0 && AO(X()) > 0.0 && Close(X() + 2) > Envelopes_Lo(X() + 2) && Close(X() + 1) <= Envelopes_Lo(X() + 1) && Close(X()) > Envelopes_Lo(X()) ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X() + 2) < 0.0 && AO(X() + 1) > 0.0 && AO(X()) < 0.0 && Close(X() + 2) < Envelopes_Up(X() + 2) && Close(X() + 1) >= Envelopes_Up(X() + 1) && Close(X()) < Envelopes_Up(X()) ) { return(true); } return(false); }
Медвежий эквивалент этой модели — двойная вершина, М-образная форма, в верхней части конверта. Цена достигает верхней границы, откатывается, а затем тестирует ее, формируя второй, почти идентичный, максимум. В то же время, AO будет демонстрировать медвежий двойной пик выше нуля, без пересечения между пиками, причем второй пик будет ниже первого. Это свидетельствует об ослаблении покупательского давления и создает предпосылки для падения цены.
В основе паттерна 6 лежит сочетание классических графических паттернов с подтверждением осциллятора. Наличие двойного дна на установленном уровне поддержки, например, на нижнем уровне конверта, указывает на то, что уровень "защищен". Сам по себе AO-Twin-Peaks (двойные пики AO) — это хорошо известный сигнал разворота Билла Уильямса. Конверт показывает, что минимумы/максимумы наблюдались в экстремальном ценовом диапазоне, что подтверждает надежность уровней поддержки/сопротивления и указывает на то, что они являются точкой отклонения при движении в ограниченном диапазоне.
Как правило, вход в сделку происходит при пробое линии шеи двойного дна, пика между двумя минимумами или после второго дна, когда, например, индикатор AO становится зеленым. Стоп-лосс, естественно, располагается чуть ниже минимумов двойного дна для длинных позиций или чуть выше максимумов двойной вершины для коротких позиций. Таким образом, локализованный риск невелик по сравнению с потенциальной выгодой, которую можно получить в ходе движения в сторону противоположного конца конвертов. Тестирование паттерна не позволило получить достаточное количество сделок в условиях, аналогичных другим паттернам с использованием символа USDJPY на 30-минутном таймфрейме за тот же двухлетний период. Ограничительные условия входа могут означать, что она лучше всего подходит для еще более коротких таймфреймов. Тем не менее, отчет приведен ниже:

Резкий отскок AO от перепроданности + прорыв конверта
Паттерн 7 выявляет взрывные развороты, которые происходят после периода экстремального импульса в определенном направлении. Это происходит, когда индикатор AO демонстрирует внезапный резкий скачок от состояния глубокой перепроданности к бычьему значению, сопровождающийся резким подъемом цены выше верхней границы конверта. Всё это происходит, когда сигналом является бычий разворот. На практике, такой бычий сценарий будет характеризоваться очень низким уровнем AO как признаком крайне медвежьего импульса после крупных продаж. Затем, через несколько баров, AO пересекает нулевой порог и становится положительным.
Это указывает на резкую смену динамики: продавцы перешли от полного контроля к внезапному краху, проиграв покупателям. В тот же момент цена, которая до этого была значительно занижена, подскочила выше уровня закрытия за пределами канала, сигнализируя о решительном прорыве вверх. Такая ситуация часто возникает в результате выхода важной новости. Реализуем паттерн на MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 7. \ //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_7(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X() + 2) > 0.0 && AO(X() + 1) > AO(X() + 2) && AO(X()) > AO(X() + 1) && Close(X() + 2) <= Envelopes_Lo(X() + 2) && Close(X() + 1) > Envelopes_Lo(X() + 1) && Close(X()) > Close(X() + 1) ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X() + 2) < 0.0 && AO(X() + 1) < AO(X() + 2) && AO(X()) < AO(X() + 1) && Close(X() + 2) >= Envelopes_Up(X() + 2) && Close(X() + 1) < Envelopes_Up(X() + 1) && Close(X()) < Close(X() + 1) ) { return(true); } return(false); }
В медвежьем варианте паттерна AO резко переходит из зоны перекупленности в отрицательную область за короткий период, в то время как цена падает ниже нижней границы конверта. Это инициирует разворот и прорыв вниз. В основе формации лежит V-образный разворот. Это происходит в тот момент, когда рынки, которые демонстрировали сильный тренд или движение в одном направлении, капитулируют и резко меняют направление в противоположную сторону. AO количественно определяет изменение импульса.
Паттерн-7, по сути, предполагает, что предыдущий экстремальный импульс не был устойчивым, а теперь изменился на противоположный в результате воздействия чего-то ощутимого. Без этого триггера мы бы просто стали свидетелями всплеска волатильности в еще не завершившемся резком движении, например, в случае резкой коррекции. Следовательно, контекст имеет очень важное значение. Поэтому следует остерегаться чрезмерно затянувшихся движений или новостных событий. Наш паттерн 7, судя по результатам тестирования, демонстрирует такие же хорошие результаты, как и паттерн 1, при значимом форвард-проходе. Результаты тестирования:

Ниже представлено графическое изображение бычьего сигнала для паттерна 7. Мы указываем эти графические паттерны для лучших моделей с точки зрения результатов форвард-теста, однако, поскольку исходный код советника прилагается, читатель может лучше изучить их на графике после тестирования.
Откат к конверту после прорыва с подтверждением AO
Предпоследний сигнальный паттерн представляет собой стратегию "отката" (throwback) или "коррекции после прорыва" (pullback-after-breakout). Он вступает в игру сразу после сильного прорыва за пределы конвертов, когда цена на мгновение возвращается, чтобы протестировать пробитую полосу конверта. При этом AO остается на экстремальном уровне, что свидетельствует о сохранении доминирующего импульса. В бычьем сценарии это ситуация, когда цена пробила верхний конверт снизу вверх в результате резкого скачка, возможно, из-за тренда или паттернов 1/7. После первоначального всплеска цена немного откатывается назад, и, что особенно важно, минимум этой коррекции остается выше верхней линии конверта. Иными словами, цена не возвращается в зону конверта, а лишь касается верхней полосы, оставаясь чуть выше нее.
Это фактически является возвращением к недавно обретенной поддержке, а именно к верхнему конверту. При этом AO остается бычьим, выше нуля и относительно высоким, поскольку импульс не рассеялся, а лишь приостановился. AO может немного снизиться из-за незначительной коррекции, однако он должен оставаться стабильно положительным. При таких условиях паттерн сигнализирует о входе в восходящий тренд с низким риском, прорыв подтверждается удержанием выше конверта, а AO указывает на бычий импульс. Реализация паттерна на MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 8. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_8(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X() + 2) > 0.0 && AO(X() + 1) > AO(X() + 2) && AO(X()) > AO(X() + 1) && Close(X() + 2) > Envelopes_Up(X() + 2) && Close(X() + 1) > Close(X() + 2) && Close(X()) > Close(X() + 1) ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X() + 2) < 0.0 && AO(X() + 1) < AO(X() + 2) && AO(X()) < AO(X() + 1) && Close(X() + 2) < Envelopes_Lo(X() + 2) && Close(X() + 1) < Close(X() + 2) && Close(X()) < Close(X() + 1) ) { return(true); } return(false); }
Медвежий сценарий предполагает пробой цены ниже нижнего конверта с последующей коррекцией вверх, при этом максимум отскока останется ниже нижней полосы. Таким образом, нижняя полоса действует как сопротивление. Поскольку AO остается отрицательным, сложившаяся ситуация предоставляет возможность для открытия коротких позиций на отскоке с некоторой уверенностью в том, что нисходящий тренд продолжится. Паттерн 8 не прошел форвард-тест. Отчет:

Наклон тренда конверта с базовым сдвигом AO
Финальный паттерн фокусируется на выявлении начала нового устойчивого тренда путем сопоставления четкого изменения наклона конверта с подтверждающим сдвигом базовой линии импульса AO. В бычьем сценарии, ранее плоский канал конверта начнет резко подниматься, сигнализируя о том, что ценовое движение трансформируется в бычье. Это обычно наблюдается на первых максимумах верхней полосы или средней линии. Для наглядности, с каждым новым баром верхняя граница оказывается выше предыдущей на протяжении нескольких баров подряд. Хотя конверт указывает на обнаруженный бычий тренд, AO также поднимается выше своей нулевой отметки и значимо удерживается выше нее.
На практике это означает, что в предыдущем диапазоне AO мог колебаться вокруг нуля или ниже, но теперь он стал явно положительным в результате устойчивого давления со стороны покупателей. Нередко можно увидеть, что значение AO находится выше нуля и остается зеленым на протяжении некоторых баров. В совокупности эти условия создают мощный сигнал к покупке по тренду, поскольку рынок, по всей вероятности, вышел из фазы волатильности/диапазона и теперь находится в упорядоченном восходящем тренде. На языке MQL5 этот паттерн записывается так:
//+------------------------------------------------------------------+ //| Check for Pattern 9. | //+------------------------------------------------------------------+ bool CSignalAO_Envelopes::IsPattern_9(ENUM_POSITION_TYPE T) { if ( T == POSITION_TYPE_BUY && AO(X() + 2) > AO(X() + 1) && AO(X() + 1) > AO(X()) && AO(X()) > 0.0 && Close(X() + 2) > Envelopes_Mid(X() + 2) && Close(X() + 1) <= Envelopes_Mid(X() + 1) && Close(X()) > Envelopes_Mid(X()) ) { return(true); } else if ( T == POSITION_TYPE_SELL && AO(X() + 2) < AO(X() + 1) && AO(X() + 1) < AO(X()) && AO(X()) < 0.0 && Close(X() + 2) < Envelopes_Mid(X() + 2) && Close(X() + 1) >= Envelopes_Mid(X() + 1) && Close(X()) < Envelopes_Mid(X()) ) { return(true); } return(false); }
Медвежьим зеркальным вариантом здесь является нисходящий наклон конверта, при котором нижняя полоса опускается всё ниже от бара к бару. AO одновременно опускается ниже нуля и остается там, что свидетельствует о формировании нового нисходящего тренда. Паттерн не пытается поймать абсолютные вершины или минимумы, как в случае с паттернами 6 и 7. Всё, что он делает, — это пытается выявить едва заметные изменения, переходящие от флета или слабого рынка к тренду. Как и в случае с паттерном 8 тестирование в течение 2-летнего периода на 30-минутном таймфрейме USDJPY не принесло прибыли. Отчет:

Заключение
В этой статье мы рассмотрели еще одну пару индикаторов: Awesome Oscillator и канал конвертов. Наша проверка основана на годичном периоде для обучения/оптимизации и годичном периоде для форвард-тестирования. Как всегда подчеркивалось в этих статьях, период тестирования ограничен, и читателю крайне важно проявить особую осмотрительность и изучить различные типы рынков, прежде чем эти идеи можно будет использовать в реальных условиях. В продолжение этой статьи мы опубликуем еще одну, в которой рассмотрим, можно ли положительно повлиять на паттерны 8 и 9, не прошедшие форвард-тест, с помощью обучения с учителем.
| файл | описание |
|---|---|
| WZ-75.mq5 | Созданный Мастером советник, в заголовок которого включены использованные файлы |
| SignalWZ-75.mqh | Файл класса пользовательского сигнала для сборки в Мастере |
Прикрепленные файлы предназначены для использования в Мастере MQL5 для сборки советника. Новички могут узнать подробности здесь.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/18842
Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.
Данная статья написана пользователем сайта и отражает его личную точку зрения. Компания MetaQuotes Ltd не несет ответственности за достоверность представленной информации, а также за возможные последствия использования описанных решений, стратегий или рекомендаций.
Архитектура системы машинного обучения в MetaTrader 5 (Часть 3): Метод разметки сканированием тренда
Торговые инструменты на MQL5 (Часть 11): Панель корреляционной матрицы (Пирсон, Спирман, Кенделл) с тепловой картой и стандартным режимом
Торговые инструменты MQL5 (Часть 12): Улучшение интерактивности панели корреляционной матрицы
Переосмысливаем классические стратегии (Часть 14): Анализ нескольких стратегий
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования