Возможности Мастера MQL5, которые вам нужно знать (Часть 71): Использование паттернов MACD и OBV
Введение
Осциллятор MACD используется в паре с осциллятором OBV. Эти два метода дополняют друг друга, поскольку один отслеживает тренд, а другой измеряет объем. Мы проводим тестирование, используя валютную пару GBPJPY, за 2023 году, при этом 2024 год служит окном для форвард-тестирования. Наше обучение или оптимизация за 2023 год, помимо поиска идеального веса сигнального паттерна, также направлена на определение ценовых разрывов при входе и целевых уровней стоп-лосса. Всё это происходит без использования стоп-лосса, то есть мы полагаемся исключительно на весовой коэффициент порогового значения закрытия пользовательского класса сигналов для закрытия любых позиций, которые больше не соответствуют открытому тезису.
Представленные ниже отчеты о тестировании в основном показывают прибыль, но это не обязательно означает успешные дальнейшие действия, поскольку тестовый период также включает период оптимизации работы советников. Мы придерживались этого подхода на протяжении всей серии тестов и планируем продолжать его использовать. Поэтому читателям следует учитывать это при интерпретации результатов теста, помимо очень короткого тестового периода.
Мы тестируем по очереди 10 сигнальных паттернов, руководствуясь следующими правилами:
Индексация ведется от 0 до 9, что позволяет нам легко вычислять значения карты для их эксклюзивного использования советником. Например, если паттерн имеет индекс 1, то нам нужно установить параметр PatternsUsed равным 2 в степени 1, что в сумме дает 2. Если индекс равен 4, то это 2 в 4-й степени, что дает 16, и так далее. Максимальное значение, которое может быть присвоено параметру, составляет 1023, поскольку у нас всего 10 параметров. Любое число от 0 до 1023, не являющееся чистой степенью 2, будет представлять собой комбинацию более чем одного из этих 10 паттернов.
MACD
MACD предназначен для измерения разницы между двумя экспоненциальными скользящими средними. В первую очередь, он показывает направление тренда, хотя можно утверждать, что он также отслеживает импульс. Основой индикатора является линия MACD, или гистограмма. Дополнительный буфер, задействованный индикатором и называемый сигнальной линией, представляет собой просто сглаженную версию линии/гистограммы MACD. Он помогает выявлять точки разворота индикаторов и, следовательно, любые сигналы на покупку/продажу. Положительные значения гистограммы указывают на бычий тренд, отрицательные — на медвежий.
Индикатор используется в сочетании с пересечением гистограммы с сигнальной линией, что является важным торговым сигналом; пересечениями нулевой линии гистограммы, которые часто указывают на сдвиги тренда; и расхождениями между ценовым трендом и трендом гистограммы. Типичные значения периодов быстрой и медленной EMA составляют 12 и 26 соответственно. В сигнале часто используется период сглаживания 9. Для целей тестирования мы придерживаемся этих показателей по умолчанию, однако читатели могут менять их, особенно в случаях, когда MACD используется в паре с другим индикатором, который использует другой значимый период (периоды). Формула выглядит следующим образом:
Если:

Тогда:

где:
- t — это текущий шаг по времени или индекс бара
- EMA12(t) - 12-периодная экспоненциальная скользящая средняя цен закрытия
- EMA26(t) - 26-периодная экспоненциальная скользящая средняя цен закрытия
- MACD(t) - разница между быстрой и медленной EMA
- EMA9(MACD(t)) - 9-периодная экспоненциальная скользящая средняя MACD, также известная как сигнальная линия
OBV
Основное назначение осциллятора — измерение давления покупателей и продавцов с учетом совокупного объема. Основная идея заключается в том, что если цена закрывается выше, это признак бычьего давления, и, следовательно, индикатор OBV отображает больший объем. Если цена закрытия будет ниже, то объем будет вычтен. Отсутствие изменений цены означает, что индикатор остается неизменным. Таким образом, его интерпретация проста: растущий OBV подтверждает восходящий тренд, а падающий OBV указывает на медвежий тренд. Кроме того, расхождение между индикатором OBV и ценой может указывать на потенциальный разворот тренда.
Процесс носит кумулятивный характер, обычно начиная с нуля и постепенно накапливая изменения объема с течением времени. Для форекс-трейдеров используемые объемы в этих накоплениях — это тиковые объемы, а не реальные объемы, учитывая "децентрализованный" характер торговли на Форекс. Таким образом, трейдеры могут использовать эту стратегию для подтверждения тренда, выявления дивергенций и уточнения точек входа/выхода из позиций на основе уровней объема. Формула индикатора:

где:
- OBV(t) - значение индикатора в момент времени t
- OBV(t-1) - значение индикатора на предыдущем временном шаге
- Vt - объем в момент времени t
- Ct — цена закрытия в момент времени t
После определения индикаторов рассмотрим их сигнальные паттернов.
Пересечение MACD и трендовый OBV
Наш первый паттерн использует стратегию, которая объединяет пересечение MACD с направлением тренда OBV. Пересечения MACD, как правило, имеют важное значение, поскольку указывают на потенциальные развороты тренда. Направление тренда OBV используется для подтверждения сигнала на основе объема, выступая в качестве фильтра для ложных сигналов MACD. Таким образом, бычий сигнал возникает, когда индикатор MACD совершает разворот на одну точку, а гистограмма закрывается выше сигнальной линии. Это подтверждается, если значение было ниже сигнала на предыдущем баре. Одновременно с этим, индикатор OBV будет расти, что является признаком бычьего роста объема и подтверждает бычье направление. В MQL5 паттерн реализуется следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD_UP(X()) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD_DN(X()) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Логика сигналов на продажу также включает в себя пересечение линий: MACD закрывается ниже сигнальной линии, хотя на предыдущем баре он был выше нее. Медвежье пересечение. Это также происходит, когда индикатор OBV падает, поскольку распределение объема будет отрицательным, что подтверждает медвежье направление. Паттерн предназначен для выявления подтвержденных импульсом и объемом сигналов на трендовых/прорывных рынках. Благодаря возможности импорта данных об объеме, его также можно использовать для фильтрации шума MACD на нестабильных/боковых рынках.
Однако следует учитывать некоторые нюансы: при низком объеме OBV может генерировать ложные направления. Кроме того, индикатор MACD может запаздывать во время резких разворотов, что может привести к потенциально поздним входам в сделку. Оптимизация на 2023 год и проведение тестового запуска с 01.01.2023 по 01.01.2025 только с этим паттерном, где параметру patterns-used присвоено значение 1, дает нам следующий отчет. Форвард-тест не пройден.

