English Deutsch 日本語
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 52): Осциллятор Accelerator

Возможности Мастера MQL5, которые вам нужно знать (Часть 52): Осциллятор Accelerator

MetaTrader 5Торговые системы |
41 0
Stephen Njuki
Stephen Njuki

Введение

Accelerator Oscillator — еще один индикатор Билла Вильямса, предназначенный для отслеживания импульса, и хотя он распространен и является производным от другого осциллятора, который мы рассматривали в предыдущей статье, мы рассмотрим, как различные модели, демонстрируемые им, можно использовать или даже комбинировать таким образом, чтобы получить преимущество. Индикатор специально предназначен для отслеживания ускорения или замедления импульса, что может быть использовано для подачи сигналов о возможных входах и выходах из торговли. Ускорение отличается от скорости.

Разница между этими двумя понятиями на финансовых рынках наверняка будет иметь нюансы, особенно для трейдеров, работающих вручную в MetaTrader. В то время как скорость указывает на скорость изменения цены, ускорение справедливо подразумевает темп изменения скорости. Мы используем различные индикаторы для правильной количественной оценки каждого показателя в отдельности. Для оценки скорости обычно используют следующие индикаторы: скорость изменения (ROC), MACD, RSI и, вероятно, простую экспоненциальную скользящую среднюю. Для ускорения мы обычно используем полосы ускорения, гистограмму MACD, стохастический осциллятор и нашу тему для этой статьи — осциллятор Accelerator. Этот осциллятор, как уже упоминалось, является производным от осциллятора Awesome, который мы рассматривали в одной из предыдущих статей. Если коротко, его формула была следующей:

 

В случае с Accelerator она будет выглядит так:

Здесь, как и прежде:

  • AO - текущее значения осциллятора Awesome

  • SMA - это простая скользящая средняя

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

Индикатор АО полезен для раннего обнаружения разворотов тренда, поскольку он фокусируется на изменениях импульса перед разворотом цены. Он также универсален для использования на различных рынках, включая форекс, акции и сырьевые товары, и его сравнительно просто интерпретировать, учитывая знакомое визуальное представление в виде гистограммы. Итак, подведем итоги. Практические примеры использования включают определение сигналов входа, где в принципе покупка происходит, когда AC находится выше нулевой линии, а продажа — когда она ниже, а также подтверждение тренда, где AC может работать в тандеме с другими индикаторами, такими как уже рассмотренный Awesome Oscillator или даже скользящие средние для подтверждения рыночных трендов.

Однако, как и в случае со многими другими индикаторами, у него есть свои ограничения. Помимо того, что для подтверждения его сигналов часто требуются дополнительные индикаторы, такие как индикаторы тренда и объема, он имеет тенденцию сильно запаздывать на боковых или нестабильных рынках. Кроме того, АО, как правило, чувствителен к краткосрочным колебаниям цен, что делает его потенциально подверженным большому количеству ложных сигналов. И, наконец, его пересечения нулевой линии зачастую менее надежны, чем у его аналога Awesome Oscillator. Было бы неплохо сравнить и сопоставить его с AO, прежде чем углубляться в паттерны AO.

Поскольку мы уже рассмотрели основные определения каждой формулы, перейдем к их соответствующему назначению и толкованию. Awesome Oscillator (AO) отображает общую рыночную динамику и помогает выявлять тренды и развороты, в то время как AC основывается на AO и помогает отображать скорость изменения динамики, что позволяет лучше оценить, набирает ли динамика темпы или замедляется. Если АС выше нуля и постоянно растет, то импульс ускоряется, если он ниже нуля и уменьшается, то ускоряется медвежий настрой.

Нулевая линия также важна для обоих осцилляторов, как и в случае с АО. Ее пересечение является важным признаком изменения импульса, где любое движение в верхнюю сторону является бычьим, а в нижнюю — медвежьим. Однако для AC нулевая линия часто менее критична, и больше внимания уделяется направлению столбцов гистограммы: растут они или падают. Поскольку это не столь мощный индикатор, как АО как таковой, его часто лучше всего применять для определения положительных, но падающих гистограмм, указывающих на замедление, или отрицательных, но растущих столбцов, указывающих на снижение медвежьего давления. 

Визуально оба параметра часто представляются в виде гистограмм, при этом АО, как правило, имеет более плавные движения, тогда как AC, из-за своей чувствительности к ускорению или замедлению, более подвержен колебаниям. Учитывая это общее настроение в пользу АО, стоит также отметить, что из двух осцилляторов АО часто оказывается отстающим. Это связано с тем, что он опирается на долгосрочные средние значения (SMA-5 и SMA-34), которые сглаживают шум, но делают АО менее чувствительным к краткосрочным изменениям. С другой стороны, AC более чувствителен и отражает изменения импульса раньше, поскольку он фокусируется на скорости изменения AO.

