Перейти к содержимому
Все стратегии

Стратегии

Сезонность внутридневных сессий BTC — торговля в ONE повторяющемся внутридневном окне доходности (выбирается адаптивно, не задано жёстко), календарное преимущество без тренда и возврата к среднему на недостаточно представленном коротком горизонте (BINANCE USD-M, бары 1H, лонг-шорт, 3 параметров)

Итог: Отменено

BtcIntradaySessionSeasonalityLS

Проверка бэктеста: - метрики ненадёжны: несогласованность — знак Шарпа 0.03 расходится со знаком total_return -10.55%: Шарп рассчитан по ряду mtm_equity_curve, а доходность — по кривой капитала. Оценивай по кривой…

Гипотеза

Проверка LONG-SHORT, SINGLE-INSTRUMENT BTC продолжает осознанный выход из семейства трендовых стратегий, которое мета-обучающая система уже закрыла (L62: выживаемость одноинструментальных трендовых стратегий 0.003; все нетрендовые конструкции без импульса в этой сессии показали базовый коэффициент Шарпа ≈0.4–0.7 и провалились, а тезис о конвергенции как «усилителе преимущества» был прямо опровергнут результатом 0.634). Проверяется внутридневной аналог ещё не закрытой стратегии на начало месяца: TIME-OF-DAY……Показать большеСвернуть

Проверка LONG-SHORT, SINGLE-INSTRUMENT BTC продолжает осознанный выход из семейства трендовых стратегий, которое мета-обучающая система уже закрыла (L62: выживаемость одноинструментальных трендовых стратегий 0.003; все нетрендовые конструкции без импульса в этой сессии показали базовый коэффициент Шарпа ≈0.4–0.7 и провалились, а тезис о конвергенции как «усилителе преимущества» был прямо опровергнут результатом 0.634). Проверяется внутридневной аналог ещё не закрытой стратегии на начало месяца: TIME-OF-DAY SESSION SEASONALITY — тенденция криптовалютной доходности концентрироваться в определённых временных окнах UTC из-за повторяющихся потоков в сессиях (US риск-он в часы торговли акциями, поведение в часы азиатской сессии и фиксированное время расчёта финансирования 00:00/08:00/16:00 UTC, когда концентрируется позиционная активность). Сигнал определяется только положением бара во времени, ORTHOGONAL от ценового пути, тренда и возврата к среднему, поэтому он действительно диверсифицирует портфель с единственной продвигаемой стратегией (импульсной), а не копирует коррелированную трендовую стратегию. Используется единственная найденная в этой сессии основа без артефактов и уязвимости: один инструмент, Binance USD-M, чистый OHLCV (COIN-M прерывается при написании кода, история HL ограничена, данные по опционам Deribit охватывают лишь около 34 дней, а мультиинструментальный подход даёт нереалистичную доходность). Чтобы снизить переобучение, лучшее окно выбирается ADAPTIVELY по скользящей выборке, а не задаётся жёстко; оборот намеренно ограничен ONE полным оборотом в день, чтобы контролировать влияние комиссий. Стратегия заполняет недостаточно представленный сегмент короткого горизонта (8.9%). Честная оценка: это EXPLORATION проверка непроверенного семейства, преимущество которого может быть небольшим или исчерпанным, но это верный шаг после исчерпания трендовых стратегий, возврата к среднему, парного трейдинга, финансирования, опционов, кросс-секционных стратегий и композитных факторов. Обойдены кладбища стратегий: трендовые NOT (L62), возврат к среднему/пары/финансирование/факторы (NOT), источник ликвидаций и квартальных контрактов NOT (L61). Ровно 3 настраиваемых параметра: ширина сессионного блока (часы), глубина скользящей выборки для выбора окна и множитель стопа ATR.

Итерация 6 напрямую устраняет проблему, выявленную при проверке бэктеста: если судить по кривой капитала, результат стратегии составил -10.55%, а кривая была настолько ровной, что рассчитанный по mtm коэффициент Шарпа (+0.03) имел противоположный знак. Реализация работала (атрибуция блоков, согласование входов и выходов и частота в один полный оборот в день подтверждены), поэтому проблема в выборе окон WHICH, а не в технической части. Поправка на издержки в 5 итерации LCB исправила ранжирование, но среднее за 60……Показать большеСвернуть