Ниже приведена таблица с рекомендациями по возможному использованию паттерна 0.
| Область | Рекомендация |
|---|---|
| Таймфрейм | Наилучшие результаты достигаются в течение периода от 1 до 4 часов. Следует избегать использования на минутных таймфреймах, если только он не используется в паре с индикатором на более крупном таймфрейме. |
| Настройки индикатора | Всегда предпочтительнее придерживаться стандартных настроек MACD (12,26,9). Для OBV предпочтительны реальные данные об объеме. |
| Правила входа | Как правило, вход в сделку следует совершать на закрытии свечи. Входа в середине свечи следует избегать, особенно на коротких таймфреймах. |
| Стоп-лосс | Можно установить на недавних максимумах/минимумах колебаний. Для определения расстояния также можно использовать динамический ATR. |
| Тейк-профит | При определении размера скользящего трейлинг-стопа и фиксации прибыли можно использовать соотношение риска и прибыли 1 к 1,5. |
| Подтверждение | В качестве стороннего индикатора для подтверждения сигнала можно использовать наклон RSI или скользящей средней. |
| Новостной фильтр | По возможности следует избегать входов перед выходом важных новостей. |
| Тестирование на истории | Паттерн нуждается в тщательном тестировании, поскольку он в значительной степени зависит от структуры объема. |
Помимо приведенных выше рекомендаций, паттерн также нуждается в некоторых улучшениях. К ним может относиться добавление фильтра дивергенции, хотя отдельные паттерны, исследующие этот аспект, рассматриваются ниже. Мы могли бы добавить период охлаждения, в течение которого мы отклоняем повторные сигналы, например, разрешив только один сигнал на каждые x свечей. Наконец, мы также можем использовать наклон или скорость изменения, чтобы убедиться, что MACD и/или OBV не находятся в состоянии флета в момент подачи сигнала.
Пересечение центральной линии MACD + прорыв OBV
Паттерн 1 предназначен для обнаружения пересечений нулевой линии MACD, отфильтрованных с помощью экстремальных значений давления объема, зафиксированных OBV. This combination marks early trend reversals that are supported by long or short volume conditions. Сигналом к покупке является момент, когда гистограмма MACD пересекает нулевую границу снизу вверх и закрывается выше неё. Это также называется бычьим пересечением нулевой линии, когда гистограмма меняет отрицательные значения на положительные. Это знаменует собой изменение импульса.
Важно отметить, что MACD подает множество таких сигналов, поэтому важно проверять, находится ли OBV на исторических максимумах за период, предшествующий быстрому периоду MACD, равному 12. Иными словами, текущее значение OBV должно быть равно или выше его максимального значения за 12 периодов. Реализуем это в MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_1(ENUM_POSITION_TYPE T) { int _index = -1; m_obv.Refresh(-1); if(T == POSITION_TYPE_BUY && MACD(X()) > 0.0 && MACD(X() + 1) < 0.0 && OBV(X()) >= m_obv.MaxValue(0, X(), 12, _index)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X()) < 0.0 && MACD(X() + 1) > 0.0 && OBV(X()) <= m_obv.MinValue(0, X(), 12, _index)) { return(true); } return(false); }
Аналогично, сигналом на продажу служит момент, когда MACD пересекает нулевую отметку сверху вниз и закрывается ниже неё, что является переходом импульса от положительного к отрицательному; при этом OBV также достигает дна. Текущий индикатор OBV будет находиться на уровне или ниже своего 12-периодного минимума, что будет свидетельствовать об активных продажах. Из этого можно извлечь следующие стратегические выводы: пересечения нулевой линии MACD более эффективны, чем пересечения сигнальной линии, поскольку они представляют собой чистое изменение направления; фильтрация диапазона OBV обеспечивает подтверждение, гарантируя, что объем не просто направленный, но и достаточно высокий; и он предназначен для раннего обнаружения точек входа в новые тренды с учетом прорывов или колебаний. Результаты тестирования следующие. Форвард-тест не пройден:

Ниже приведена таблица с рекомендациями по использованию паттерна 1.
| Область | Рекомендации |
|---|---|
| Таймфрейм | Паттерн лучше всего подходит для таймфреймов в 1 час, 4 часа и сутки. На более коротких временных интервалах часто возникают резкие колебания и ложные сигналы. |
| Рыночные условия | Паттерн эффективен в режимах разворота тренда или на ранних стадиях формирования тренда. Не подходит для рынков с узким диапазоном цен. |
| Стратегия стоп-лосса | Последние минимумы колебаний для длинных позиций и максимумы колебаний для коротких позиций. |
| Размер позиции | Нужно учитывать, что первоначальные сигналы, как правило, носят кратковременный, а не окончательный характер. |
| Подтверждение | Наклон RSI или скользящего среднего также может помочь дополнить этот паттерн, подтверждая более резкие точки входа. |
| Избегайте переобучения | Окно OBV, равное 12, следует делать относительно коротким для сохранения динамики. |
| Новостной фильтр | Важные новости могут искажать показания объема — поэтому, по возможности, входы следует делать как минимум за 30 минут до и после важных новостей. |
| Окно тестирования на истории | Учитывая чувствительность к объему, важно проводить тестирование в различных режимах волатильности. |
Дивергенция MACD + восходящий тренд OBV
Наш третий паттерн выявляет небольшие бычьи/медвежьи развороты, подтверждая отскоки цены направлением MACD и давлением объема OBV. В центре внимания находятся относительные изменения положения, а не абсолютные уровни, как это было показано выше в паттерне 1. Условиями для подачи сигнала на покупку являются формирование ценами более низких минимумов, что создает потенциальную ситуацию массового вытеснения ликвидности или ложного прорыва, в сочетании с ростом гистограммы MACD и увеличением давления объема по индикатору OBV. Все три индикатора в совокупности формируют сценарий бычьей дивергенции. Реализуем это в MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Low(X()) < Low(X() + 1) && MACD(X()) > MACD(X() + 1) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && High(X()) > High(X() + 1) && MACD(X()) < MACD(X() + 1) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Аналогично, условиями для подачи сигнала на продажу являются формирование ценой более высоких максимумов при снижении MACD из-за усиления медвежьего тренда, что подкрепляется падением OBV. Это опять же указывает на медвежью дивергенцию, поскольку цена резко растет, но ей не хватает силы за счет импульса и объема торгов. Из этого можно почерпнуть несколько полезных торговых идей. Во-первых, это кратковременное истощение разворота, которое просто использует подтверждения по объему и импульсу. Во-вторых, паттерн хорошо работает в зонах паузы тренда, таких как третья волна Эллиотта, или в важных областях поддержки/сопротивления. В-третьих, он идеально подходит для сделок на понижение или для стратегий возврата к среднему значению. Форвард-тест не продйен. Отчет представлен ниже:

