← Все идеи
#072НовоеФильтр режимаСвинг

Классификатор среды по полосам Боллинджера 20/3 и скоринг режима

Anthony Crudele делит дневной рынок на три среды по полосам Боллинджера 20/3: консолидация, тренд, возврат к среднему. Каждая среда разрешает свою сторону сделок. Вариант: скоринг режима Kieran Duff по ADX, ATR и средним.

Chart Fanatics · Anthony Crudele · Смотреть видео

Рынки

Фьючерсы, Индексы, Форекс, Сырьё

Таймфрейм

D1

Данные

OHLC, Объём

Правила

Частично формализовано

Сложность

Средняя

Статус

Не проверено

Часть правил дописали мы, это помечено в тексте.

TradingView переносится напрямую
EasyLanguage есть ловушки
MetaTrader 5 есть ловушки

Идея коротко

Anthony Crudele, трейдер фьючерсов на индексы с двадцатилетним стажем, начинает любую сделку с вопроса о среде. Сред три: консолидация, тренд, возврат к среднему. Определяет он их по дневным полосам Боллинджера с периодом 20 и тремя стандартными отклонениями вместо привычных двух. Когда среда известна, он торгует в одну сторону. Две стороны разрешены только в консолидации.

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

Вариант B от Kieran Duff, который ведёт на CFD портфель из 20-30 автоматических стратегий: фильтр складывает метрики в балл и решает, какие сигналы пропускать. Веса и пороги он не назвал, скоринг ниже это формализация Finetiq.

В отличие от bollinger-squeeze, полосы здесь не дают входов, а распределяют разрешения между пробойными стратегиями и стратегиями возврата. От zero-parameter-filters отличие в форме: переключатель из трёх состояний вместо да или нет.

Почему это может работать

Crudele пришёл к системе после убытков: он был контрарианцем, фейдил ралли и пробои и терял на развороте рынка 2000 года. Причину он видит в том, что не определял среду. Три отклонения он выбрал под индексы: полосы в два отклонения NASDAQ пробивает в обычный день. Пользу правила он описывает так: оно держит его вне фейдов тренда и вне пробоев внутри диапазона.

Kieran решает ту же задачу для портфеля. Когда ADX растёт, цена уходит от средних и ATR расширяется, пробоям хорошо, а стратегии возврата и шорты лучше выключить. Фильтр только убирает сигналы с меньшей вероятностью, и Kieran признаёт, что иногда он заблокирует сделку, которая отыграла бы вчерашний убыток.

Теста самого классификатора нет ни у одного автора. Цифры Kieran относятся к его портфелю из пяти стратегий на in-sample, где он впервые включил фильтр. Все свои стратегии он туда ещё не добавил и сам говорит, что итоговый вид будет другим.

Правила

Полосы и признаки (автор)

// дневные бары, индексные фьючерсы ES, NQ, RTY
Mid   = SMA(Close, 20)
SD    = StdDev(Close, 20)                           // генеральное
Upper = Mid + 3 * SD                                 // автор: 20 периодов, 3 отклонения
Lower = Mid - 3 * SD
Width = Upper - Lower

Outward = Upper > Upper[1] AND Lower < Lower[1]      // автор: полосы смотрят наружу; Finetiq: оба края за бар
Inward  = Width < Width[1] AND Width[1] < Width[2]   // автор: полосы сходятся; Finetiq: 2 бара подряд
Narrow  = Width < SMA(Width, 50)                      // Finetiq: полосы сжаты

Классификатор среды (автор, пороги Finetiq)

// Env хранится между барами, стартовое значение CONSOLIDATION
NewUp   = Outward AND Close > Highest(High, 20)[1]   // автор: расширение и новый максимум; Finetiq: за 20 баров
NewDown = Outward AND Close < Lowest(Low, 20)[1]
IF NewUp AND Env <> TREND_UP
    Env = TREND_UP;   EpisodeStart = текущий бар       // Finetiq: начало эпизода ставится только при смене среды
IF NewDown AND Env <> TREND_DOWN
    Env = TREND_DOWN; EpisodeStart = текущий бар
// новый максимум внутри того же тренда EpisodeStart не сдвигает

IF Env IN (TREND_UP, TREND_DOWN) AND Inward             // автор: после тренда полосы сходятся
    PeakUp    = максимум Upper с EpisodeStart            // Finetiq: пики полос за эпизод
    PeakDown  = минимум Lower с EpisodeStart
    PrevTrend = Env
    Env = MEAN_REV

