Стратегии
Внутридневная трендовая стратегия пересечения квантилей распределения Стьюдента с условием на SPY
Итог: Отменено
SpyConditionedStudentTQuantileCrossing
Сводка по итогам
После трёх итераций исправление ликвидации стратегии SPY проверено: все 77 сделок закрылись в дату входа, незакрытых позиций в конце не осталось. Стратегия пересечения квантилей с фиксированными коэффициентами принесла -5.71064% при коэффициенте Шарпа -11.3159 и оставалась убыточной даже до учёта смоделированного воздействия и стоимости займа. Проверка бэктеста рекомендовала отказаться от неё из-за отрицательного математического ожидания; настраиваемых параметров и подтверждённого дефекта кода, оправдывающих дальнейшую работу, нет. До оптимизации и последующих проверок дело не дошло; результат относится к перенесённым коэффициентам на доступной истории 2026, а не к ежегодно перекалибруемой стратегии авторов исходной работы.
Гипотеза
Точный перенос правил внутридневной стратегии авторов Бальдовина, Каманы, Каральо, Стеллы и Капорина на SPY.USEQ — исполнимый прокси ETF на индекс S&P 500 ETF. Сохрани наблюдения каждые 10 минут, окно 10:00–16:00 America/New_York, три доходности для условия, квантили 25%, входы и выходы по пересечению и ликвидацию в тот же день. Формируй наблюдения по завершённым барам длительностью 1 минут; не подменяй их часовыми или дневными барами. Используй опубликованные в статье коэффициенты модели как фиксированные перенесённые параметры. Здесь проверяется торговое правило с перенесёнными коэффициентами, а не воспроизводится исторический эксперимент за 15 лет с ежегодной перекалибровкой: короткая минутная история платформы не позволяет выполнить такую калибровку. Рыночные приказы исполняй по цене закрытия сигнального бара, как в статье. Исполнение при открытии следующей сессии, независимые встречные позиции и выбор политики стопа на том же баре не требуются. Заявления источника о результативности не проверены; учитываются смоделированные спред и воздействие.
Источник предлагает один основной торговый механизм; варианты с условием и без него не являются разными механизмами. Сохрани рынок S&P, а не переноси небольшое внутридневное преимущество на криптовалюту с более высокими комиссиями. Исполнение длинных и коротких позиций помогает решить проблему концентрации портфеля 80.8% только в длинных позициях. Этот выбор одного инструмента, заданный источником, не закрывает квоты по опционам и межбиржевой торговле. Данных о концентрации корпуса в предоставленном пустом объекте нет, поэтому утверждений о недавней доле SPY не делается.
negative_expectancy: этот замороженный перенос SPY с фиксированными коэффициентами убыточен во всех 77 сделках с закрытием в тот же день после исправления ликвидации. Средняя чистая доходность сделки — -0.08508% против порога проверки USEQ +0.05%; PF 0.1984, общая доходность — -5.71064%. Опасение QA подтвердилось. Нет настраиваемых параметров или доказанного дефекта кода, которые оправдывали бы оптимизацию или ещё одну итерацию разработчика. Это отвергает операционализацию с перенесёнными коэффициентами на доступной минутной истории за август–октябрь 2026, а не стратегию авторов исходной работы с ежегодной перекалибровкой. Короткая история ограничивает возможность обобщения, но не является причиной отказа.
Реализация
Перенос правила пересечения условных квантилей распределения Стьюдента авторов Бальдовина и соавторов с фиксированными коэффициентами на SPY.USEQ. Наблюдения берутся каждые 10 минут по завершённым барам длительностью 1 минут в период с 10:00 до 16:00 по Нью-Йорку. Прогноз учитывает первые три доходности за 10 минут. Стратегия открывает длинную позицию, когда цена пересекает верхнюю условную квантильную границу, и короткую — когда пересекает нижнюю; закрытие происходит при обратном пересечении. Приказ, принятый на закрытии бара, исполняется при открытии следующего 1-минутного бара (правило платформы для биржевых площадок сессий). Теперь решение о ликвидации в тот же день принимается по завершённому бару 15:59, поэтому исполнение происходит при открытии последней минуты (15:59) той же сессии. Начиная с 15:59, новые позиции не открываются.
Результаты верификации
Замени предикаты на `self.is_early_close_session(bar.ts_init)`. Также рассмотри возможность выводить триггер ликвидации из `self.minutes_to_session_close(bar.ts_init) <= 1`, а не задавать фиксированную минуту 15:59.
Исключение укороченных сессий задано вручную (июль 3, если только июль 4 не приходится на субботу, день после Дня благодарения или декабрь 24), а не по календарю платформы. Это важно: если в календаре платформы есть неучтённая укороченная сессия, в этот день не будет бара 15:59. Открытая в этот день позиция сохранится до следующей даты, и проверка при переходе даты вызовет ValueError('data_unavailable...'), прервав весь бэктест или бумажную торговлю. Для последних XNYS лет текущие правила выглядят верными, поэтому сейчас это не дефект.
Укажи это соглашение в описании стратегии. Если в статье выход из границы при равенстве t_p считается пересечением, используй только для шага после t_p величины `<= 0.0` / `>= 0.0`.
В t_p (шаг 3) оба предыдущих разрыва сбрасываются в 0. Поскольку в проверках пересечения используются строгие неравенства (`previous_upper_gap < 0.0`), при первом наблюдении прогноза (шаг 4, 10:40) вход невозможен, даже если цена уже ушла за границу. В t_p цена и граница совпадают, поэтому трактовка «на границе», а затем «за границей» как отсутствия пересечения — обоснованное прочтение статьи. Это всё же интерпретационный выбор, исключающий самые ранние возможные входы.
При желании ликвидируй позицию также, когда `minutes_to_session_close()` не превышает 2; тогда даже при пропуске одного бара сделка исполнится в пределах сессии.
Если бар 15:59 отсутствует, но бар 16:00 есть, решение о ликвидации позиции принимается в 16:00, а исполнение происходит при открытии следующей сессии. Так позиция остаётся открытой на ночь вопреки правилу закрытия в тот же день. Бары длительностью SPY 1 минут почти никогда не пропущены, поэтому на практике это маловероятно.
Не требуется.
Исполнение отличается от статьи двумя раскрытыми особенностями, обусловленными платформой. Сделки исполняются при открытии следующей минуты, а не по цене сигнального закрытия; выход в тот же день перенесён с 16:00 на открытие 15:59. Оба случая следуют правилу платформы (next_open_fill поддерживается, same_close_fill не поддерживается) и указаны в обосновании конфигурации, поэтому это не расхождения.
Обзор бэктеста
- Шарп
- -11,32
- Общая доходность
- -5,71%
- Максимальная просадка
- 5,80%
- Всего сделок
- 77
- Доля прибыльных
- 15,6%
- Профит-фактор
- 0,20
Исправление прежней ликвидации проверено: все 77 сделок закрыты в дату входа, последнее закрытие — в 15:59 по Нью-Йорку, незакрытых позиций в конце нет.
Код реализует пересечения направленных квантилей; длинные позиции 35, короткие позиции 42 и входная экспозиция около 90% соответствуют предписанным направлению и размеру позиции.
Подтверждается экономическое опасение QA: средняя чистая доходность сделки — -0.08508%, PF — 0.1984, общая доходность — -5.71064%; во все три наблюдаемых месяца результат отрицательный.
Даже с учётом смоделированного воздействия в размере $5,356.43 и стоимости займа $2.20 совокупный убыток остаётся около $352.
Все параметры зафиксированы контрактом. Подтверждённых дефектов реализации, оправдывающих ещё одну итерацию, нет.
Проверки истории по дням с данными 46 перенесли коэффициенты в 2026, а не ежегодно перекалибруемую историческую стратегию из исходной статьи.
Анализ
IMPLEMENTATION FIX — гипотеза не меняется: заставить код делать то, что он уже предписывает. Не добавляй и не меняй торговые правила. До оптимизации исправь ликвидацию в тот же день. Текущий рыночный выход 16:00 исполняется при открытии следующей сессии. Подай приказ на ликвидацию по завершённому минутному бару 15:59; исполнение возможно при открытии последней минуты с задержкой платформы. В этот день запрети новые входы. Сохрани фиксированные коэффициенты, размер позиции и наблюдения пересечений с интервалом 10 минут. Убедись, что даты входа и выхода по Нью-Йорку совпадают и в конце нет открытых позиций. Не запрашивай исполнение по цене закрытия того же бара. Укажи, что ликвидация до закрытия — приближение исполнения; если замороженный контракт источника её запрещает, передай конфликт руководителю исследований для разрешения, а не меняй фиксированные правила молча. Перед разрешением оптимизации заново оцени скорректированную чистую экономику.
История итераций
Проверка не пройдена (уровень 1 — статический анализ): - Запрещённый импорт: src.data.market_calendar — стратегиям разрешено импортировать только базовые классы и вспомогательные средства фреймворка (src.strategies.base_template, src.strategies.rolling_options_template, src.strategies.polymarket_series_template, src.strategies.helpers); сборщики данных, база данных, движок бэктестинга и реестр находятся вне песочницы. (строка 8)
Проверь последнюю отметку времени песочницы и журнал приказов; убедись, что после обработки закрытия 16:00 каждая полностью завершённая торговая сессия заканчивается без открытых позиций.
Для ликвидации в тот же день необходим доставленный бар в 16:00. Песочница сообщает об одной открытой позиции, но не указывает последнюю отметку времени, поэтому это не доказывает сбой ликвидации. Если конечного бара нет, на следующей сессии возникнет исключение, а ночная экспозиция не будет молча принята.
Сводка по итогам
Перенос с фиксированными коэффициентами не сработал на доступной минутной истории SPY; это не устанавливает результативность стратегии авторов исходной работы с ежегодной перекалибровкой.
После исправления ликвидации проверка бэктеста вынесла вердикт: отказаться из-за отрицательного математического ожидания; средняя чистая доходность сделки ниже порога проверки +0.05% USEQ. Все параметры были фиксированы, подтверждённых дефектов реализации, оправдывающих дальнейшие итерации, не выявлено; до оптимизации и последующих проверок аналитиком и специалистом по рискам дело не дошло.
Проверялись сделки по внутридневному тренду на SPY с фиксированными опубликованными коэффициентами распределения Стьюдента: пересечения квантилей на интервалах в 10 минут с условием на три доходности и закрытием позиции в тот же день.
За 46 дней с данными стратегия совершила 77 сделок и принесла -5.71064%; коэффициент Шарпа составил -11.3159, максимальная просадка — 5.7978%. Средняя чистая доходность сделки составила -0.08508%, фактор прибыли — 0.1984; даже с учётом смоделированных воздействия и стоимости займа совокупный убыток остался около $352.
Анализ
Свойства ансамблей высокочастотных данных и правил внутридневной торговли
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.