Итерация 6 напрямую устраняет проблему, выявленную при проверке бэктеста: если судить по кривой капитала, результат стратегии составил -10.55%, а кривая была настолько ровной, что рассчитанный по mtm коэффициент Шарпа (+0.03) имел противоположный знак. Реализация работала (атрибуция блоков, согласование входов и выходов и частота в один полный оборот в день подтверждены), поэтому проблема в выборе окон WHICH, а не в технической части. Поправка на издержки в 5 итерации LCB исправила ранжирование, но среднее за 60 дней с поправкой на шум всё ещё считает один сильный эпизод в скользящей выборке «обоснованным». Именно так календарная стратегия торгует неповторяющиеся дрейфы и платит за них комиссию. Минимальное изменение для решения этой проблемы — тест устойчивости внутри выборки: разделить скользящую выборку по времени и требовать, чтобы обе половины дрейфовали в том же направлении, что и вся выборка, AND чтобы одна только недавняя половина преодолевала порог издержек допуска окна. Повторяемость — суть предположения о преимуществе сезонности сессий; окно, не прошедшее проверку, не следует торговать, а в дни, когда ни одно окно не подходит, стратегия просто остаётся вне рынка. Новых настраиваемых параметров нет (разбиение задано структурно, без подчёркивания, поскольку это не параметр); структура Layer 1/2, импорты и непрерывный сигнал t-статистики не затронуты, частота сделок остаётся ограничена одним полным оборотом в день. Честная заметка: это пятое уточнение статистики отбора для того же механизма. Если фильтр устойчивости всё ещё не выведет кривую капитала в плюс, предпосылку о внутридневной сезонности сессий на BTC 1H следует считать опровергнутой, а не недостаточно настроенной: это будет означать, что ни одно UTC окно не имеет устойчивого дрейфа выше комиссии за полный оборот примерно 0.10%.

Отрицательное математическое ожидание / преимущество отсутствует на надёжной выборке из 654 сделок за 6.7 лет: profit_factor 0.9834 (<1), математическое ожидание -$9.26/сделку, Шарп 0.023, Сортино 0.015, recovery_factor -0.17, information_ratio -0.91, убыток в 5 из 7 календарных лет. Механизм ортогонален и реализован корректно (654 сигналов = 654 отправленных заявок, один полный цикл сделки в день, адаптивное окно), поэтому это честная проверка внутридневной сезонности сессий BTC-1H — гипотеза опровергнута:……Показать большеСвернуть

Отрицательное математическое ожидание / преимущество отсутствует на надёжной выборке из 654 сделок за 6.7 лет: profit_factor 0.9834 (<1), математическое ожидание -$9.26/сделку, Шарп 0.023, Сортино 0.015, recovery_factor -0.17, information_ratio -0.91, убыток в 5 из 7 календарных лет. Механизм ортогонален и реализован корректно (654 сигналов = 654 отправленных заявок, один полный цикл сделки в день, адаптивное окно), поэтому это честная проверка внутридневной сезонности сессий BTC-1H — гипотеза опровергнута: анализ режимов показывает, что убытки сосредоточены в терцилях низкой (-15.5%) и нормальной (-4.2%) волатильности — именно там, где повторяющийся внутридневной дрейф должен быть наиболее выраженным; в стрессовом режиме результат лишь около нуля. Равновзвешенное avg_trade_return_pct 0.2207% опровергается отрицательным ожиданием с учётом размера позиций USD (убыточные сделки имеют больший номинал), поэтому преимущество отсутствует, а не просто чувствительно к комиссиям. Это итерация 6; в собственной заметке разработчика признаётся, что неположительную кривую следует трактовать как опровержение гипотезы, а не как недостаточную настройку параметров; настраиваемые параметры 3 (ширина блока, глубина истории, стоп ATR) не могут обратить сигнал, у которого отсутствует дрейф PF-0.98. Опасения QA относительно преимущества подтвердились на всей истории. Не стоит тратить 2 часов на оптимизацию.

Реализация