IF Env = MEAN_REV AND (Narrow OR цель 50% достигнута OR 10 баров без нового тренда)
    Env = CONSOLIDATION                                  // автор: полосы сжались, это консолидация; дальше ждать, руки в карманы
                                                         // Finetiq: цель 50% и 10 баров как запасные условия

Разрешения по средам (автор)

TREND_UP:      только лонги; шорты и фейды запрещены            // автор
TREND_DOWN:    только шорты                                      // автор
CONSOLIDATION: обе стороны, у краёв диапазона, не в середине     // автор
               выход за диапазон вероятно вернётся               // автор
               Finetiq: пробойные стратегии выключены
MEAN_REV:      сделки против PrevTrend, размер 0.5               // автор: против основного тренда маленьким
                                                                 // размером; Finetiq: 0.5
               сделки по PrevTrend запрещены                     // автор: больше не хочет быть в лонге

Уровни возврата и цели (автор, построение Finetiq)

Crudele строит сетку Фибоначчи не по цене, а по полосам: от пика верхней полосы до пика нижней. Его индикатор Beacon рисует её сам. Как выбираются пики, показано только на доске и одном графике, ниже наше прочтение.

Range = PeakUp - PeakDown

// после TREND_UP: шорт
L30 = PeakUp - 0.30 * Range
L50 = PeakUp - 0.50 * Range
IF Env = MEAN_REV AND PrevTrend = TREND_UP AND Close < L30     // автор: дневное закрытие ниже 30%
    SELL SHORT AT NEXT BAR OPEN
Target = L50                                                    // автор: цель 50%
IF Close > L30 THEN EXIT AT NEXT BAR OPEN                       // автор: пока закрытие не вернулось выше
StopLoss = максимум бара, на котором развернулся тренд          // автор; Finetiq: максимум эпизода
// уровень 70% автор использует, чтобы оценить силу разворота, не для входа
// после TREND_DOWN зеркально от PeakDown: закрытие выше 30%, цель 50%

// цель в тренде (автор): прошлый пик полосы, «незаконченное дело»
TrendTarget_Up = Highest(Upper, 60) до EpisodeStart            // Finetiq: окно 60

Выходы в тренде Crudele ведёт по VWAP от бара разворота и средним 8, 21 и 34, размер позиции считает от расстояния до стопа.

Вариант B. Скоринг режима (Kieran Duff, веса и пороги Finetiq)

Метрики фильтра Kieran: ATR, SMA 50, SMA 200, ADX, закрытие последнего дневного бара, ATR текущего бара, перцентиль ATR, режим объёма и режим тренда. Формулы, весов и порогов в интервью нет. Для VIX он предлагает не порог, а расширение за 2 дня против среднего за 2 месяца, но этот модуль у него ещё не построен.

// дневные значения прошлого закрытого бара
ATR14 = ATR(14); ADX14 = ADX(14)                                       // Finetiq: периоды
Dist  = ABS(Close - SMA(Close, 50)) / ATR14

S1 = ADX14 > ADX14[5]                                   // автор: ADX растёт; Finetiq: за 5 дней
S2 = Dist > Dist[5]                                     // автор: цена уходит от средних
S3 = ATR14 > ATR14[5]                                   // автор: ATR расширяется
S4 = PercentRank(ATR14, 250) >= 50                      // автор: перцентиль ATR; Finetiq: окно и порог
S5 = SMA(Volume, 10) > SMA(Volume, 50)                  // автор: режим объёма; Finetiq: сравнение
TrendUp   = Close > SMA(Close, 200) AND SMA(Close, 50) > SMA(Close, 200)   // автор: режим тренда
TrendDown = Close < SMA(Close, 200) AND SMA(Close, 50) < SMA(Close, 200)   // Finetiq: определение

Score = S1 + S2 + S3 + S4 + S5                          // Finetiq: равные веса, от 0 до 5

IF Score >= 4 AND TrendUp   THEN пробойные лонги; возврат и шорты выключены      // автор: действие; Finetiq: порог 4
IF Score >= 4 AND TrendDown THEN пробойные шорты; возврат выключен               // Finetiq
IF Score >= 4 AND NOT TrendUp AND NOT TrendDown THEN пробои в обе стороны, размер 0.5   // Finetiq
IF Score <= 1 THEN стратегии возврата; пробойные выключены                       // Finetiq
IF Score IN (2, 3) THEN все стратегии, размер 0.5                                 // Finetiq