Ниже приведён список рекомендаций по применению.
| Область | Рекомендация |
|---|---|
| Таймфрейм | В данном случае подходящими являются 1-часовой или 30-минутный таймфреймы для краткосрочных разворотных сделок, а дневной график используется для свинг-сделок. |
| Контекст сигнала | Наилучший эффект от использования паттерна достигается вблизи недавних максимумов/минимумов или в ключевых зонах поддержки/сопротивления. |
| Свеча подтверждения | Паттерн подтверждается появлением таких переворотных свечей, как молот или падающая звезда. |
| Стратегия стоп-лосса | Эти позиции можно размещать за пределами недавнего минимума или максимума для длинных и коротких позиций соответственно. |
| Целевая прибыль | Это может быть средний уровень канала или уровень недавней структуры, в зависимости от точки входа. |
| Избегайте трендов | Следует избегать торговли на фоне сильных свечей, поскольку это контртрендовый сигнал. |
| Сочетание с RSI | Дивергенцию RSI можно использовать для более точных входов. |
| Тестирование на истории на волатильных активах | К активам, наиболее подходящим для такого паттерна, можно отнести большинство сырьевых товаров, а также некоторые привязанные к ним индексы. |
Разворот гистограммы MACD + поддержка OBV
Четвертый сигнальный паттерн предназначен для фиксации краткосрочного продолжения тренда после временной коррекции импульса MACD. В нем акцент делается на коррекциях импульса, которые подтверждаются направлением OBV. Условиями для подачи сигнала на покупку в рамках этой бычьей модели продолжения тренда являются рост гистограммы MACD по сравнению с предыдущим значением, при этом предыдущее значение должно быть меньше, чем значение MACD до него. Это происходит, когда индикатор OBV растет. Этот бычий паттерн указывает на спад и последующий рост импульса, подкрепленные объемом для восстановления — классический признак продолжения тренда. Реализуем это в MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X()) > MACD(X() + 1) && MACD(X() + 1) < MACD(X() + 2) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X()) < MACD(X() + 1) && MACD(X() + 1) > MACD(X() + 2) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Напротив, условия для подачи сигнала на продажу указываются падением MACD; предыдущий бар указывал на восходящий тик MACD; в то время как OBV снижается из-за давления объема со стороны продавцов. Медвежий паттерн часто указывает на то, что кратковременная бычья коррекция во время нисходящего тренда была преодолена, и продавцы восстановили контроль. Из этого можно сделать следующие выводы: данная модель фиксирует отскоки, которые возобновляют движение в заданном направлении тренда, что может быть полезно для трейдеров, следующих за трендом, или скальпером. Они вступают в игру при возобновлении тренда, а не при прорыве. Паттерн хорошо работает в "чистом" тренде без сильных колебаний. Паттерн не прошел форвард-тест. Отчет о тестировании:

Ниже приведены дополнительные рекомендации по использованию паттерна при его тонкой настройке, в основном при одиночном использовании, а не в сочетании с другими паттернами.
| Область | Рекомендация |
|---|---|
| Таймфрейм | Идеально подходит для систем следования за трендом с интервалом от 15 минут до 1 часа. |
| Контекст | Принцип следует строго применять на устоявшихся направленных рынках, избегая рынков консолидации. |
| Время входа | Предпочтительнее дождаться формирования значимой свечной модели, такой как Марубозу или поглощающая свеча. |
| Стоп-уровни | Стоп-лосс может располагаться чуть выше уровня коррекции, а уровни тейк-профита — на расстоянии, кратном этому расстоянию стоп-лосса. |
| Фильтр объема | Подтверждение того, что рост/падение индикатора OBV является значимым, может иметь значение в долгосрочной перспективе. |
| Избегайте повторений | Если паттерн повторяется без тренда, повторного входа следует избегать. |
| Фильтр скользящей средней | В качестве дополнительного фильтра EMA может помочь установить/подтвердить тренд. |
| Фильтр волатильности | Для оценки силы тренда можно использовать ATR или полосы Боллинджера. |
Консолидация MACD + резкий рост OBV
Паттерн 4 ищет консолидацию MACD у нулевой линии, работая совместно с прорывом OBV. Цель паттерна — найти периоды нейтральности MACD, когда наблюдается баланс между быками и медведями. Затем проверяется, сопровождались ли эти периоды значительным увеличением объемов. Сигналом на покупку считается момент, когда MACD достигает пика и минимума в узком временном окне, находясь близко к нулевой отметке. После этого мы будем следить за повышением индикатора OBV как минимум на 0,5% выше предыдущего значения. Паттерн призван показать, что после некоторой консолидации накопление средств крупными инвесторами вот-вот приведет к росту цен. Реализуем это в MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_4(ENUM_POSITION_TYPE T) { int _index = -1; m_macd.Refresh(-1); if(m_macd.MaxValue(0, X(), 3, _index) >= 0.0 && m_macd.MinValue(0, X(), 3, _index) <= 0.0)// && fabs(m_macd.MinValue(0, X(), 3, _index) - m_macd.MaxValue(0, X(), 3, _index)) <= High(X()) - Low(X())) { if(T == POSITION_TYPE_BUY && OBV(X()) >= 1.005 * OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && OBV(X()) <= 0.995 * OBV(X() + 1)) { return(true); } } return(false); }
Сигнал на продажу, как и на покупку, также проявляется в том, что индикатор MACD колеблется около нуля без четкого тренда. Затем индикатор OBV снижается на 0,5% по сравнению с предыдущим значением, что свидетельствует о резком увеличении давления со стороны продавцов. Эти события предвещают надвигающийся прорыв интервала. Особенность паттерна 4 заключается в низкой задержке срабатывания благодаря подтверждению отстающего роста объема. Паттерн не выдает много сигналов. Это помогает избежать ложных срабатываний, основанных только на ценовых прорывах. При тестировании выполнено совершено немного сделок. Форвард-тест не пройден.

Ниже приведены примеры использования паттерна.
| Категория | Рекомендации |
|---|---|
| Рыночные условия | Паттерн полезен на рынках, находящихся в стадии консолидации перед прорывом. |
| Таймфреймы | Таймфреймы от 1 до 4 часов могут быть идеальными для получения более "чистых" сигналов. |
| Подтверждение | Паттерн можно использовать вместе с прорывом свечных графиков или даже с расширением полос Боллинджера. |
| Качество объема | Крайне важно убедиться, что индикатор OBV не слишком ровный и не слишком шумный. Плавная динамика имеет важное значение. |
| Контроль рисков | Стоп-лосс можно разместить чуть ниже диапазона минимальных (для покупки) или максимальных (для продажи) значений. |
| Фильтр волатильности | Использование логики ATR или сжатия цен может помочь в определении ценового диапазона. |
MACD возле нуля + рост OBV
Паттерн представляет собой контртрендовую модель, поддерживаемую объемом. Его отличительной чертой является движение MACD в противоположном направлении от ценового тренда, при этом учитывается его положение относительно нуля. OBV необходимо подтвердить, что объем говорит в пользу этого шага. Паттерн 5 разработан для того, чтобы улавливать ранние изменения импульса, оставаясь при этом настороже, учитывая, что гистограмма MACD все еще находится в противоположной половине. Сигнал на покупку — это рост MACD, указывающий на усиление импульса на покупку, но при этом его значение должно оставаться ниже нуля. Это означает, что на рынке по-прежнему господствуют медвежьи настроения. Рост сигналов OBV сигнализирует о накоплении покупателей. Это можно интерпретировать как бычье восстановление в контексте медвежьего тренда. В MQL5 паттерн реализуется следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X()) > MACD(X() + 1) && MACD(X()) < 0.0 && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X()) < MACD(X() + 1) && MACD(X()) > 0.0 && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Сигналом на продажу является падение MACD, хотя он всё еще находится в положительной зоне, а также снижение OBV. Мы наблюдаем всплеск медвежьих настроений на бычьем рынке. Паттерн 5 осторожно нацеливается на ранние развороты, используя объем в качестве ориентира. Паттерн не требует полных пересечений. Его можно использовать в сочетании со следующими рекомендациями. Паттерн также не прошел форвард-тест в наших ограниченных условиях. Отчет представлен ниже.