Это делает оба осциллятора пригодными к использованию. АО часто оказывается эффективным средством идентификации тренда, поскольку полагается на пересечения нулевой линии; для идентификации разворота часто используется его двойной пиковый сигнал, а для долгосрочного анализа импульса АО часто идеально подходит для трейдеров, желающих получить более широкое представление об импульсе рынка. С другой стороны, AC ориентирован на: обнаружение ускорения импульса, которое может указывать на более ранний вход/выход, чем AO; выявление краткосрочных сигналов, которые часто служат для подтверждения сигналов вторичного более долгосрочного индикатора, такого как AO, и высокую чувствительность к движению цены, что может быть полезно для некоторых трейдеров, использующих такие стратегии, как скальпинг.

Итак, подводя итог сравнению AO-AC, следует отметить, что AO лучше понимает более широкие тренды и определяет развороты, но реагирует медленнее, в то время как AC подает более быстрые и гибкие сигналы, концентрируясь на ускорении импульса, что делает его идеальным для трейдеров, которым необходимо быстро принимать решения. И как уже утверждалось, оба могут использоваться вместе с АО для определения трендов и AC для выбора времени входа и выхода на основе изменения импульса.

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

Для этой статьи мы тестируем пару GBP USD на 4-часовом таймфрейме за 2023 год. Представленные для каждого паттерна результаты тестирования получены в ходе оптимизационных прогонов и не подвергаются перекрестной проверке на предмет соответствия аргументам, уже представленным в предыдущих статьях. Новые читатели могут найти их в прошлых статьях о паттернах индикаторов. Кроме того, код, прикрепленный внизу, предназначен для сборки с помощью Мастера MQL5. Новички могут найти руководства здесь и здесь.


Пересечение нулевой линии

Наш первый (нулевой) шаблон является базовым и центрируется на нулевой линии. Бычий сигнал наступает, когда AC пересекает нулевую линию снизу вверх, что указывает на переход от замедления к ускорению бычьего импульса. Аналогично, когда AC пересекает нулевую линию сверху вниз, опускаясь ниже нее, это указывает на переход от замедления к ускорению медвежьего импульса. Реализуем паттерн на MQL5 следующим образом:

//+------------------------------------------------------------------+
//| Check for Pattern 0.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_0(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && AC(X() + 1) < 0.0 && AC(X()) > 0.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && AC(X() + 1) > 0.0 && AC(X()) < 0.0)
   {  return(true);
   }
   return(false);
}

В этой статье все наши тесты проводятся на паре GBPUSD на часовом таймфрейме за 2023 год. Если мы протестируем наш собранный мастером советник только с этим шаблоном, нам потребуется присвоить входному параметру для используемых шаблонов значение 1. Благоприятные тестовые запуски с оптимизированными настройками представляют нам следующий отчет:

r0

Ключевые моменты, которые следует учитывать применительно к паттерну 0, заключаются в том, что, как уже подчеркивалось во введении, он не является автономным индикатором. Лучше всего его использовать в паре с другими индикаторами для анализа ценового движения. Более того, даже если он будет использоваться в паре с другим индикатором, подтверждение всегда имеет решающее значение. Всегда лучше распределить сбор сигналов входа/выхода, то есть, если мы получаем пересечение на текущем баре, то сигнал от вторичного индикатора лучше всего считывать на последующих барах. Ложные сигналы неизбежны, как и в случае с большинством индикаторов. Главное, на что следует обращать внимание, — это нестабильные или резкие колебания рынка. Нестабильные рынки, как правило, полны ложных сигналов для этой модели. Однако если рыночные условия являются трендовыми, то трейдеры могут рассчитывать на извлечение выгоды из выигрышной серии (серий).



Последовательные зеленые столбцы выше нуля

Наш второй паттерн (паттерн 1) основан на подсчете цветных столбцов выше или ниже нулевой линии. Если AC показывает два или более последовательных зеленых столбца выше нуля, это можно воспринимать как сильный сигнал бычьего импульса, который предвещает продолжение восходящего тренда. С другой стороны, если ниже нулевой линии появляется более одного столбца, это можно расценивать как восходящий тик медвежьего импульса, а также как потенциальное продолжение нисходящего тренда. Реализуем это в MQL5 следующим образом:

//+------------------------------------------------------------------+
//| Check for Pattern 1.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_1(ENUM_POSITION_TYPE T)
{  int _i = X();
   if(T == POSITION_TYPE_BUY && UpperColor(_i) == clrGreen && UpperColor(_i + 1) == clrGreen && UpperColor(_i + 2) == clrGreen)
   {  return(true);               
   }
   else if(T == POSITION_TYPE_SELL && LowerColor(_i) == clrRed && LowerColor(_i + 1) == clrRed && LowerColor(_i + 2) == clrRed)
   {  return(true);               
   }
   return(false);
}

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

r1



Расхождение между AC и ценой

Паттерн 2 использует дивергенцию, при этом бычий сигнал наблюдается, если цена формирует более низкие минимумы, а AC формирует более высокие минимумы. Напротив, если цена формирует более высокие максимумы, а AC указывает на более низкие максимумы, это часто воспринимается как предвестник разворота вниз. Реализация в MQL5 выглядит так:

//+------------------------------------------------------------------+
//| Check for Pattern 2.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_2(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Low(X() + 3) > Low(X()) && AC(X() + 3) < AC(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && High(X() + 3) < High(X()) && AC(X() + 3) > AC(X()))
   {  return(true);
   }
   return(false);
}

Этот паттерн служит важным сигналом технического анализа с потенциалом выявления разворотов. По сути, дивергенция возникает, когда ценовое действие и AC движутся по разным траекториям, что часто означает, что у демонстрируемого ценового действия есть базовые слабости и, следовательно, разворот неизбежен. Тестирование только с этим паттерном с индексом 4, дает нам следующий отчет:

r2

Как уже упоминалось в отношении паттернов 0 и 1, необходимо сопровождать их подтверждением, изучать, к каким рыночным условиям они лучше всего подходят, опасаться ложных сигналов, отдавая предпочтение более крупным таймфреймам, а также правильно управлять рисками.



Сигнал разворота около нуля

Паттерн-3 с индексом использования (patterns-used) 8 - разворот AC при приближении к его нулевой линии. При таком паттерне бычий разворот происходит, когда AC меняет цвет с красного на зеленый, находясь выше нулевой отметки, но близко к ней, в то время как медвежий разворот, как и ожидалось, происходит при смене цвета с зеленого на красный, находясь ниже нулевой отметки, но близко к ней. Количественная оценка того, насколько близко значение переменного тока к нулю, безусловно, требует точной настройки. 

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

Это связано с тем, что величина часто выступает в качестве показателя силы импульса, а большие значения около нулевой линии часто сигнализируют о существенных разворотах (которые по сути являются продолжением предыдущей тенденции, учитывая большой разрыв с нулем). Таким образом, для сортировки ложных сигналов необходимо значительное пороговое значение, которое отфильтровывает многочисленные развороты или U-образные паттерны, на которые может указывать АО. Правильный размер нулевого зазора АО может также использоваться для точной настройки входа и выхода, если его рассматривать как показатель рыночных настроений, поскольку его расстояние можно использовать в качестве ориентира для расстояния уровня стоп-лосса. Он также информативен в некоторых сравнительных анализах в случаях, когда важно различать стандартные откаты от разворотов, например, при тестировании на истории.

Количественную оценку этого зазора можно осуществить, вероятно, неограниченным числом способов. Для наших целей мы остановимся лишь на нескольких, которые наиболее тесно связаны с самим осциллятором АО. В первую очередь следует рассмотреть абсолютные значения индикатора, например, в зависимости от торгуемой ценной бумаги это значение может быть 0,005, если размер пункта равен 1e-5, или 0,5, если торгуемая ценная бумага — кросс-курс иены. При использовании этого порога будут рассматриваться только те развороты АО, величина которых от нуля больше абсолютного значения.

Еще одной количественной метрикой может быть относительная величина, где текущие значения АО сопоставляются с недавними или историческими средними значениями АО. Такой подход можно рассматривать как адаптивный порог, который меняется в зависимости от рыночных условий. Задаваемый пользователем множитель k может быть применен к историческим средним значениям AO или последним значениям для точной настройки порогового значения. Другим возможным пороговым значением является пороговое значение, основанное на стандартном отклонении. Соответствующая формула:

где

  • mu - среднее значение
  • сигма - стандартное отклонение
  • а n - параметр, оптимизированный пользователем.

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

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

Для наших целей в этой статье мы не будем количественно определять, насколько близко должен быть AC к нулевой границе, поскольку мы просто будем искать любой разворот на 180 градусов, близкий к нулю. Реализуем это в MQL5 следующим образом:

//+------------------------------------------------------------------+
//| Check for Pattern 3.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_3(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && AC(X() + 2) > AC(X() + 1) && AC(X() + 1) > 0.0 && AC(X() + 1) < AC(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && AC(X() + 2) < AC(X() + 1) && AC(X() + 1) < 0.0 && AC(X() + 1) > AC(X()))
   {  return(true);
   }
   return(false);
}

Тестирование только с этим паттерном, где входной параметр для используемых паттернов равен 8, дает нам следующие результаты:

r3

Паттерн-3 по своей сути не является паттерном формирования нового сигнала или паттерном разворота, а скорее паттерном продолжения тренда. Рекомендации по его использованию не сильно отличаются от тех, что мы изложили выше.



Увеличение размеров цветных столбцов

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

Так как эта модель слишком широка, мы реализуем ее в несколько узком смысле, рассматривая только увеличение количества цветных баров на противоположной стороне указанного импульса. Таким образом, для бычьего сигнала мы бы увидели растущее количество зеленых столбцов ниже нулевой линии (часто отмеченных укорачивающимися столбцами). Аналогично, в качестве медвежьего сигнала используется растущее количество укорачивающихся красных столбцов выше нулевой линии, что является признаком усиления медвежьего импульса. Реализуем это в MQL5 следующим образом:

//+------------------------------------------------------------------+
//| Check for Pattern 4.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_4(ENUM_POSITION_TYPE T)
{  int _i = X();
   if(T == POSITION_TYPE_BUY && LowerColor(_i) == clrGreen && LowerColor(_i + 1) == clrGreen && LowerColor(_i + 2) == clrGreen)
   {  return(true);               
   }
   else if(T == POSITION_TYPE_SELL && UpperColor(_i) == clrRed && UpperColor(_i + 1) == clrRed && UpperColor(_i + 2) == clrRed)
   {  return(true);               
   }
   return(false);
}

Главное, что следует учитывать при рассмотрении этой модели, — она может во многом совпадать с моделью дивергенции, которую мы уже рассмотрели выше. Если формируются более высокие минимумы зеленых столбцов ниже нулевой линии, а ценовое движение также сигнализирует о снижении до выравнивающихся минимумов, то это может служить дополнительным подтверждением бычьего сигнала с потенциальным расхождением цены в сторону повышения. И наоборот, более низкие максимумы красных столбцов выше нулевой линии в сочетании с ценовым движением, демонстрирующим более высокие или выравнивающиеся максимумы, могут сигнализировать о возможном откате цены. Как и в случае с бычьим сигналом, здесь не потребуется практически никакого дополнительного подтверждения. Результаты тестирования только этого паттерна (входной параметр - 16), представляют нам следующий отчет:

r4

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



Пики и впадины AC

Шестой паттерн (паттерн-5) сочетает в себе действие осциллятора AC с паттернами ценового действия, при этом акцент делается на фрактальных точках. Сигнал бычьего пика определяется, когда за пиком цены следует увеличение размера зеленого столбца осциллятора AC, когда осциллятор находится выше нулевой линии. Это говорит о продолжении бычьего импульса. Аналогично сигналом медвежьего провала является ситуация, когда за фракталом впадины в ценовом движении следует более низкий красный столбец AC, который будет ниже нулевой линии. Это также предполагает продолжение медвежьего тренда. Реализация в MQL5-коде:

//+------------------------------------------------------------------+
//| Check for Pattern 5.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_5(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Close(X() + 2) < Close(X() + 1) && Close(X() + 1) > Close(X()) && UpperColor(X()) == clrGreen && AC(X()) > 0.0)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Close(X() + 2) > Close(X() + 1) && Close(X() + 1) < Close(X()) && LowerColor(X()) == clrRed && AC(X()) < 0.0)
   {  return(true);
   }
   return(false);
}

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

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

Наконец, дивергенция может подпадать под модель 5, поскольку здесь рассматриваются пики и впадины, и они могут не совпадать, как определено в модели, а скорее образовывать, например, пару "впадина-пик", что может указывать на дивергенцию. Тестирование только с этим паттерном, где входной параметр для используемых паттернов равен 32, дает нам следующие результаты:

r5



Изменение цвета после сильного тренда

