Идея коротко
Первые минуты после открытия кэш-сессии индекса шумные: исполняются ночные заявки, цена дёргается в обе стороны. Том Хугаард не торгует первую 15-минутную свечу. Он ждёт закрытия второй и ставит два отложенных ордера: покупку выше её максимума и продажу ниже минимума. Какая сторона сработает, туда рынок и пошёл после первого получаса.
Для контекста Том размечает ночной диапазон (максимум и минимум до открытия) и закрытие прошлого дня. Если пробой выводит цену за ночной диапазон, это сигнал по направлению. Если сигнал срабатывает внутри диапазона, Том предлагает проверить обратную сделку. На стримах её называют Anti.
Название от британского «school run»: открытие Нью-Йорка приходится на время, когда в Англии забирают детей из школы.
Почему это может работать
Логика та же, что у любого пробоя диапазона открытия. К концу первого получаса ночная информация уже учтена, и выход за экстремум второй свечи чаще показывает направленное движение, а не шум. Ночной диапазон служит фильтром. За его пределами рынку нужно новое решение участников. Внутри него цена ходит между уже известными уровнями, и пробои чаще возвращаются.
Сам Том называет сетап техникой входа. Стоп и выход он в определении не фиксирует. Andi на стриме прямо говорит, что для автоматизации их придётся задать самому. Ниже они заданы и помечены.
Правила
Время и опорные свечи
// открытие кэш-сессии, время биржи
SessionOpen = 09:00 CET (DAX)
| 08:00 UK (FTSE)
| 09:30 ET (Dow, NASDAQ, S&P 500)
Bar1 = 15-минутная свеча [SessionOpen; SessionOpen + 15 мин)
Bar2 = следующая 15-минутная свеча
// ночной диапазон: всё, что торговалось между закрытием прошлой кэш-сессии и SessionOpen
ON_High = максимум за это время
ON_Low = минимум за это время
// у Тома на графиках DAX диапазон обычно с полуночи до 08:00 (пояс в источнике не уточнён),
// Andi считает «ночью» всё время между сессиями. Это параметр, проверьте оба варианта
Вход: классический School Run (автор)
// после закрытия Bar2
BuyLevel = Bar2.High + Offset
SellLevel = Bar2.Low - Offset
BUY STOP at BuyLevel // автор
SELL SHORT STOP at SellLevel
// ордера OCO: когда исполнился один, второй отменяется
// фильтр по ночному диапазону (автор)
IF BuyLevel <= ON_High THEN CANCEL BUY STOP // покупка внутри диапазона не классический сигнал
IF SellLevel >= ON_Low THEN CANCEL SELL SHORT STOP
Вход: Anti внутри ночного диапазона (частично автор)
Том сформулировал Anti как гипотезу для проверки, Andi торгует его по ситуации. Уровни входа и выхода ниже наши.
// сигнал сработал бы внутри ночного диапазона → входим в обратную сторону
IF SellLevel >= ON_Low AND SellLevel <= ON_High
BUY LIMIT at SellLevel // Finetiq: покупаем там, где была бы продажа
IF BuyLevel >= ON_Low AND BuyLevel <= ON_High
SELL SHORT LIMIT at BuyLevel // Finetiq
AntiTarget = противоположная граница ночного диапазона // Finetiq, по примеру зрителя на V114
AntiStop = EntryPrice ∓ (Bar2.High - Bar2.Low) // Finetiq: стоп на размер второй свечи
Стоп и выход классического сигнала
// стоп: противоположная сторона второй свечи (Andi, V114; отчёт сообщества, V70)
Long: StopLoss = Bar2.Low
Short: StopLoss = Bar2.High
// цель: два расстояния до стопа (сообщество, V70)
Long: Target = EntryPrice + 2 * (EntryPrice - StopLoss)
Short: Target = EntryPrice - 2 * (StopLoss - EntryPrice)
// всё, что не закрылось, закрываем до конца кэш-сессии
EXIT at SessionClose - 5 мин // Finetiq
Фильтр внутренних свечей (автор)
// Том пропустил сигнал, потому что свечи 2, 3, 4 и 5 были внутренними
Inside(n) = High[n] <= High[n-1] AND Low[n] >= Low[n-1]
IF ордера ещё не исполнились к закрытию Bar5
AND Inside(Bar2) AND Inside(Bar3) AND Inside(Bar4) AND Inside(Bar5)
CANCEL все ордера на сегодня
// Finetiq: трактуем «внутренняя» как «внутри предыдущей свечи».
// Вариант для проверки: свечи 3–5 внутри Bar2
Размер позиции (сообщество)
RiskMoney = Equity * 1%
Lots = RiskMoney / (|EntryPrice - StopLoss| * PointValue)
// пересчитывать каждую сессию
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Таймфрейм | 15 минут | автор |
| Опорная свеча | вторая после открытия | автор |
| Offset | 0–2 пункта | Finetiq (в других сетапах Том использует 2 пункта на DAX) |
| Ночной диапазон | между сессиями или 00:00–08:00 | автор и Andi, две версии |
| Стоп | противоположная сторона второй свечи | сообщество (Andi) |
| Цель | 2 × стоп | сообщество (бэктест V70) |
| Цель Anti | противоположная граница ночного диапазона | Finetiq |
| Стоп Anti | размер второй свечи | Finetiq |
| Фильтр внутренних свечей | свечи 2–5 | автор |
| Выход по времени | за 5 минут до конца кэш-сессии | Finetiq |
| Риск на сделку | 1% | сообщество |
Что проверить
- Нужен ли ночной диапазон. Три прогона: чистый пробой второй свечи без фильтра, только классические сигналы за пределами диапазона, классические плюс Anti. Это главный вопрос Тома из V48.
- Два определения ночи. Диапазон между сессиями против окна 00:00–08:00. На CFD и фьючерсах с разными часами торговли результаты могут сильно отличаться.
- Выход. Цель 2:1 против 1:1, против закрытия в конце сессии, против перевода стопа в безубыток после +1R. Том говорит, что его результат держится на управлении позицией, а не на входе.
- Фильтр внутренних свечей. Сравните дни, отменённые фильтром, с остальными. Если отменённые дни в среднем не хуже, фильтр только уменьшает число сделок.
- Длина второй свечи. Длинная свеча даёт большой стоп. Разбейте сделки по отношению
(Bar2.High − Bar2.Low) / ATR(14) дневного. Том упоминает длину свечи как возможный фильтр. - Дни, когда сработали обе стороны. Посчитайте, как часто за день исполнились и покупка, и продажа. Именно этот случай Том называет самым неприятным.
- Разные индексы. DAX, FTSE, Dow, NASDAQ отдельно. Andi замечает, что на золоте сетап не работает: у него нет явного открытия.
Особенности платформ
TradingView (Pine Script)
- Окно сессии задавайте с часовым поясом биржи:
time(timeframe.period, "0900-0930", "Europe/Berlin"). Тогда переходы на летнее время учтутся сами. Европа и США переводят часы в разные даты, фиксированный сдвиг на 6 часов ломается на 2–3 недели в году. - Пара OCO-ордеров:
strategy.entry("L", strategy.long, stop = buyLevel, oca_name = "SR", oca_type = strategy.oca.cancel)и такой же вход в шорт. - Если на одной 15-минутной свече задеты и вход, и стоп или цель, тестер не знает порядка. Включите
use_bar_magnifier = true(нужен платный план) или тестируйте на данных младшего таймфрейма. - На CFD-символах и фьючерсах границы сессии разные. Проверьте, что Bar1 действительно начинается в 09:00 биржевого времени.
MultiCharts и TradeStation (EasyLanguage)
Timeв EasyLanguage это время закрытия бара. Вторая свеча DAX (09:15–09:30) имеетTime = 930. В Pine и MQL5 бары подписаны временем открытия.Buy next bar at X stopживёт один бар. Ордер нужно отправлять заново на каждом баре, пока он актуален, и перестать отправлять противоположный, когдаMarketPosition <> 0.- Время графика бывает биржевым или локальным, это настройка символа. Уточните перед тестом, иначе окно 09:00 уедет.
- Для порядка исполнения внутри 15-минутной свечи используйте Intrabar Order Generation или тест на минутных данных.
MetaTrader 5 (MQL5)
- Бары подписаны временем сервера брокера, обычно GMT+2/+3. 09:00 CET это 10:00 по такому серверу, но только пока обе стороны в одном режиме летнего времени.
- В тестере
TimeGMT()не даёт настоящего GMT, он совпадает со временем сервера. Смещение и даты перехода на летнее время придётся считать вручную. - «Пункт» у Тома это единица индекса.
_Pointу CFD на индекс часто 0.1 или 0.01. Стоп в 40 пунктов DAX это40.0в цене, а не40 * _Point. - Отложенные
BuyStopиSellStopчерезCTrade, OCO придётся делать самим вOnTradeTransaction. Спред на открытии у CFD расширяется, тестируйте на реальных тиках.
Где идея может сломаться
- Автор описал только вход. Стоп, цель и размер позиции взяты у сообщества и из нашей формализации. Результаты Тома в прямом эфире включают его ручное управление, которого в правилах нет.
- Единственный озвученный бэктест покрывает четыре с половиной месяца 2026 года, и методика автору стрима неизвестна.
- Anti Andi берёт по ситуации: глубокий откат, перекрытие свечей, боковик. Механическая версия выше может работать хуже ручной.
- Стопы и отступы в пунктах не масштабируются. DAX десять лет назад стоил 10–11 тысяч, сейчас в два с лишним раза дороже. Andi сам замечает, что на длинной истории фиксированные пункты нужно уменьшать.
- На открытии широкие спреды и проскальзывание. Для CFD это может съесть заметную часть результата.