← Все идеи
#017ПробойВнутри дня

Сжатие Крэбела: NR4, ID/NR4 и пробой диапазона открытия со stretch

После дня сжатия (NR4, NR7, inside day, ID/NR4) ставим стоп-ордера за диапазоном открытия на расстоянии stretch. Варианты: дневной вход через максимум узкого бара и часовое сжатие Trader X на ES и NQ.

Jack Corsellis · Toby Crabel · Смотреть видео

Рынки

Фьючерсы, Индексы, Акции, Сырьё

Таймфрейм

D1, M5, H1

Данные

OHLC, Время сессий

Правила

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

Сложность

Средняя

Статус

Не проверено

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

TradingView есть ловушки
EasyLanguage есть ловушки
MetaTrader 5 есть ловушки

Идея коротко

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

Сжатие Крэбел меряет простыми фильтрами: NR4 (диапазон дня уже каждого из трёх предыдущих), NR7 (уже шести предыдущих), inside day (диапазон внутри вчерашнего) и их сочетание ID/NR4. На следующий день он ставит стоп-ордера выше и ниже диапазона открытия на расстоянии stretch, среднего за 10 дней отклонения от открытия до ближнего экстремума. Сработавший ордер становится позицией, второй служит защитным стопом.

В карточке ещё два варианта той же идеи сжатия. Jack Corsellis торгует узкие дневные бары в акциях-лидерах через их максимум. Trader X, разобранный проп-фирмой IQ Capital по логам сделок, ищет на часовом графике ES и NQ четыре свечи подряд, каждая не шире предыдущей.

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

Узкий день означает, что ни покупатели, ни продавцы не смогли сдвинуть цену. Рынок в равновесии и ждёт новой информации. Крэбел пишет, что участники действуют на первом признаке направления после такого затишья, поэтому первый уверенный выход из диапазона после сжатия чаще перерастает в трендовый день. Stretch отсекает шум у открытия: цена должна уйти от диапазона на типичную для этого рынка величину.

Второй слой объяснения про время. Идеальная сделка у Крэбела сразу идёт в плюс, лучше всего вход в первые 10 минут. Чем больше времени прошло от открытия до входа, тем ниже шанс. Если после входа цена стоит на месте, сделка подозрительна.

Цифры Крэбела взяты из его книги. Рынки и период теста в видео не названы. Объяснение Trader X про смену режимов волатильности дал ведущий по его логам, сам трейдер правила выхода не раскрыл.

Правила

Фильтры сжатия (автор)

// дневные бары; день 0 = последний закрытый день
R(k) = High[k] - Low[k]

NR4    = R(0) < R(1) AND R(0) < R(2) AND R(0) < R(3)     // уже каждого из трёх предыдущих
NR7    = R(0) < R(k) для всех k = 1..6
Inside = High[0] <= High[1] AND Low[0] >= Low[1]           // Finetiq: равенство экстремумов допускаем
ID_NR4 = Inside AND NR4                                    // лучший фильтр по данным Крэбела

R2(k)  = Highest(High, 2)[k] - Lowest(Low, 2)[k]
NR2bar = R2(0) < Lowest(R2, 20)[1]     // самый узкий 2-дневный диапазон за 20 дней
R3(k)  = Highest(High, 3)[k] - Lowest(Low, 3)[k]
NR3bar = R3(0) < Lowest(R3, 28)[1]     // 28 дней в видео #14 (27:23);
                                        // в видео #41 (02:25) Джек называет 20 дней. Проверьте оба
// Finetiq: сравниваем с окнами, закончившимися на днях 1..N, пересечение на день допускаем

Contraction = NR7 OR ID_NR4 OR (Inside AND R(0) < R(k) для k = 1..4)
// автор: ORB эффективен после inside day уже 4-5 предыдущих дней и после любого NR7

Вход ORB (автор)

// stretch по 10 предыдущим дням
Stretch = Average( MIN(High - Open, Open - Low), 10 )[1]

