Идея коротко
Ernie Chan управляет фондом QTS Capital и сервисом PredictNow.ai. В интервью он описывает стратегию фонда Tail Reaper. Это внутридневной моментум на фьючерсе S&P 500: если рынок за день сильно вырос, к концу сессии фонд в лонге, если сильно упал, в шорте. Лонг и шорт бывают в разные дни. Позиция ликвидируется в тот же день.
Больше автор ничего не раскрывает. Время входа, порог «сильного» движения, стоп и размер он не называет. Всё это ниже задали мы. Схема взята из академической линии market intraday momentum, на которую автор ссылается без названий работ: сигнал считается от вчерашнего закрытия, сделка идёт в последние 30 минут сессии.
Поверх базового правила у фонда стоит слой риска на машинном обучении. Он решает, торговать ли в этот день и каким объёмом. Автор прямо говорит, что исходная версия без ежегодных доработок уже не работает. Карточка описывает именно исходную идею и простую замену слоя риска.
Почему это может работать
Объяснение автора: вынужденная ребалансировка. Маркет-мейкеры опционов, которые продали колы и путы, держат короткую гамму. Когда рынок за день сильно вырос, их книга стала короткой по дельте. К концу дня, чтобы вернуться к нейтральной дельте, им нужно докупить фьючерсы или акции, и эта покупка толкает рынок дальше вверх. При падении всё зеркально: они продают.
Chan называет такую стратегию каузальной. У эффекта есть причина, и пока причина не исчезла, эффект остаётся, даже если о нём давно писали. Связь при этом шумная, на рынок в каждый день влияет много других факторов. Поэтому фонд держит простое правило входа и сложный слой риска. Задача слоя не искать сделки, а решать, в какие дни не торговать или торговать меньше. По мнению автора, машинное обучение работает именно здесь: отказ от сделки ни с кем не конкурирует.
Второе свойство, которое называет автор: стратегия трендовая и поэтому ведёт себя как long volatility, хотя опционов не торгует. Цифр по стратегии в интервью нет, ни доходности, ни числа сделок. Автор говорит, что эффект описан во многих академических работах, но ни одной не называет. Ссылки ниже наши, а не автора. Схема карточки (доходность от вчерашнего закрытия до последнего получаса и объяснение хеджированием гаммы дилерами) соответствует работе Baltussen, Da, Lammers и Martens (2021, Journal of Financial Economics). Более ранняя работа Gao, Han, Li и Zhou (2018) прогнозирует последний получас по первому получасу сессии, считая его от вчерашнего закрытия. Мы используем обе работы только как образец схемы, их выводы и числа с интервью не сверяли.
Правила
Сигнал (идея автора, окна и порог Finetiq)
// инструмент: фьючерс E-mini S&P 500 (ES) или микро-контракт MES // автор: фонд торгует только фьючерс на S&P 500
// 5-минутные бары, время биржи Нью-Йорка
PrevClose = цена ES в 16:00 ET прошлой сессии // Finetiq: закрытие кэш-сессии, не settlement и не 17:00 ET
Px1530 = Close бара 15:25–15:30 ET // Finetiq: сделка только в последние 30 минут
DayRet = Px1530 / PrevClose - 1
Sigma = StdDev(доходности 16:00 ET → 16:00 ET, 20 дней) // Finetiq: порог в долях обычного дневного хода
Z = DayRet / Sigma
// автор: сильный рост → лонг к концу дня, сильное падение → шорт
IF Z >= +K THEN BUY AT NEXT BAR OPEN // вход в 15:30 ET; Finetiq: K = 0.5
IF Z <= -K THEN SELL SHORT AT NEXT BAR OPEN
// Finetiq, прочтение без порога: каждый день по знаку DayRet (K = 0)
Выход и ограничения
// автор: каждый день позиция закрывается, через ночь не переносится
EXIT по закрытию бара 15:55–16:00 ET // Finetiq: время закрытия кэш-сессии
Long: StopLoss = EntryPrice - 0.3 * ATR(14, D1) // Finetiq: аварийный стоп, проверить и без него
Short: StopLoss = EntryPrice + 0.3 * ATR(14, D1)
не больше одной сделки за день // Finetiq
IF сокращённая сессия (закрытие 13:00 ET) // Finetiq
окно сдвигается на 12:30–13:00 ET, PrevClose тот же
Размер (Finetiq)
// автор: каждый день это новая позиция, размер выбирается заново
BaseSize = Equity * 0.5% / (0.3 * ATR(14, D1) * PointValue) // Finetiq: риск 0.5% до стопа
Contracts = floor(BaseSize)
Вариант B. Простая модель вместо ML-слоя автора (Finetiq)
Автор описывает слой так: модель оценивает вероятность того, что стратегия заработает сегодня. Высокая вероятность даёт больше капитала, низкая меньше или ноль. Факторы и модель не раскрыты. Ниже прозрачная замена на данных, доступных розничному трейдеру.
// все признаки известны до 15:30 ET
X = [ |Z|,
VIX на закрытии вчера,
гэп открытия / Sigma,
флаг третьей пятницы месяца,
флаг дня решения ФРС ] // Finetiq
p = логистическая регрессия P(сделка прибыльна | X) // Finetiq
обучение на прошлых 750 днях, переобучение раз в квартал // только прошлые данные
IF p < 0.5 THEN Size = 0 // автор: «не торговать в этот день»
IF p >= 0.5 THEN Size = BaseSize * min(1.5, 1 + 5 * (p - 0.5)) // Finetiq
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Инструмент | фьючерс S&P 500 (ES, MES) | автор |
| Направление | по движению дня, лонг и шорт | автор |
| Удержание | внутри дня, закрытие каждый день | автор |
| Слой риска | решает, торговать ли и каким объёмом | автор (модель не раскрыта) |
| Опорная цена | ES в 16:00 ET прошлой сессии | Finetiq |
| Момент сигнала | закрытие бара 15:25–15:30 ET | Finetiq |
| Выход | 16:00 ET | Finetiq |
| Нормировка | StdDev дневных доходностей за 20 дней | Finetiq |
| Порог K | 0.5, проверять 0–1.0 | Finetiq |
| Аварийный стоп | 0.3 × дневного ATR(14) | Finetiq |
| Риск на сделку | 0.5% капитала | Finetiq |
| Вариант B: признаки | |Z|, VIX, гэп, экспирация, ФРС | Finetiq |
| Вариант B: обучение | 750 дней, раз в квартал | Finetiq |
Что проверить
- Есть ли эффект вообще. Прочтение без порога: каждый день позиция по знаку DayRet с 15:30 до 16:00 ET. Посчитайте среднюю сделку в пунктах и отдельно после издержек: минимум один тик проскальзывания на входе и на выходе плюс комиссия. Сделка длится 30 минут, и средний результат в пару тиков издержки съедят целиком.
- Сила дня. Порог K = 0, 0.25, 0.5, 1.0. Если средняя сделка растёт вместе с порогом, связь с величиной дневного хода есть. Если нет, порог только сокращает выборку.
- Окно. Сигнал в 15:00, 15:30 и 15:45 ET при выходе в 16:00 ET. Отдельно выход в 16:15 ET, когда фьючерс ещё торгуется. Если результат держится только в одном окне, это подгонка.
- Время. Результат по годам, отдельно до и после 2022 года, когда у опционов на S&P 500 появились экспирации на каждый день недели. Хеджирование дилеров зависит от устройства опционного рынка, а автор сам говорит о затухании исходной версии.
- Свойство long volatility. Корреляция дневного результата с |DayRet| и с дневным изменением VIX. Результат в 2008, 2020 и 2022 годах. Автор утверждает, что стратегия зарабатывает в дни больших движений.
- Стоп. Без стопа против 0.3 и 0.6 дневного ATR. Внутри получаса стоп может выбивать как раз волатильные дни, которые дают прибыль.
- Слой риска. Вариант B против основного правила, только на данных после периода обучения. Если B выигрывает лишь на обучающей выборке, слой подогнан.
Особенности платформ
TradingView (Pine Script)
- Сессия
ES1!начинается в 18:00 ET прошлого дня, дневной бар закрывается позже 16:00 ET. Опорную цену берите с 5-минутного бара, закрывшегося в 16:00 ET, и храните вvar-переменной. Окно сделки:time(timeframe.period, "1530-1600", "America/New_York"). - По умолчанию ордер исполняется на открытии следующего бара: вход в 15:30, выход по
strategy.closeна баре 15:55 уйдёт на открытие бара 16:00. Для выхода точно по 16:00 ET удобнееprocess_orders_on_close = true, но тогда и вход исполнится по закрытию сигнального бара. Выберите один режим. - Дни с закрытием в 13:00 ET встроенным календарём не отмечены, задавайте их массивом дат.
- Глубина внутридневной истории зависит от тарифа. Для проверки по годам и кризисам может не хватить 5-минутных баров.
MultiCharts и TradeStation (EasyLanguage)
Timeэто время закрытия бара. Сигнальный бар 15:25–15:30 имеетTime = 1530, входBuy next bar at marketпройдёт на открытии бара сTime = 1535.- Выход по цене 16:00 ET на баре с
Time = 1600:Sell this bar on closeдля лонга иBuy to cover this bar on closeдля шорта.SetExitOnCloseв реальной торговле не срабатывает. - Дневной бар фьючерса в TradeStation закрывается по settlement. Sigma и опорную цену считайте по внутридневным закрытиям 16:00 ET, иначе порог и сигнал будут от другой цены.
- Если символ идёт по полной сессии CME, «вчерашнее закрытие» дневного бара окажется в 17:00 ET. Запоминайте цену 16:00 ET сами.
MetaTrader 5 (MQL5)
- Фьючерс ES есть у немногих брокеров. CFD на S&P 500 (US500, SPX500) повторяет индекс или фьючерс со спредом, и последние 30 минут на нём стоят дороже, чем на бирже.
- 15:30 и 16:00 ET переводите в серверное время брокера с учётом летнего времени в США и у сервера. В тестере
TimeGMT()равен серверному времени и не помогает. - Дневной бар CFD закрывается в полночь сервера, а не в 16:00 ET. PrevClose и Sigma считайте по барам M5.
- Сигнал берите с закрытого бара (индекс 1) и проверяйте появление нового 5-минутного бара, иначе вход повторится на каждом тике.
Где идея может сломаться
- Правила целиком наши. Автор назвал инструмент, направление, закрытие каждый день и назначение слоя риска. Окна, порог, стоп, размер и замена ML-слоя это стартовые значения для проверки.
- Автор сам говорит, что исходная версия не работает и живёт за счёт доработок почти каждый год. Простое правило из карточки ближе к исходной версии, и слабый результат на последних годах для неё ожидаем.
- Рабочая часть стратегии фонда скрыта в слое риска. Воспроизвести его нельзя, а сервис, который строит такие слои, автор продаёт.
- Цифр по стратегии в интервью нет. Все свойства, включая long volatility, это заявления автора.
- Средняя сделка короткая и маленькая. Проскальзывание в один тик на входе и выходе может обнулить результат, особенно на CFD.
- С порогом сигналы скапливаются в волатильные периоды. Результат может держаться на паре кризисных лет.
- Поток хеджирования дилеров меняется вместе с опционным рынком. Эффект может сдвинуться по времени внутри дня или ослабнуть, и на истории это будет выглядеть как поломка.