Подключение к карточкам базы (Finetiq)

// пример 1: prev-high-breakout-adx. Фильтр ADX(5) < 35, BUY STOP над максимумом прошлой сессии
Allowed_A = DailyADX < 35                                   // как в карточке
Allowed_B = Allowed_A AND Env = TREND_UP                    // Crudele: пробой только в тренде
Allowed_C = Allowed_A AND Env <> CONSOLIDATION              // мягче: запрет только в диапазоне
// заметьте конфликт: ADX(5) < 35 отбирает тихие дни, TREND_UP требует расширения полос

// пример 2: five-day-low-mr. Покупка 5-дневного минимума, выход выше MA5
Allowed_MR = Env IN (CONSOLIDATION, TREND_UP)               // покупка отката не противоречит «только лонг»
             OR (Env = MEAN_REV AND PrevTrend = TREND_DOWN) // возврат после падения, размер 0.5
// в TREND_DOWN и в MEAN_REV после роста покупки запрещены

Параметры

Параметр Значение Откуда
Таймфрейм дневной автор
Полосы Боллинджера SMA 20, 3 стандартных отклонения автор
Полосы наружу верхняя растёт и нижняя падает за бар Finetiq
Пробой в тренде закрытие за 20-дневным экстремумом Finetiq
Полосы сходятся ширина падает 2 бара подряд Finetiq
Полосы сжаты ширина ниже своей SMA 50 Finetiq
Уровни возврата 30, 50, 70% между пиками полос автор
Вход в возврат дневное закрытие за уровнем 30% автор
Цель возврата 50%, выход при закрытии обратно за 30% автор
Размер против основного тренда 0.5 Finetiq (автор: маленький)
Выход из MEAN_REV полосы сжаты (Narrow), цель 50% или 10 баров автор (сжатие полос), Finetiq (порог сжатия, цель, 10 баров)
Цель в тренде прошлый пик полосы, окно 60 баров автор, окно Finetiq
Вариант B: метрики ADX, ATR, перцентиль ATR, SMA 50 и 200, объём, тренд автор
Вариант B: периоды, веса, пороги ADX 14, ATR 14, 5 и 250 дней, баллы 4 и 1 Finetiq

Что проверить

  1. Разделяет ли классификатор рынок. Разметьте историю ES и NQ средами и посчитайте для каждой среднее изменение цены за 5 дней, долю продолжения пробоев 20-дневного экстремума и долю возвратов к Mid. Если в TREND_UP пробои продолжаются не чаще, чем в CONSOLIDATION, классификатор не работает.
  2. Три отклонения против двух. Тот же классификатор на 20/2 и 20/2.5: частота смены сред и результат. Crudele считает два отклонения на индексах слишком близкими.
  3. Окрестность порогов Finetiq. Пробой за 10, 20 и 40 баров; схождение 1, 2 и 3 бара; окно Narrow 30, 50 и 100. Скачок результата от соседнего значения означает подгонку.
  4. Стратегия с фильтром и без. Три версии prev-high-breakout-adx из примера: сколько сделок фильтр убрал и какими они были.
  5. Уровни 30/50/70. Вход за 30% против 50% и против входа сразу при Inward, цель 50% против текущей Mid.
  6. Скоринг Kieran. Равные веса против одного ADX и одного перцентиля ATR. Пороги выбирайте только на in-sample.
  7. Издержки переключений. Сколько раз в год меняется среда. Переключения на пограничных барах плодят сделки, которые только платят спред.

Особенности платформ

TradingView (Pine Script)

  • ta.bb(close, 20, 3) использует генеральное отклонение, как StdDev в EasyLanguage и iBands в MT5, так что уровни 30/50/70 совпадут.
  • Среду и пики полос храните в переменных var и обновляйте только на закрытом баре.
  • ADX для варианта B берите из ta.dmi(14, 14), он по Уайлдеру. Перцентиль ATR: ta.percentrank(atr, 250).
  • У ES дневной бар в TradingView начинается в 18:00 ET. Полосы по кэш-индексу и по фьючерсу различаются, считайте по тому ряду, которым торгуете.

