S&R Power Divergence strategy

S&R Power Divergence strategy

AlgoMind Labs

Стратегия объединяет два сигнальных модуля (S&R Power и RSI Momentum Divergence Zones от ChartPrime) и набор управляемых фильтров/выходов. Входы можно подавать двумя независимыми системами (вкл/выкл), есть гибкая логика ожидания, реакции на встречные сигналы и две отключаемые системы выхода по “середине канала” S&R.

Работает на закрытии свечи (без интрабар-исполнения).


Состав и логика модулей

Модуль 1 — S&R Power

  • Из последних i1_length баров берутся экстремумы: max = highest(high, i1_length), min = lowest(low, i1_length).
  • Строится «канал» с отступом ATR(200) * 0.5:
  • Верхняя линия: topLine = max + atr
  • Нижняя линия: botLine = min - atr
  • «Покупательная зона» (Buy Power): верх границы у дна канала buyTop = min + atr
  • «Продающая зона» (Sell Power): низ границы у верха канала sellBottom = max - atr
  • Середина канала: mid = (topLine + botLine) / 2
  • «Бриллиант/ромб» (подтверждение):
  • Для Long: два бара назад Low был ниже buyTop, а на предыдущем баре Low стал выше buyTop.
  • Для Short: два бара назад High был выше sellBottom, а на предыдущем баре High стал ниже sellBottom.
  • Подсчёт Buy/Sell Power — количество бычьих/медвежьих свечей внутри окна i1_length.

Модуль 2 — RSI Momentum Divergence Zones

  • RSI считается от mom(close, 10) с длиной i2_rsiLength.
  • Дивергенции фиксируются через пивоты RSI (лев./прав. «плечи»: i2_divLookbackL/R) и условия Higher/Lower на RSI и цене.
  • На графике рисуются горизонтальные уровни дивергенций:
  • Бычьи уровни — по Low (массив bullLevels),
  • Медвежьи — по High (массив bearLevels).
  • Для каждого уровня ведётся флаг «пробит/непробит»:
  • Бычий считается пробитым, если high поднялся выше его уровня.
  • Медвежий — если low опустился ниже его уровня.
  • Количество видимых уровней ограничено параметром.

Системы входа (обе отключаемые)

System A — «RSI Divergence Levels» (перекл. Enable System A)

Сигнал возникает, когда цена касается последней активной дивергенционной зоны:

  • Long: на закрытии свечи выполняется пересечение low с последним бычьим уровнем.
  • Short: на закрытии свечи выполняется пересечение high с последним медвежьим уровнем.

System B — «S&R Diamond» (перекл. Enable System B)

Сигнал — появление «ромба» от S&R Power:

  • Long: детектируется паттерн «поднялись над buyTop».
  • Short: детектируется «опустились под sellBottom».
Вход формируется, если включена хотя бы одна система и разрешено направление (см. «Направление торговли»).

Фильтры (каждый отключаемый тумблером)

Все фильтры проверяются на закрытии сигнальной свечи и (опционально) в течение окна ожидания. Вход состоится, когда все активные фильтры пройдены.

1) Вход в зону S&R

  • Long: LOW должен входить в Buy Power-зону (ниже/у buyTop).
  • Short: HIGH должен входить в Sell Power-зону (выше/у sellBottom).

2) Подтверждающий «ромб»

  • Требование наличия соответствующего «ромба» от S&R Power (описано выше).

3) Минимальный BUY/SELL Power

  • Long: сумма бычьих свечей за окно ≥ порог.
  • Short: сумма медвежьих свечей за окно ≥ порог.

4) Минимальная высота канала S&R (в % от цены)

  • Требуемый минимум (topLine - botLine) / close * 100.

5) Разница сил (BUY−SELL/SELL−BUY)

  • Long: (buyCnt - sellCnt) ≥ порог.
  • Short: (sellCnt - buyCnt) ≥ порог.

6) Дистанция до зоны S&R (в %)

  • Long: цена не должна уйти выше buyTop больше, чем на Max distance above BUY zone top %.
  • Short: цена не должна уйти ниже sellBottom больше, чем на Max distance below SELL zone bottom %.

7) Близость к дивергенции нужной полярности

Берём последнюю дивергенцию нужного знака:

  • Для Long — последняя бычья:
  • Если она непробитая — уровень должен быть ниже цены не более чем на LONG: last Bull UNBROKEN level BELOW ≤ %.
  • Если пробитая — уровень должен быть выше цены не более чем на LONG: last Bull BROKEN level ABOVE ≤ %.
  • Для Short — последняя медвежья:
  • Если непробитая — уровень выше цены ≤ SHORT: last Bear UNBROKEN level ABOVE ≤ %.
  • Если пробитая — уровень ниже цены ≤ SHORT: last Bear BROKEN level BELOW ≤ %.
Если подходящего уровня нет (массив пуст), фильтр считается «не прошедшим» только если вы его включили и правило требует наличие такого уровня; иначе он не мешает входу.

Окно ожидания (Wait Window)