Лонг/шорт BTC USD-M бессрочный контракт на барах 1H: стратегия торгует ровно в одном адаптивно выбранном сессионном окне ONE UTC в день. День UTC делится на календарные блоки по block_hours; реализованная доходность каждого завершённого блока добавляется в скользящую дневную выборку этого блока (lookback_days). Для каждого блока стратегия рассчитывает среднее, стандартную ошибку, t-статистику, нижнюю границу доверительного интервала за вычетом издержек с поправкой на множественные проверки (|mean| - sqrt(2 ln……Показать большеСвернуть

Лонг/шорт BTC USD-M бессрочный контракт на барах 1H: стратегия торгует ровно в одном адаптивно выбранном сессионном окне ONE UTC в день. День UTC делится на календарные блоки по block_hours; реализованная доходность каждого завершённого блока добавляется в скользящую дневную выборку этого блока (lookback_days). Для каждого блока стратегия рассчитывает среднее, стандартную ошибку, t-статистику, нижнюю границу доверительного интервала за вычетом издержек с поправкой на множественные проверки (|mean| - sqrt(2 ln k)*stderr - порог комиссии) и флаг устойчивости по разделённой выборке: обе половины скользящей выборки должны дрейфовать в одну сторону, а недавняя половина отдельно должна покрывать торговые издержки. Раз в календарный день выбирается подходящее окно (устойчивое, с положительным результатом после издержек LCB) с наибольшим обоснованным дрейфом после издержек, и сделка открывается в его направлении: вход по рынку на закрытии первого бара окна, выход в конце окна, со стопом ATR и жёстким календарным ограничением. Размер позиции ограничен риском ATR на уровне 1% капитала на сделку и номиналом 1x капитала. Ровно три настраиваемых параметра (block_hours, lookback_days, atr_stop_mult); ограничения продублированы в _param_bounds.

Результаты верификации

Рассмотри возможность задать _edge_mult >= 1.0, чтобы порог повторяемости превышал полную стоимость оборота, или увеличить _fee_round_trip до фактической комиссии за полный оборот. Только рекомендация: речь о преимуществе и прибыльности, а не об ошибке корректности.

Порог издержек для допуска окна составляет fee_round_trip * edge_mult = 0.0010 * 0.5 = 0.05% номинала — ниже полной круговой комиссии тейкера примерно 0.10% на Binance USD-M и ниже порога жизнеспособности 0.15%. Можно выбрать и торговать окно, дрейф которого за недавнюю половину выборки составляет всего около 0.05%; значит, некоторые торгуемые окна структурно убыточны с учётом комиссий ещё до поправки на шум оценки. Поправка LCB на множественные проверки смягчает это, но не поднимает базовый порог выше полной стоимости оборота.

Если базовый механизм вызывает переопределение, изменений не требуется; иначе переименуй. Не блокирует работу.

min_bars_required(self) переопределяет метод фреймворка (предупреждение Layer-1 base_shadow). Здесь это безопасно, поскольку переопределение возвращает допустимый период прогрева (24), но убедись, что базовый шаблон учитывает переопределение, а не использует собственную реализацию.

Результат на тестовом отрезке явно отрицательный (total_return -14.5%, Шарп -0.86, PF 0.69, avg_trade_return_pct -0.020%, win_rate 0.46 по 110 сделкам), а сам механизм чувствителен к комиссиям: порог отбора равен fee_round_trip*edge_mult = 0.0010*0.5 = 0.05%; иначе говоря, окну достаточно превысить HALF примерно 0.10% круговой комиссии Binance USD-M за последнюю половину выборки, чтобы пройти отбор (фильтр LCB добавляет поправку на шум sqrt(2 ln k)*stderr, повышая фактический порог, но структурный минимум всё ещё……Показать большеСвернуть

Результат на тестовом отрезке явно отрицательный (total_return -14.5%, Шарп -0.86, PF 0.69, avg_trade_return_pct -0.020%, win_rate 0.46 по 110 сделкам), а сам механизм чувствителен к комиссиям: порог отбора равен fee_round_trip*edge_mult = 0.0010*0.5 = 0.05%; иначе говоря, окну достаточно превысить HALF примерно 0.10% круговой комиссии Binance USD-M за последнюю половину выборки, чтобы пройти отбор (фильтр LCB добавляет поправку на шум sqrt(2 ln k)*stderr, повышая фактический порог, но структурный минимум всё ещё ниже стоимости полного оборота). Атрибуция по режимам показывает убытки именно в спокойном и обычном терцилях, где повторяющийся сезонный дрейф должен быть наиболее выраженным (спокойный -8.4%, обычный -10.0%); в стрессовом терциле результат ровный. В собственной честной заметке разработчик признаёт: если фильтр стабильности итерации-6 не выведет кривую в плюс, предпосылку о внутридневной сезонности BTC-1H следует считать опровергнутой, а не недостаточно настроенной. Это поисковая проверка непроверенного семейства, преимущество которого может быть небольшим или исчерпанным. Итог должны определить полный бэктест и оптимизатор, но аналитик должен быть готов отказаться от гипотезы, если на полной истории устойчивый сигнал дрейфа так и не появится.

Обзор бэктеста

Шарп
0,02
Общая доходность
4,51%
Максимальная просадка
29,54%
Всего сделок
654
Доля прибыльных
48,6%
Профит-фактор
0,98

Механизм действительно ортогонален тренду и возврату к среднему (календарный сигнал на основе положения во времени) и реализован корректно: 654 сигналов на вход = 654 отправленных заявок, один полный цикл сделки в день, как и задумано, адаптивный выбор окна (не задан жёстко).

Большая надёжная выборка (654 сделок / 6.7 лет, 58,560 баров, metrics_reliable=true) — корректная проверка предпосылки.

profit_factor 0.9834 (<1) с отрицательным ожиданием -$9.26/сделку и avg_trade_pnl_usd -9.26 — убыточная стратегия после издержек.

Шарп 0.023, Сортино 0.015 ~ ноль; recovery_factor -0.17, Калмар -0.026, information_ratio -0.91 (отстаёт от стратегии «купи и держи»).

Убыточна в 5 из 7 календарных лет (2022 -11.3%, 2025 -14.1%, 2026 -4.5%).

Атрибуция по режимам опровергает предпосылку: убытки сосредоточены в спокойном (-15.5%) и обычном (-4.2%) терцилях, где повторяющийся сезонный дрейф должен быть наиболее выраженным; в стрессовом терциле результат ровный. Опасения QA по поводу преимущества подтвердились.

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

Это итерация 6; в собственной заметке разработчик признаёт, что неположительная кривая означает опровержение предпосылки, а не недостаточную настройку.

Анализ

Проверка бэктеста: - метрики ненадёжны: несогласованность — знак Шарпа 0.03 расходится со знаком total_return -10.55%: Шарп рассчитан по ряду mtm_equity_curve, а доходность — по кривой капитала. Оценивай по кривой капитала.

История итераций

Ошибка проверки (уровень 2 — синтетические сценарии): Использованные параметры: ['_risk_frac', '_atr_period', '_gate_scale', 'block_hours', '_param_bounds', 'atr_stop_mult', 'lookback_days', '_min_stop_frac', '_max_gross_frac', '_min_sample_frac'] Убедитесь, что __init__ задаёт все атрибуты с помощью self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735690980000) - steady_downtrend: TypeError:……Показать большеСвернуть

Ошибка проверки (уровень 2 — синтетические сценарии): Использованные параметры: ['_risk_frac', '_atr_period', '_gate_scale', 'block_hours', '_param_bounds', 'atr_stop_mult', 'lookback_days', '_min_stop_frac', '_max_gross_frac', '_min_sample_frac'] Убедитесь, что __init__ задаёт все атрибуты с помощью self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735690980000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735690980000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735690980000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735690980000) - zero_volume: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735690980000) - price_gap: TypeError: FactoryStrategy._bar_ts() принимает 1 позиционных аргумента, но передано 2 (временная метка бара: 1735690980000)

