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 LevelsEnable 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 ENTRYExit System 2: ... CURRENT
Типичный рабочий процесс
- Включаете нужные системы входа (A/B) и разрешённые направления (Long/Short).
- Включаете фильтры, задаёте пороги. Для консервативной торговли начните с:
- Вход в зону S&R + S&R Distance + Divergence Proximity.
- Окно ожидания 2–3 бара.
- Выбираете выходы: часто удобно включить Exit 1 (фиксированный
midAtEntry) как «умный трал» и Exit 2 как «динамический стоп по структуре». - Тестируете на нужном таймфрейме/активе, подгоняете пороги % и длины окон.
Особенности и ограничения
- Все проверки на закрытии бара (
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 может быть полезен как защитный выход.