// день после Contraction
OR_High, OR_Low = максимум и минимум диапазона открытия
// Finetiq: длина диапазона в видео не названа. Стартовая версия: первый 5-минутный бар,
// вариант для проверки: цена открытия (OR_High = OR_Low = Open)

BuyLevel  = OR_High + Stretch
SellLevel = OR_Low  - Stretch

BUY STOP at BuyLevel
SELL SHORT STOP at SellLevel
// первый исполненный ордер = позиция, второй остаётся защитным стопом
Long:  StopLoss = SellLevel
Short: StopLoss = BuyLevel

CANCEL оба ордера, если за 60 минут после открытия ни один не исполнен
// Finetiq: автор говорит лишь, что поздний вход хуже, а худший вход перед закрытием

ORBp: одна заявка по тренду (автор)

// в рынке с явным направлением и на любом inside day (автор)
TrendUp   = Close > EMA(Close, 21) AND EMA(Close, 21) > EMA(Close, 21)[5]
TrendDown = Close < EMA(Close, 21) AND EMA(Close, 21) < EMA(Close, 21)[5]
// автор: основной тренд важнее всего остального. EMA 21 взята из примера Джека, наклон за 5 дней Finetiq

IF TrendUp   THEN только BUY STOP at BuyLevel
IF TrendDown THEN только SELL SHORT STOP at SellLevel
// защитный стоп ставится после входа: Long StopLoss = SellLevel
IF цена сначала дошла до противоположного уровня THEN CANCEL заявку    // автор

Сопровождение

// автор: стоп в безубыток в течение часа после входа
IF прошло 60 минут после входа
    IF позиция в плюсе THEN StopLoss = EntryPrice
    ELSE EXIT AT NEXT BAR OPEN        // Finetiq: «сделка ведёт себя не как идеал» трактуем как выход

// автор: цель это ход на 2-3 дня, но переносить только при существенной прибыли к концу сессии
IF до конца сессии 5 минут
    IF прибыль в пунктах >= Stretch THEN держим, StopLoss = EntryPrice   // Finetiq: «существенная» = один stretch
    ELSE EXIT
IF позиция открыта 3 дня THEN EXIT на закрытии                            // Finetiq

Вариант B. Дневной узкий бар в лидере (Джек)

// дневные бары; какие акции считать лидерами, решает отбор вне сигнала
Trigger = (NR7 OR NR2bar OR NR3bar OR Inside)
          AND бар у EMA(Close, 10) или EMA(Close, 21)     // автор: чаще всего у EMA 10 и 21
          // Finetiq: «у средней» = Low <= EMA <= High

ADRpct = 100 * (Average(High / Low, 20) - 1)    // автор: 20-дневный ADR% без гэпов; Finetiq: формула

IF Trigger
    BUY STOP at High[0]                          // автор: через максимум узкого бара
    StopLoss = Low[0]                            // автор
    IF (High[0] - Low[0]) / High[0] * 100 > 2/3 * ADRpct THEN CANCEL   // автор: риск 1/2-2/3 ADR%
    CANCEL через 3 дня без исполнения            // Finetiq

SELL 1/2 (или 1/3) LIMIT at EntryPrice + 1R (или + 2R)     // автор
остаток: EXIT AT NEXT BAR OPEN при Close < EMA(Close, 10) или EMA(Close, 21)   // автор

Вариант C. Монотонное сжатие Trader X

// часовые бары ES и NQ, позиции переносятся через ночь (автор)
Compression = R(0) <= R(1) AND R(1) <= R(2) AND R(2) <= R(3)
// автор: четыре свечи подряд, каждая не шире предыдущей, последняя самая узкая
// Finetiq: фразу можно прочитать и как четыре сравнения (пять свечей). Проверьте оба