Наш седьмой паттерн (паттерн-6) образуется в результате изменения цвета осциллятора AC. И поскольку это изменение существенно в зависимости от того, где оно произошло относительно нулевой линии, оно может быть слишком широким, как мы видели в случае с паттерном 4. Поэтому мы ограничиваем наши определения каждого сигнала определенной стороной нулевой линии. Таким образом, истощение бычьего импульса будет выражаться в изменении цвета столбцов AC выше нулевой линии с зеленого на красный, что будет указывать на медвежий сигнал. Аналогичным образом, изменение цвета столбцов с красного на зеленый при нахождении ниже нулевой линии будет означать истощение медвежьего импульса и, следовательно, намекать на неизбежный бычий откат. В MQL5 паттерн реализуется следующим образом:

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_6(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && ((UpperColor(X() + 1) == clrRed && UpperColor(X()) == clrGreen) || (LowerColor(X() + 1) == clrRed && LowerColor(X()) == clrGreen)))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && ((UpperColor(X() + 1) == clrGreen && UpperColor(X()) == clrRed) || (LowerColor(X() + 1) == clrGreen && LowerColor(X()) == clrRed)))
   {  return(true);
   }
   return(false);
}

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

r6



Плоский AC возле экстремальных уровней

Наш восьмой и последний паттерн (паттерн-7) получен в результате наблюдения за осциллятором AC, когда он близок к своим экстремальным уровням. При использовании этой модели возможность для роста появляется, если AC становится плоским около существенного минимума, с преобладанием красных столбцов, а затем начинает формировать зеленые столбцы. И наоборот, вероятность падения возникает, если AC становится плоским около значимого максимума, с большим количеством зеленых столбцов, а затем появляется несколько красных столбцов. Для бычьего сигнала AC должен быть ниже нулевой линии, тогда как для медвежьего он должен быть выше нулевой линии. Реализация паттерна в MQL5:

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             |
//+------------------------------------------------------------------+
bool CSignalAccelerator::IsPattern_7(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && LowerColor(X() + 3) == clrRed && LowerColor(X() + 2) == clrRed && LowerColor(X() + 1) == clrRed && LowerColor(X()) == clrGreen)
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && UpperColor(X() + 3) == clrGreen && UpperColor(X() + 2) == clrGreen && UpperColor(X() + 1) == clrGreen && UpperColor(X()) == clrRed)
   {  return(true);
   }
   return(false);
}

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

r7



Все паттерны

При оптимизационном прогоне, направленном на установление идеальной комбинации паттернов и оптмизиацию индексов входных параметров от 0 до 255, наиболее благоприятные результаты выглядят так:

rll



Заключение

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

Название файла Описание
SignalWZ_52.mqh Файл класса пользовательских сигналов
WZ_52 Собранный в Мастере советник, заголовок которого отображает используемые файлы.

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/16781

Прикрепленные файлы |
SignalWZ_52.mqh (17.46 KB)
wz_52.mq5 (7.65 KB)
Арбитражная алготорговля на теории графов Арбитражная алготорговля на теории графов
В рамках статьи треугольный арбитраж представляется как задача поиска циклов в ориентированном графе, где вершины — валюты, рёбра — валютные пары с весами-курсами. Прибыльный цикл: произведение весов >1. Созданные нами алгоритмы Floyd-Warshall и DFS находят оптимальные пути обмена валют, возвращающиеся в исходную точку с прибылью.
Нейросети в трейдинге: Единый взгляд на пространство и время (Global-Local Attention) Нейросети в трейдинге: Единый взгляд на пространство и время (Global-Local Attention)
Продолжаем работу по реализации подходов, предложенных авторами фреймворка Extralonger. На этот раз сосредоточимся на построении модуля Global-Local Spatial Attention средствами MQL5, рассматривая как его структуру, так и практическую интеграцию в общий вычислительный процесс.
Особенности написания экспертов Особенности написания экспертов
Написание и тестирование экспертов в торговой системе MetaTrader 4.
От новичка до эксперта: Создание анимированного советника для новостей в MQL5 (VI) — Стратегия отложенных ордеров для торговли на новостях От новичка до эксперта: Создание анимированного советника для новостей в MQL5 (VI) — Стратегия отложенных ордеров для торговли на новостях
В настоящей статье мы сосредоточим внимание на интеграции логики исполнения ордеров, основанной на новостях, что позволит советнику действовать, а не просто информировать. Присоединяйтесь к нам, и мы рассмотрим, как реализовать автоматическое исполнение сделок на MQL5 и превратить советник «Заголовки новостей» в полностью адаптивную торговую систему. Советники предлагают значительные преимущества разработчикам алгоритмов благодаря широкому спектру поддерживаемых ими функций. До сих пор мы сосредоточились на создании инструмента для представления новостей и событий календаря, оснащенного встроенными полосами аналитики с использованием ИИ и техническими индикаторами.