Если пришёл сигнал, но один или несколько включённых фильтров не прошли, стратегия ставит «ожидание» на заданное число баров:

  • Wait bars after LONG/SHORT signal: 1 означает «вход только на текущем баре», >1 — можно дождаться, пока фильтры выполнятся в течение указанного окна.
  • В период ожидания не нужен новый сигнал. Как только все включённые фильтры станут истинными — выполняется вход по рынку (на закрытии бара).
  • По истечении окна ожидания без выполнения условий — ожидание сбрасывается.

Реакция на встречный сигнал при открытой позиции

Для каждого направления настраивается действие:

  • None — игнорировать встречный сигнал.
  • Close — закрыть текущую позицию.
  • Reverse — закрыть и открыть позицию в обратную сторону (переворот).
  • При перевороте корректно пересчитываются TP/SL и «середина на входе» для систем выхода.

Тейк-профит и Стоп-лосс

При входе сразу ставится связка strategy.exit:

  • Long:
  • TP = entry * (1 + Long TP%)
  • SL = entry * (1 - Long SL%)
  • Short:
  • TP = entry * (1 - Short TP%)
  • SL = entry * (1 + Short SL%)

Гайды (короткие линии) рисуются на цене входа, TP и SL для наглядности.


Системы выхода (обе отключаемые)

Обе системы симметричны по направлению (условия инвертируются для Short). Работают на закрытии свечи.

Exit System 1 — «Середина канала на момент входа»

  • При входе запоминается midAtEntry — середина S&R-канала на той свече.
  • Long: если закрылись выше midAtEntry → закрытие позиции.
  • Short: если закрылись ниже midAtEntry → закрытие.

Exit System 2 — «Динамическая середина канала»

  • В каждый момент берётся текущая середина mid.
  • Long: если закрылись выше текущего mid → закрытие.
  • Short: если закрылись ниже текущего mid → закрытие.
Можно включать обе системы одновременно — закроет первая сработавшая.

Управление направлениями

Переключатели Allow LONG и Allow SHORT полностью запрещают/разрешают открытия новых позиций соответствующего типа (на логику выхода из уже открытой позиции не влияют).


Параметры (быстрый ориентир)

  • Entry Signal Systems
  • Enable System A — RSI Divergence Levels
  • Enable System B — S&R Diamond
  • Trade Direction
  • Allow LONG, Allow SHORT
  • Filters & Waiting
  • Вход в зоны S&R, ромб, Buy/Sell Power, высота канала, разница сил
  • Wait bars after LONG/SHORT signal
  • S&R Distance Filter
  • Enable LONG/SHORT S&R distance filter
  • Пороги % для Long/Short
  • Divergence Proximity Filter
  • Enable LONG/SHORT
  • Четыре отдельных порога % (бычья/медвежья, пробитая/непробитая)
  • Exit Systems
  • Exit System 1: ... at ENTRY
  • Exit System 2: ... CURRENT

Типичный рабочий процесс

  1. Включаете нужные системы входа (A/B) и разрешённые направления (Long/Short).
  2. Включаете фильтры, задаёте пороги. Для консервативной торговли начните с:
  3. Вход в зону S&R + S&R Distance + Divergence Proximity.
  4. Окно ожидания 2–3 бара.
  5. Выбираете выходы: часто удобно включить Exit 1 (фиксированный midAtEntry) как «умный трал» и Exit 2 как «динамический стоп по структуре».
  6. Тестируете на нужном таймфрейме/активе, подгоняете пороги % и длины окон.

Особенности и ограничения

  • Все проверки на закрытии бара (barstate.isconfirmed).
  • Уровни дивергенций появляются с задержкой, т.к. используют пивоты (lookback L/R). Это стандарт для анти-перерисовки.
  • Если подходящих дивергенций ещё нет (ранний участок истории), соответствующие фильтры не мешают пока они выключены. При включении фильтра учтите, что отсутствие уровня означает «не проходим» до появления нужной дивергенции.
  • S&R-канал зависит от окна i1_length и ATR(200). На очень «шумных» инструментах имеет смысл подбирать i1_length и атрибуты фильтров.

Рекомендации по настройке

  • TF: под актив. Для крипты хорошо заходят 15m–2h; для акций/FX — 1h–4h.
  • Proximity %: Long (0.4–0.7) / Short (0.4–0.7) — в зависимости от волатильности.
  • S&R Distance %: 0.3–0.8 % — чтобы не «догонять» движение слишком далеко от зоны.

Частые вопросы

Q: Почему вход не сработал, хотя был сигнал?

A: Проверьте, не блокирует ли один из включённых фильтров (S&R Distance, Proximity, высота канала и т.д.). Если сигнал был, но фильтры не прошли, посмотрите в период «ожидания» — возможно, вход произойдёт на одной из последующих свечей, если фильтры станут истинными.

Q: Что делать при противоречии сигналов систем A и B?

A: Они объединяются как «A ИЛИ B». Любая включённая система может дать вход, при условии что пройдены все активные фильтры.

Q: Включать ли оба выхода одновременно?

A: Можно. Они независимы; сработает первый по времени. В тренде «динамический mid» часто закрывает раньше/лучше, а при флэте фиксированный midAtEntry может быть полезен как защитный выход.

Report Page