Проверка не пройдена (слой 4 — обзор QA): - Убедительных признаков преимущества нет: адаптивно выбранное окно сессии даёт обратный прогноз вне выборки (пункт контрольного списка №7, L6/L7). Песочница: total_return -9.44%, коэффициент Шарпа -1.61 (CI [-3.06, 0.03]), avg_trade_return_pct -0.584%, profit_factor 0.10 (валовые убытки примерно в 10x раз больше валовой прибыли), win_rate 0.24, на 21 сделках (avg_loss 657 против avg_win 214). Неудача связана именно с основным риском механизма: выбор внутридневного……Показать большеСвернуть

Проверка не пройдена (слой 4 — обзор QA): - Убедительных признаков преимущества нет: адаптивно выбранное окно сессии даёт обратный прогноз вне выборки (пункт контрольного списка №7, L6/L7). Песочница: total_return -9.44%, коэффициент Шарпа -1.61 (CI [-3.06, 0.03]), avg_trade_return_pct -0.584%, profit_factor 0.10 (валовые убытки примерно в 10x раз больше валовой прибыли), win_rate 0.24, на 21 сделках (avg_loss 657 против avg_win 214). Неудача связана именно с основным риском механизма: выбор внутридневного интервала с наибольшим |t| по скользящей выборке и торговля в направлении его знака не сохраняются вне выборки — внутридневная сезонность, выбранная по данным внутри выборки, представляет собой шум на BTC, а полученный порог с поправкой на множественное тестирование (t_crit = sqrt(2*ln n_blocks) ~= 1.89) не помог его избежать (в недавнем году стратегия в основном открывала короткие позиции и потеряла 10:1). Сухой прогон за весь период, который мог бы опровергнуть отрицательный результат песочницы, не представлен, поэтому мой критерий (положительный результат песочницы OR подтверждённый положительный результат за весь период) не выполнен ни по одному пункту. Важно, что это внутридневной аналог стратегии на границе месяца, которую разработчик SAME уже опроверг в предыдущем обзоре на BTC (концентрации у границы месяца нет, пик приходится на середину месяца, недавний режим отрицателен во всём пространстве параметров): календарная сезонность теперь демонстрирует отсутствие преимущества и на месячном, и на дневном масштабе.