| Фон | Рекомендации |
|---|---|
| Таймфреймы | Одночасовой и четырехчасовой графики тоже подойдут, однако дневной график позволяет избежать шума и более четко показать контекст тренда. |
| Фильтр объема | Может потребоваться в случае, если индикатор OBV покажет боковое движение. |
| Избегайте колебаний | Паттерн не предназначен для рынков с высокой волатильностью. |
| Сочетайте с фильтром тренда | Для подтверждения трендового контекста можно использовать скользящую среднюю или ADX. |
| Время входа | Ожидание подтверждения свечи или крупного пробоя выше значимого минимума или максимума. |
| Управление сделками | Использование жесткого стоп-лосса или даже частичного выхода из позиции может быть безопасным, учитывая разворотный характер паттерна. |
Устойчивый тренд MACD относительно нуля + экстремум OBV
Паттерн 6 представляет собой паттерн обнаружения кульминации тренда и объема. Он выявляет устойчивый тренд в заданном направлении, когда MACD остается по определенную сторону нулевой линии, и сопоставляет его с пиками объема OBV. Паттерн ищет продолжения трендов. Сигнал на покупку в случае, если MACD остается положительным в течение 12 баров, в то время как OBV находится близко к своему 12-свечному максимуму или выше него, что указывает на быстрый рост числа покупателей. Это можно интерпретировать как устойчивый бычий тренд на рынке, при этом объемы торгов указывают на продолжение тренда. В MQL5 паттерн реализуется следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_6(ENUM_POSITION_TYPE T) { int _index = -1; m_macd.Refresh(-1); m_obv.Refresh(-1); if(T == POSITION_TYPE_BUY && m_macd.MinValue(0, X(), 12, _index) > 0.0 && OBV(X()) >= m_obv.MaxValue(0, X(), 12, _index)) { return(true); } else if(T == POSITION_TYPE_SELL && m_macd.MinValue(0, X(), 12, _index) < 0.0 && OBV(X()) <= m_obv.MaxValue(0, X(), 12, _index)) { return(true); } return(false); }
Характеристики сигналов на продажу противоположны: MACD находится ниже нуля на протяжении 12 и более свечей, а OBV также близок к своему минимуму за 12 свечей или находится на нем. Это интерпретируется как устойчивое медвежье состояние рынка, поскольку индикатор OBV подтверждает, что продавцы формируют цену за счет больших объемов. Паттерн также не прошел форвард-тест. Таким образом общее число неудачных попыток с использованием этой пары индикаторов достигло 7. Отчет представлен ниже.