BUY STOP at High[0] + 1 тик
SELL SHORT STOP at Low[0] - 1 тик              // OCO (автор)
после срабатывания оба уровня стираются, повторного входа по сетапу нет   // автор
не больше одной сделки в день на инструмент    // автор
часть крупных новостей пропускается            // автор, какие именно, неизвестно

// выход: у автора волатильностный трейлинг, формулу подобрать не удалось
InitialStop = противоположный уровень                    // Finetiq
Trail (long) = Highest(High с момента входа) - 3 * ATR(14)   // Finetiq: стартовое значение
SELL 1/2 LIMIT at EntryPrice + 2R, остаток по Trail           // Finetiq: автор закрывает частями

Параметры

Параметр Значение Откуда
NR4 и NR7 уже 3 и 6 предыдущих дней автор
Inside day диапазон внутри вчерашнего автор
Лучший фильтр ID/NR4 автор
Окно 2-bar NR 20 дней автор
Окно 3-bar NR 28 дней (#14) или 20 дней (#41) автор, два значения
Stretch среднее MIN(High − Open, Open − Low) за 10 дней автор
Диапазон открытия первый 5-минутный бар Finetiq
Окно для входа 60 минут от открытия Finetiq
Фильтр тренда ORBp EMA 21, наклон за 5 дней автор (пример Джека), наклон Finetiq
Безубыток в течение часа после входа автор
Перенос позиции прибыль к концу дня от одного stretch, до 3 дней Finetiq
Вариант B: риск не больше 1/2-2/3 ADR% за 20 дней автор
Вариант B: частичный выход 1/2 или 1/3 на 1R или 2R автор
Вариант B: трейлинг закрытие ниже EMA 10 или 21 автор
Вариант C: сжатие 4 свечи, каждая не шире предыдущей автор
Вариант C: таймфрейм и рынки H1, ES и NQ автор
Вариант C: трейлинг 3 × ATR(14) от максимума Finetiq
Вариант C: частичный выход 1/2 на 2R Finetiq

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

  1. Главное утверждение Крэбела. ORB в дни после Contraction против ORB в дни после широкого дня (диапазон больше трёх или шести предыдущих) и против ORB каждый день. Если после сжатия результат не лучше, фильтр не работает на вашем рынке.
  2. ID/NR4 против отдельных фильтров. Сравните inside day, NR4 и их сочетание на одном и том же входе. Крэбел утверждает, что сочетание лучше в 15 тестах из 16.
  3. Окрестность stretch. Множитель 0, 0.5, 1 и 1.5, окно 5, 10 и 20 дней. Отдельно длина диапазона открытия: цена открытия, 5, 15 и 30 минут. Если результат держится только на одной комбинации, это подгонка.
  4. Окно 3-bar NR. 20 дней против 28. Разница в двух видео Джека даёт готовый тест чувствительности.
  5. Выход. Безубыток через час против отсутствия безубытка, против выхода в конце дня и против переноса на 2-3 дня. Правило часа сильнее всего меняет процент прибыльных сделок.
  6. Trader X и издержки. Три сравнения против четырёх, монотонное сжатие против классического NR4 на H1. На ES тик стоит $12.50. Добавьте по тику проскальзывания на каждом стоп-ордере и комиссию и посмотрите, сколько остаётся от средней сделки.
  7. Вариант B. Порог риска 1/2 ADR против 2/3 и против отсутствия порога. Если без порога результат не хуже, фильтр только сокращает число сделок.

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

TradingView (Pine Script)

  • Фильтры сжатия и stretch считаются по дневкам, а вход на 5-минутках. Берите вчерашние значения без заглядывания: request.security(syminfo.tickerid, "D", expr[1], lookahead = barmerge.lookahead_on).
  • Дневной бар фьючерсов CME начинается в 18:00 ET предыдущего дня. Open, High и Low такого бара это не дневная сессия, на которой строится ORB. Для фьючерсов считайте диапазон, NR и stretch по основной сессии из внутридневных баров.
  • Пара заявок: strategy.entry с stop и oca_type = strategy.oca.cancel, после входа защитный стоп через strategy.exit(..., stop = sellLevel).
  • Час в сделке на 5-минутках: bar_index - strategy.opentrades.entry_bar_index(0) >= 12. Если вход и стоп задеты одной свечой, нужен use_bar_magnifier = true или младший таймфрейм.

MultiCharts и TradeStation (EasyLanguage)

  • Time это время закрытия бара: первый 5-минутный бар после открытия в 09:30 имеет Time = 935. Дневные значения удобно брать из второго потока (High of Data2).
  • Buy next bar at BuyLevel stop живёт один бар, заявки отправляются заново на каждом баре. Когда позиция открыта, перестаньте отправлять Sell Short и выставляйте Sell next bar at SellLevel stop. Иначе встречная заявка перевернёт позицию, а у Крэбела второй ордер только закрывает её.
  • NR и stretch зависят от Open, High и Low дня, а они от шаблона сессии (дневная или круглосуточная). Держите один шаблон для дневного и внутридневного потока.
  • Правило часа на 5-минутках: If BarsSinceEntry >= 12 then .... Для порядка исполнения внутри свечи включите Bar Magnifier или Look-Inside-Bar.

MetaTrader 5 (MQL5)

  • Дневной бар строится по времени сервера брокера, и его Open это полночь сервера, а не открытие биржи. Stretch по такому бару другой. Считайте дневные значения сами из M5 за биржевую сессию.
  • Короткий воскресный бар у части брокеров почти всегда проходит как NR4 и NR7. Это ложные сигналы на понедельник, их нужно исключить.
  • Открытие 09:30 ET переводите в серверное время с учётом летнего времени. TimeGMT() в тестере равен серверному времени.
  • «Один тик» у Trader X это шаг цены ES (0.25). У CFD на S&P 500 шаг другой, берите SYMBOL_TRADE_TICK_SIZE, а не _Point. OCO и стирание уровней после входа придётся писать самим.

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

  • Статистика Крэбела старая и из книги. Рынки, период и издержки теста в видео не названы. Паттерны сжатия с тех пор стали широко известны.
  • Крэбел требует учитывать весь контекст рынка: тренд, поддержку и сопротивление, характер конкретного инструмента. Механическая версия этого не содержит и может работать хуже его практики.
  • Результаты Trader X покрывают 25 календарных дней и 20 торговых. Их показала проп-фирма в рекламном ролике со скидкой на челлендж. Ведущий говорит, что по коду стратегия находила и посредственные пробои, которые Trader X не брал, то есть отбор сигналов у него ручной. Формула стопа неизвестна.
  • Стоп-ордера на пробое у открытия исполняются с проскальзыванием, а спреды в первые минуты шире. На частых внутридневных сделках это заметная доля ожидания.
  • Вариант B опирается на выбор акций-лидеров. Какие бумаги считать лидерами, Джек решает сам, и без этого отбора сигнал на случайной акции может вести себя иначе.

Источники

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

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

  • По данным книги Крэбела в пересказе Джека: сделки ORB по направлению движения от открытия после дней сжатия дали $710 000 на 7313 сделках, после дней расширения $102 000 на 7524 сделках. Прибыль примерно в 7 раз выше.
  • Там же: в 15 из 16 тестов ORB после ID/NR4 давал более высокую вероятность успеха, чем ORB в произвольный день.
  • Trader X за 25 дней: +50.15%, profit factor 6.84, 61.9% прибыльных сделок, отношение прибыли к риску 4.21. Выплаты с нескольких funded-счетов от $47 300 до $102 350 в месяц. Ведущий сам называет результаты аномальными.
  • На слайде того же видео: 12 прибыльных и 8 убыточных дней, profit factor 6.53, максимальная просадка −3.86%, месячный Sharpe 7.06. Profit factor на слайде не совпадает с озвученным.

Похожие идеи

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