Проверка не пройдена (слой 4 — обзор QA): - Данные за весь период, которые я запросил, не подтверждают механизм, и разработчик обоснованно рекомендует отказаться от него. Возможность покрыть комиссии опровергнута: при стандартных настройках (W=12, L=120) сухой прогон разработчика за весь период дал 745 сделок, в среднем -0.010% на сделку, PF 0.99 — валовый результат без проскальзывания на уровне безубыточности или ниже. Валовый дрейф до комиссий в выбранном окне для всех 36 конфигураций составляет от +0.038% до……Показать большеСвернуть

Проверка не пройдена (слой 4 — обзор QA): - Данные за весь период, которые я запросил, не подтверждают механизм, и разработчик обоснованно рекомендует отказаться от него. Возможность покрыть комиссии опровергнута: при стандартных настройках (W=12, L=120) сухой прогон разработчика за весь период дал 745 сделок, в среднем -0.010% на сделку, PF 0.99 — валовый результат без проскальзывания на уровне безубыточности или ниже. Валовый дрейф до комиссий в выбранном окне для всех 36 конфигураций составляет от +0.038% до +0.127% на сделку: не выше комиссий тейкера за оборот 0.10% и намного ниже порога аналитика 0.15%; разработчик сообщает, что даже лучший из 36 вариантов не достигает порога на всём периоде. Внутридневной дрейф сессии реален, но на порядок меньше затрат на исполнение тейкером. Положительный результат песочницы слоя -3 (+4.41%, avg_trade_return_pct +0.361%, PF 1.37) получен на нерепрезентативном срезе недавнего года: только короткие позиции (28/0 сделок), эксцесс 28.5; ему прямо противоречат безубыточные или отрицательные результаты за весь период. Мой критерий требует положительного результата в песочнице OR подтверждённого положительного результата за весь период; измеренный разработчиком результат за весь период безубыточен или отрицателен, поэтому положительный результат песочницы не подтверждается. Неудачу нельзя исправить настройкой: смена направления также даёт отрицательный результат за весь период (это не ошибка знака), а фильтр устойчивости ничего не меняет. И это уже THIRD-й календарный аномальный сигнал, который не сработал на BTC: месячный (на границе месяца) опровергнут перебором всех параметров, дневной — артефакт единственного выброса, этот внутридневной сигнал безубыточен.

Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.