MultiCharts и TradeStation (EasyLanguage)

  • Полосы проще посчитать явно: Average(Close, 20) + 3 * StdDev(Close, 20). StdDevS выборочное и даст полосы шире.
  • У фьючерсов дневной бар TradeStation закрывается по settlement, а 1440-минутный по последней сделке. Закрытие за уровнем 30% может выпасть на разные дни. Бэктест и торговлю ведите на одном виде бара.
  • AvgTrueRange это простое среднее TR, в Pine ATR по Уайлдеру. Признаки S2, S3 и S4 варианта B дадут другие дни, если не посчитать Уайлдера вручную.
  • Классификатор копируйте в код каждой стратегии, которую он фильтрует. Так в бэктесте все видят одно значение прошлого дня.

MetaTrader 5 (MQL5)

  • iBands(_Symbol, PERIOD_D1, 20, 0, 3, PRICE_CLOSE) даёт полосы на генеральном отклонении. Значения берите с бара 1.
  • Дневной бар CFD строится по серверному времени брокера. Короткие воскресные бары добавляют лишние закрытия в окно 20 и сдвигают полосы.
  • Для варианта B берите iADXWilder, iADX сглаживает иначе. iATR это простое среднее TR.
  • Режим объёма у CFD считается по тиковому объёму (iTickVolume). Kieran торгует CFD именно так, но это активность котировок у брокера, а не объём торгов.

Где идея может сломаться

  • Crudele торгует с дискрецией: цели по чужим уровням, выходы по VWAP и средним, опционы при широком стопе, размер по макрофону. Механическая версия этого не повторяет.
  • Самое трудное место он называет сам: переход после возврата к среднему, когда неизвестно, будет консолидация или новый тренд. Здесь его чаще всего бьёт, и здесь больше всего наших порогов.
  • Определения «полосы наружу», «сходятся» и выбор пиков для сетки наши. Разные прочтения дадут разные даты смены среды.
  • Статистики в видео нет, только схемы на доске и один график ES 2025 года. В выпуске много рекламы проп-фирм.
  • Цифры Kieran получены на in-sample 2018-2019 годов, в первом прогоне фильтра и не на всём портфеле. Об out-of-sample они ничего не говорят.
  • Скоринг из пяти признаков с порогами легко подогнать. Веса автора неизвестны, наши равные веса только стартовая точка.

Источники

  • COPY These 3 Simple Steps To Master The TREND Trading Futures - Anthony Crudele

    Chart Fanatics · Anthony Crudele · 2026-01-25

    • 02:06Три среды: возврат к среднему, консолидация, тренд
    • 03:24Полосы Боллинджера: 20 периодов, 3 отклонения
    • 04:59Почему 3 отклонения для индексов
    • 09:12Полосы сжались: консолидация, рынок в обе стороны
    • 12:39В диапазоне торговать края, а не середину
    • 13:23Полосы из плоских расходятся: расширение
    • 18:05Расширение и новый максимум: только лонг
    • 19:57Зеркально только шорт, движение не фейдить
    • 21:57Цель в тренде: прошлый пик полосы
    • 23:38Возврат к среднему: уровни 30, 50 и 70% по полосам
    • 24:50Против основного тренда маленьким размером
    • 25:26После 50% полосы расходятся вниз: только шорт
    • 37:54Где он неправ: максимум, на котором развернулся рынок
    • 42:10ES: полосы сошлись, уровни индикатора Beacon
    • 45:14Размер позиции от расстояния до стопа
  • Ep017 | Trader talk with @kieranduff

    Trader Matt Podcast · Kieran Duff · 2026-06-24

Заявлено автором

Эти цифры и утверждения принадлежат автору. Мы их не проверяли.

  • Kieran Duff: первый прогон портфеля с новым фильтром режима на in-sample 2018-2019 годов, 5 стратегий (одна на возврат к среднему, четыре пробойные), добавлены не все стратегии. Profit factor 1.56 при числе сделок, поделённом на три из-за дробления ордеров, просадка 1.39% (для реальной торговли он её удваивает), доходность 7.4% за два года. В пересчёте на риск 10%: просадка около 13%, прибыль около $74 000 за два года, отношение доходности к просадке, по его прикидке, примерно 4-5 к 1. Размер счёта для этого пересчёта он не назвал, поэтому отношение проверить нельзя: на счёте $100 000 те же цифры дали бы около 5.7 к 1.

Похожие идеи

Обновлено: 2026-09-11