Рекомендации по использованию паттерна 6 также приведены ниже:
| Фон | Рекомендации |
|---|---|
| Применение на трендовых рынках | Паттерн 6 хорошо проявляет себя на сильных однонаправленных рынках. Стагнация и флет недопустимы. |
| Сила импульса | В качестве дополнительного подтверждения можно использовать ADX, при этом показания выше 25 являются обязательным условием для входа. |
| Сочетание с движением цены | Можно рассматривать прорыв свечей, внутренние бары или отскок от пин-баров в зонах поддержки/сопротивления. |
| Действительность объема | OBV должен демонстрировать равномерный наклон без резких или боковых движений. |
| Стратегия выхода | В качестве инструментов выхода можно рассмотреть трейлинг-стопы или выход на уровне Фибоначчи. |
Скрытая дивергенция MACD + экстремумы OBV
Наш восьмой по счету паттерн сигнализирует о покупке при снижении ценовых минимумов, росте MACD и восходящем тренде OBV. Интерпретация: цена не опустилась достаточно низко, в то время как объем увеличивался, и, как показывает индикатор MACD, действовал бычий импульс. Реализация на MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_7(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Low(X()) > Low(X() + 1) && MACD(X()) < MACD(X() + 1) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && High(X()) < High(X() + 1) && MACD(X()) > MACD(X() + 1) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Напротив, при сигнале на продажу наблюдаются растущие максимумы, нисходящий MACD и падающий OBV. Как и с бычьим трендом, это указывает на скрытое расхождение. Из всех десяти сигнальных паттернов, рассмотренных в этой статье, только этот прошел форвард-тест. Отчет о тестировании приведен ниже.

Ниже приведены рекомендации по дальнейшей доработке и улучшению паттерна:
| Фон | Рекомендации |
|---|---|
| Подтверждение | В качестве подтверждения могут служить трендовые линии, уровни поддержки/сопротивления и зоны Фибоначчи. |
| Объединение с другими сигналами | Неблагоприятные колебания также можно минимизировать, используя дивергенцию RSI или модели разворота свечей, такие как молот, поглощение и т. д. |
| Избегайте сильных трендов | Это не трендовая паттерн, поэтому он не подойдет скальперам. |
| Используйте стоп-лосс с умом | Размещение стоп-уровней за пределами недавних максимумов/минимумов колебаний поймает краткосрочную реакцию, а не долгосрочное изменение тренда. |
Пересечение сигнальной линии MACD и поддержка OBV
Условия покупки для нашего предпоследнего сигнального паттерна выполняются, когда MACD находится выше 0 после разворота вверх. При этом OBV указывает на рост объема покупок. Это бычий импульс, подтверждаемый увеличением объема. Реализация на MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 8. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_8(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X() + 1) > 0.0 && MACD_UP(X()) && OBV(X()) > OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X() + 1) < 0.0 && MACD_DN(X()) && OBV(X()) < OBV(X() + 1)) { return(true); } return(false); }
Сигнал на продажу связан с тем, что MACD находится в медвежьей зоне, ниже нуля, после разворота вниз. Индикатор OBV также будет падать из-за давления объемов продаж. К сожалению, паттерн не прошел форвард-тест, как и большинство описанных в этой статье. Отчет:

Меры, которые можно предпринять для улучшения его работы:
| Приоритетная область | Рекомендации |
|---|---|
| Время входа | Торгуйте сразу после пересечения MACD, но только при подтверждении OBV. Избегайте задержек. |
| Проверка объема | OBV не должен противоречить направлению пересечению. Несовпадения тоже быть не должно. Также следует избегать бокового OBV. |
| Сочетание со структурой цены | Как и многие другие сигналы, этот паттерн наиболее эффективен на ключевых уровнях поддержки/сопротивления. |
| Избегайте диапазона | На боковом рынке сигналы пересечения MACD могут быть шумными, несмотря на подтверждение индикатором OBV. Торгуйте на трендовых активах. |
| Стоп-уровни | Используйте ATR или максимумы/минимумы последних свечей для размещения динамических стоп-лоссов — паттерн указывает на начало тренда, а не просто на отскок. |
Пересечение сигнальной линии MACD в точке 0 и резкий рост OBV
Паттерн 9 представляет собой сигнал разворота тренда, который пытается определить начало нового тренда. Ранний вход после смены тренда призван максимизировать фиксацию прибыли, но, как всегда, следует остерегаться неблагоприятных колебаний. Сигналом к покупке является пересечение индикатором MACD нуля снизу вверх и закрытие выше него в середине разворота. Индикатор OBV также заметно растет - более чем на 5 процентов. Реализуем это в MQL5 следующим образом:
//+------------------------------------------------------------------+ //| Check for Pattern 9. | //+------------------------------------------------------------------+ bool CSignalMACD_OBV::IsPattern_9(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && MACD(X() + 1) < 0.0 && MACD(X()) > 0.0 && MACD_UP(X()) && OBV(X()) >= 1.005 * OBV(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && MACD(X() + 1) > 0.0 && MACD(X()) < 0.0 && MACD_UP(X()) && OBV(X()) <= 0.995 * OBV(X() + 1)) { return(true); } return(false); }
Сигнал на продажу зеркально отражает сигнал на покупку, предполагая пересечение MACD нулевой отметки сверху вниз и закрытие ниже неё в результате разворота. Одновременно с этим OBV значительно снижается. Мы используем 5%, поскольку этот порог очень чувствителен, однако читатели могут поэкспериментировать с другими значениями. К сожалению, из-за небольшого тестового периода в 2 года, этот паттерн также не прошел форвард-тест. Отчет:

Меры по улучшению:
| Категория | Рекомендации |
|---|---|
| Выбор активов | Паттерн наилучшим образом подходит для инструментов с высоким ежедневным объемом — основных валютных пар, индексов и высоколиквидных акций или криптовалют. |
| Рыночные условия | Паттерна следует избегать на боковых рынках, где пересечения нулевой линии MACD могут генерировать множество ложных сигналов. Сочетание с трендовыми индикаторами, такими как ADX, может повысить эффективность. |
| Пороговые значения объема | Фильтр OBV (например, 0,5%) можно настроить в зависимости от рыночных условий. Для таких волатильных активов, как криптовалюты, могут быть установлены более высокие пороговые значения. |
| Управление сделками | Можно использовать динамический стоп-лосс (например, на основе ATR или минимумов/максимумов колебаний). Можно рассмотреть вариант установки начального тейк-профита на основе соотношения риска и прибыли (например, 1:2). |
| Фильтрация шума | Для повышения надежности объедините паттерн 9 с подтверждениями на основе свечных графиков, как уже упоминалось в отношении других сигнальных паттернов выше. |
Заключение
В этой статье мы рассмотрели комбинацию индикаторов тренда и объема. Результаты тестирования оказались крайне неутешительными. Проведение форвард-тестов по тестовой выборке с равным разделением данных всегда затруднительно, особенно когда окно тестовых данных такое маленькое, как в нашем случае. Однако эти результаты, по сравнению с другими парами индикаторов, которые мы рассматривали ранее, оказались явно ниже ожидаемых. Как правило, после ознакомления с парами индикаторов мы переходим к применению обучения с учителем. Поскольку, исходя из нашего последнего исследования, мы теперь рассматриваем паттерны, которые не смогли пройти форвард-тест, в следующей статье у нас будет большой выбор.
| name | описание |
|---|---|
| WZ-71.mq5 | Созданный Мастером советник, в заголовке которого отображаются использованные в сборке файлы |
| SignalWZ-71.mqh | Файл класса пользовательских сигналов пары индикаторов |
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/18462
Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.
Данная статья написана пользователем сайта и отражает его личную точку зрения. Компания MetaQuotes Ltd не несет ответственности за достоверность представленной информации, а также за возможные последствия использования описанных решений, стратегий или рекомендаций.
Знакомство с языком MQL5 (Часть 39): Руководство для начинающих по работе с файлами в MQL5 (I)
Знакомство с языком MQL5 (Часть 38): Освоение API и функции WebRequest в языке MQL5 (XII)
Искусство работы с логами (Часть 9): Применяем паттерн Builder-класса и настраиваем конфигурации по умолчанию
Торговые инструменты на языке MQL5 (Часть 9): Мастер первого запуска для советников с прокручиваемым руководством
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования