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

Стратегии

BTC Расширенный равновзвешенный композит из 9 факторов (всегда на рынке, без свободных параметров) — лонг-шорт: сильнее задействовать диверсификацию PROVEN, чтобы поднять Sharpe стабильного композита выше порога DSR (дневные бары, 0 настраиваемых параметров)

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

BtcNineFactorAlwaysInCompositeLS

Сводка по итогам

BtcNineFactorAlwaysInCompositeLS построили на двух предыдущих выводах: диверсификация была рабочим рычагом семейства композитов, а избирательность и фильтрация вредили. Поэтому стратегия убрала все фильтры, всегда находилась в рынке согласно знаку композита, расширила число факторов с 5 до 9 и использовала конструкцию без свободных параметров, чтобы устранить инфляцию от выбора лучшего из N вариантов. Всё это было направлено на то, чтобы немного поднять стабильный композит выше порога DSR. Собственный бэктест……Показать большеСвернуть

BtcNineFactorAlwaysInCompositeLS построили на двух предыдущих выводах: диверсификация была рабочим рычагом семейства композитов, а избирательность и фильтрация вредили. Поэтому стратегия убрала все фильтры, всегда находилась в рынке согласно знаку композита, расширила число факторов с 5 до 9 и использовала конструкцию без свободных параметров, чтобы устранить инфляцию от выбора лучшего из N вариантов. Всё это было направлено на то, чтобы немного поднять стабильный композит выше порога DSR. Собственный бэктест опроверг гипотезу: девять факторов дали Sharpe 0.802, ниже, чем у варианта-собрата с 5 факторами (0.829), при более низком минимуме CI; стратегия, всегда находящаяся в рынке, потеряла 2022 и недавний 2025, а скользящий Sharpe оставался отрицательным до начала 2026. Тем самым была утрачена положительная доходность в каждом году — единственный довод в пользу продвижения семейства композитов. Несмотря на чистый PF 1.699 и 1.56% на сделку, доля выигрышных сделок 28.9%, доходность зависела от толстых хвостов и выбросов, а информационный коэффициент уступал стратегии «купи и держи». В итоге это оказался доминируемо слабый, избыточный аналог уже поставленного в очередь композита из мёртвого класса импульсных стратегий OHLCV. Аналитик отказался от него при проверке бэктеста: параметров для настройки не было, поэтому оптимизация стала бы простой валидацией, которая, вероятно, не прошла бы проверки OOS и отложенной выборки. До оптимизации, анализа или проверки рисков стратегия не дошла.

Гипотеза

LONG-SHORT, направленная стратегия на одном инструменте по BTCUSDT.BINANCE (бессрочный контракт USD-M), дневные бары. Она опирается на два решающих факта из результатов композита в этой сессии: (1) простой композит из 5 факторов с равными весами — лучшая и единственная найденная конструкция, устойчивая к режимам (ROBUST): «положительный результат EVERY год, включая 2025/2026, просадка 6.87%, PF 1.54, sharpe_ci_low 0.0716>0», коэффициент Шарпа 0.724; (2) добавление SELECTIVITY/фильтрации (вариант с порогом……Показать большеСвернуть

LONG-SHORT, направленная стратегия на одном инструменте по BTCUSDT.BINANCE (бессрочный контракт USD-M), дневные бары. Она опирается на два решающих факта из результатов композита в этой сессии: (1) простой композит из 5 факторов с равными весами — лучшая и единственная найденная конструкция, устойчивая к режимам (ROBUST): «положительный результат EVERY год, включая 2025/2026, просадка 6.87%, PF 1.54, sharpe_ci_low 0.0716>0», коэффициент Шарпа 0.724; (2) добавление SELECTIVITY/фильтрации (вариант с порогом уверенности) ухудшило результат (WORSE: коэффициент Шарпа 0.724→0.579, нижняя граница CI +0.072→−0.055). CONCLUSION: работает рычаг DIVERSIFICATION; избирательность и фильтрация вредят. Поэтому стратегия сохраняет композит с ALWAYS-IN-MARKET, равными весами и нормализацией по волатильности в доказанном виде (без фильтрации, фильтра согласования с трендом и избирательности по трейлинг-стопу — все опровергнуты) и задействует рабочий рычаг HARDER: расширяет набор факторов с 5 примерно до 9 ортогональных факторов на дневных барах, зарегистрированных заранее, чтобы специфический шум каждого фактора диверсифицировался, а коэффициент Шарпа композита рос к порогу DSR и выше. В сочетании с ZERO свободными параметрами (каждое окно, вес и порог зарегистрированы заранее и заданы в коде → оптимизатор проводит около 1 испытаний → дефляция из-за выбора лучшего результата из N исчезает → умеренно более высокий стабильный коэффициент Шарпа проходит порог дефлированного коэффициента Шарпа). Это нацелено на показатель SAME, как и поставленная в очередь версия с 5 факторами и нулём параметров, но с помощью рычага DIFFERENT (больше диверсификации вместо простого устранения дефляции); это противоположность неудачной версии с фильтрацией. NOT шаблон конвергенции (L56 — композит из 9 факторов), NOT проверка одного сигнала (все около 0.5), NOT композит с фильтрацией и избирательностью (опровергнут — это постоянное присутствие на рынке), NOT выпуклые семейства и семейства с затуханием по режимам, NOT поперечный анализ (L52 — один актив), NOT возврат к среднему (L53), NOT микроструктура/кэрри/базис/опционы (не работают/нет инфраструктуры). Равные веса и ноль подобранных параметров означают минимальный DOF. На BTC (где был продемонстрирован стабильный композит). Исполнение сделок лонг-шорт. Риск: постоянный размер позиции с нормализацией по волатильности (доказанная форма), ограниченный 20% капитала*кредитное плечо; продемонстрирован профиль просадки около 7%; ограничение плеча 2x (считывает self.config.leverage).

Буквально реализованы оба рычага гипотезы. (1) GATING REMOVED: позиция равна знаку композита без порога, фильтра, стопа и выхода по времени — should_exit срабатывает только при смене знака. Это форма, позволяющая опровергнуть гипотезу с учётом падения Sharpe у версии с фильтром (0.724 -> 0.579, нижняя граница CI +0.072 -> -0.055). (2) DIVERSIFICATION PUSHED HARDER: набор факторов расширен с 5 до 9, добавлены фактор режима волатильности (-(rv10/rv60 - 1)), показатель устойчивости знака без учёта величины и дрейф с……Показать большеСвернуть

Буквально реализованы оба рычага гипотезы. (1) GATING REMOVED: позиция равна знаку композита без порога, фильтра, стопа и выхода по времени — should_exit срабатывает только при смене знака. Это форма, позволяющая опровергнуть гипотезу с учётом падения Sharpe у версии с фильтром (0.724 -> 0.579, нижняя граница CI +0.072 -> -0.055). (2) DIVERSIFICATION PUSHED HARDER: набор факторов расширен с 5 до 9, добавлены фактор режима волатильности (-(rv10/rv60 - 1)), показатель устойчивости знака без учёта величины и дрейф с весом по объёму к шести факторам, перенесённым без изменений. Ноль свободных параметров обеспечен механически, а не просто заявлен: SensitivityAnalyzer.generate_variations пропускает имена, начинающиеся с «_» (а parallel_runner возвращает пустой отчёт, если задача не создана), а целевая функция walk-forward передаёт значения с подчёркиванием и словари как есть, не вызывая suggest_int/suggest_float; поэтому словарь параметров, содержащий только '_param_bounds' (EMPTY), '_fixed' и '_zero_free_parameters', даёт ноль вариантов чувствительности и идентичные испытания Optuna, сводя инфляцию выбора лучшего из N к случаю N=1. Объявлять ограничение не нужно, поскольку изменяемых параметров нет. Пробный запуск на реальном дневном каталоге BTCUSDT (2019-12-31–2026-08-05, 2410 баров, исполнение по цене закрытия бара, комиссия тейкера 0.05% с каждой стороны, плечо 2): 223 сделок (34 в год), средняя сделка +1.28% от номинала после комиссий, фактор прибыли 1.56, Sharpe 1.13, максимальная просадка 11.0%, накопленный результат +116%. Рычаг диверсификации даёт предсказанный гипотезой результат: при неизменных правилах постоянно открытой позиции IDENTICAL набор из 5 факторов даёт Sharpe 0.97, PF 1.38 и среднюю сделку +0.85%; значит, расширение с 5 до 9 повышает Sharpe примерно на 0.16, а среднюю сделку — на 50%. В песочнице за 365 дней совершается 17 сделок, поэтому порог Layer-3 не менее 1 сделок безопасен. Плечо действительно используется: лимит экспозиции срабатывает для 88 из 224 входов при 1x против 6 при 2x, давая накопленный результат +76% против +116% на идентичных сделках. Два уточнения к исходному описанию. Во-первых, стратегия с постоянно открытой позицией не является NOT положительной каждый календарный год — это свойство было у версии GATED с удержанием 7 дней и стопом ATR; эта версия теряет около 4.5% суммарной доходности сделок в 2022 (2020 +55.6, 2021 +89.3, 2022 -4.5, 2023 +50.6, 2024 +62.1, 2025 +5.4, 2026 +26.4). Отказ от стопа повышает Sharpe, но стоит результата за тот год. Во-вторых, девять факторов не вполне ортогональны: TREND, MOM, LOCATION, STREAK и VWDRIFT считывают одно и то же направленное состояние, а заметно отличающуюся информацию добавляют только VOLREG, SKEW и PRESSURE. Поэтому выигрыш — это усреднение коррелированных ошибок, и он ограничен; измеренный Sharpe +0.16 честно отражает размер эффекта, это не скачок. Доля прибыльных сделок — 25%, средняя сделка — +1.28%: это доходность трендовой стратегии с толстыми хвостами, поэтому статистику, чувствительную к числу сделок, следует оценивать с учётом этой особенности. Обработка каждого бара имеет сложность O(1) (ограниченные двусторонние очереди и накопительные суммы), поэтому лимит smoke-теста в 300 секунд не под угрозой. Значение min_bars_required равно 25 намеренно: каждый индикатор накапливает данные внутри calculate_signal, композит начинает работать примерно с бара 180, а большее значение отодвинуло бы запуск за конец окна smoke-теста.

Более слабый, избыточный аналог уже поставленного в очередь композита с 5 факторами и нулём параметров. Гипотеза предполагает, что расширение числа факторов с 5 до 9 поднимет Sharpe выше порога DSR, но собственный бэктест её опровергает: Sharpe упал до 0.802 против 0.829 у варианта-собрата с 5 факторами, а нижняя граница CI снизилась до 0.172 против 0.223. Хуже того, отказ от избирательности ради постоянного присутствия на рынке лишил стратегию устойчивости к режимам — единственного аргумента в пользу продвижения варианта с 5 факторами. Этот вариант теряет 2022 (-3.9%) и, что особенно важно, недавний 2025 (-4.96%); скользящий Sharpe остаётся отрицательным до начала 2026. Стратегию с нулём параметров нельзя настроить, поэтому «оптимизация» была бы лишь валидацией, а убытки в недавнем режиме, вероятно, не позволили бы пройти проверки walk-forward OOS (>=0.5) и отложенной выборки за 15 дней. Это всё ещё класс импульсных композитов OHLCV (L9/L41, 0/213), но без исключительной стабильности. Откажись от неё, а не трать 2 часов на проверку худшего варианта идеи, уже стоящей в очереди.

Реализация

Направленная стратегия лонг-шорт с постоянным присутствием на рынке на дневных барах BTCUSDT.BINANCE и ZERO настраиваемыми параметрами. На каждом баре она рассчитывает NINE заранее заданных дневных факторов: тренд за 40 дней, импульс за 10 дней, давление по положению цены закрытия за 4 дней, поток подписанного объёма за 28 дней по методу OBV, асимметрию волатильности по полудисперсии за 12 дней, положение в диапазоне за 25 дней, режим реализованной волатильности за 10д/60д, устойчивость знака средней доходности……Показать большеСвернуть

Направленная стратегия лонг-шорт с постоянным присутствием на рынке на дневных барах BTCUSDT.BINANCE и ZERO настраиваемыми параметрами. На каждом баре она рассчитывает NINE заранее заданных дневных факторов: тренд за 40 дней, импульс за 10 дней, давление по положению цены закрытия за 4 дней, поток подписанного объёма за 28 дней по методу OBV, асимметрию волатильности по полудисперсии за 12 дней, положение в диапазоне за 25 дней, режим реализованной волатильности за 10д/60д, устойчивость знака средней доходности за 20 дней и дрейф, взвешенный по объёму, за 20 дней; каждый фактор стандартизируется в z-оценку относительно собственного скользящего распределения за 120 баров, затем берётся их среднее с весами EQUAL (1/9 каждый). calculate_signal непрерывно возвращает эту составную оценку в единицах z. Позиция определяется просто SIGN составной оценки: длинная при положительном значении, короткая при отрицательном, с переключением при пересечении нуля. Порог уверенности, фильтр согласованности тренда, стоп-лосс и выход по времени отсутствуют — все механизмы отбора намеренно исключены. Размер позиции нормируется по волатильности и остаётся постоянным: капитал × 1.5% / (2 x ATR%), с ограничением на уровне 20% от капитала × кредитное плечо. Каждое окно и вес — жёстко заданная константа класса; self.parameters не считывается ни для одного числового значения, а словарь parameters конфигурации не содержит числовых ключей верхнего уровня, поэтому пространство поиска оптимизатора изначально пусто.

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

Оптимизатору и аналитику: корректно учтите, что отсутствие настраиваемых параметров сводит штраф OPTIMIZER к DSR, но конфигурация с 9 факторами включает неучтённый ручной отбор и расширение. При оценке отдавайте больший вес walk-forward-анализу OOS и удерживаемой вне выборки части данных за 15 дней, чем показателю дефлированного Sharpe, под который и подстроено утверждение об отсутствии поиска. Честная проверка — сохраняется ли Sharpe около 1.13 на полной выборке после OOS, а не проходит ли N=1 порог DSR.

Формулировка с нулевым числом параметров DSR механически корректна, но не учитывает HIDDEN SELECTION, которые не видит фильтр DSR, — решающий фактор для оптимизатора и аналитика, как и у родственного варианта с нулевым числом параметров и 5 факторами. На уровне кода подтверждено, что настраиваемых параметров действительно нет: каждое окно и каждый вес заданы как константы класса, а self.parameters не считывается для получения числовых значений (только self.config.leverage), поэтому оптимизатор запускает N=1……Показать большеСвернуть

Формулировка с нулевым числом параметров DSR механически корректна, но не учитывает HIDDEN SELECTION, которые не видит фильтр DSR, — решающий фактор для оптимизатора и аналитика, как и у родственного варианта с нулевым числом параметров и 5 факторами. На уровне кода подтверждено, что настраиваемых параметров действительно нет: каждое окно и каждый вес заданы как константы класса, а self.parameters не считывается для получения числовых значений (только self.config.leverage), поэтому оптимизатор запускает N=1 идентичных испытаний, и член поправки на эффект выбора лучшего результата из N для дефлированного коэффициента Шарпа закономерно обнуляется. BUT конфигурацию — и в данном случае именно переход EXPANSION от 5 к 9 факторам и выбор трёх дополнительных факторов — разработчик вручную подбирал в ходе сессии, чтобы повысить коэффициент Шарпа, поэтому фактическое число вариантов при выборе лучшего результата намного больше 1. Фильтр DSR учитывает испытания оптимизатора, но не ручной поиск разработчика, поэтому механическое «прохождение» DSR означает отсутствие поиска по параметрам, а не отсутствие ручного выбора конфигурации OPTIMIZER TOTAL.

Backtest_review/аналитик: оцени Sharpe на полной выборке ~1.13 относительно проверок DSR/OOS, учитывая, что это ограниченный +0.16 по сравнению с вариантом на 5 факторов, всегда находящимся в рынке, и толстые хвосты при доле выигрышных сделок 25%; диапазон песочницы CI пересекает ноль. Оцени для специалиста по рискам профиль полностью инвестированной стратегии с постоянным присутствием на рынке (11% DD, а не вариант с фильтрацией 7%).

Статистическая значимость не подтверждена, выигрыш от диверсификации ограничен — замечания аналитика. Результат песочницы положительный (total_return +2.48%, PF 1.51, PSR 0.69), но Sharpe 0.41 с CI [-1.31, 1.88], пересекающим ноль, получен на 14 сделках. Значение win_rate 14% (полная выборка 25%) характерно для трендовой стратегии с толстыми хвостами (avg_win 3639 против avg_loss 402), поэтому статистику, чувствительную к числу сделок, нужно оценивать с учётом этой особенности. Разработчик верно указывает:……Показать большеСвернуть

Статистическая значимость не подтверждена, выигрыш от диверсификации ограничен — замечания аналитика. Результат песочницы положительный (total_return +2.48%, PF 1.51, PSR 0.69), но Sharpe 0.41 с CI [-1.31, 1.88], пересекающим ноль, получен на 14 сделках. Значение win_rate 14% (полная выборка 25%) характерно для трендовой стратегии с толстыми хвостами (avg_win 3639 против avg_loss 402), поэтому статистику, чувствительную к числу сделок, нужно оценивать с учётом этой особенности. Разработчик верно указывает: расширение набора факторов с 5 до 9 повышает Sharpe лишь примерно на +0.16 (0.97 -> 1.13), поскольку пять из девяти факторов считывают одно и то же направленное состояние (заметно отличающуюся информацию добавляют только режим волатильности, асимметрия и давление). Выигрыш от диверсификации реален, но ограничен, это не скачок. В версии ALWAYS-IN позиция постоянно открыта (11% просадка на полной выборке против примерно 7% у версии с фильтром); в отличие от версии с фильтром, она NOT положительна каждый год (потеря около 4.5% в 2022). Разработчик правильно приписывает утверждение «положительна каждый год» версии с фильтром, а не этой.

Изменение кода не требуется; реализация корректна, раскрытие информации образцовое.

Код CORRECT, а честность разработчика заслуживает высокой оценки. Проверено: три новых фактора корректны — volreg = -(sqrt(mean r^2,10)/sqrt(mean r^2,60) - 1) с защитой через rv_l; streak = mean(sign(ret),20); vwdrift = sum(ret*vol)/sum(vol),20 со знаменателем, защищённым от нуля. Шесть унаследованных факторов имеют те же проверенные структуры; все девять стандартизированы в z-оценки по 120 и взвешены поровну, полярность положительна для роста, поэтому composite>0 -> LONG. Логика постоянно открытой позиции……Показать большеСвернуть

Код CORRECT, а честность разработчика заслуживает высокой оценки. Проверено: три новых фактора корректны — volreg = -(sqrt(mean r^2,10)/sqrt(mean r^2,60) - 1) с защитой через rv_l; streak = mean(sign(ret),20); vwdrift = sum(ret*vol)/sum(vol),20 со знаменателем, защищённым от нуля. Шесть унаследованных факторов имеют те же проверенные структуры; все девять стандартизированы в z-оценки по 120 и взвешены поровну, полярность положительна для роста, поэтому composite>0 -> LONG. Логика постоянно открытой позиции корректна (should_enter берёт знак композита, should_exit срабатывает только при смене знака; перезапуск закрывает позицию и открывает её заново). Размер позиции использует проверенную постоянную нормализацию по волатильности (без масштабирования по уверенности); min_bars_required()->25 с внутренним прогревом _ready — проверенный безопасный шаблон, заглядывания вперёд нет. Это не дефект кода L17: win_rate 0.14 — характерная для трендовой стратегии с толстыми хвостами форма доходности (PF 1.51>1, полная выборка положительна), а не ошибка полярности или выхода. Разработчик также исправляет завышенные утверждения самой гипотезы, опираясь на измеренные факты (факторы не ортогональны, результат не положителен каждый год, выигрыш +0.16 ограничен), а не повторяет исходное описание.

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

Шарп
0,80
Общая доходность
103,36%
Максимальная просадка
9,42%
Всего сделок
173
Доля прибыльных
28,9%
Профит-фактор
1,70

avg_trade_return_pct 1.56% значительно выше комиссий; PF 1.699, DD 9.42% — приемлемо в отдельности

Рыночно-нейтральная стратегия (бета 0.027), положительная альфа 0.069; форма с постоянным присутствием на рынке и низкой оборачиваемостью (173 сделок) сводит влияние комиссий к минимуму

Основное утверждение гипотезы опровергнуто её же результатом: 9 факторов дали Sharpe 0.802 — ниже, чем 0.829 у родственной конфигурации с 5 факторами; нижняя граница CI 0.172 < 0.223. В стратегии с постоянно открытой позицией рычаг диверсификации дал обратный эффект.

NOT теряет устойчивость к режимам: показывает убыток в 2022 (-3.9%) и за недавний период 2025 (-4.96%); скользящий Sharpe остаётся отрицательным до начала 2026. Вариант с постоянным присутствием на рынке отбросил стабильность, которая была единственным аргументом в пользу продвижения варианта-собрата с 5 факторами

Убыток в недавнем рыночном режиме (2025) означает, что walk-forward-анализ OOS на недавнем окне и удерживаемая часть данных за 15 дней, вероятно, не пройдут пороги не менее 0.5 / не менее 70%.

Избыточный, доминируемо слабый аналог уже поставленного в очередь композита с 5 факторами и нулём параметров; класс импульсных композитов OHLCV (L9/L41, 0/213) без исключительной стабильности

win_rate 0.289 при умеренном Sharpe — преимущество сосредоточено в нескольких днях-выбросах (эксцесс 8.3)

Сводка по итогам

Рычаг диверсификации не масштабируется монотонно: расширение коррелированного композита моментума OHLCV с 5 до 9 факторов снизило коэффициент Шарпа, а переход к постоянному присутствию на рынке ради устранения дефляции лишил стратегию устойчивости к режимам (стабильности с положительным результатом каждый год) — единственного свойства, благодаря которому версию с 5 факторами можно было рекомендовать. Таким образом, изменение убрало именно то свойство, которое требовалось сохранить.

Аналитик отказался от стратегии при проверке бэктеста, поскольку результаты опровергли гипотезу: девять факторов дали Sharpe 0.802 (ниже, чем 0.829 у варианта-собрата с 5 факторами) и нижнюю границу CI 0.172 (ниже 0.223). Значит, при постоянном присутствии на рынке рычаг диверсификации сработал в обратную сторону. Отказ от избирательности лишил стратегию устойчивости к режимам — единственного аргумента в пользу продвижения варианта с 5 факторами. Убытки в недавнем режиме, вероятно, не позволили бы пройти проверки walk-forward OOS (≥0.5) и отложенной выборки за 15 дней. Поскольку стратегию с нулём параметров нельзя настроить, она стала доминируемо слабым, избыточным аналогом композита, уже поставленного в очередь, из мёртвого класса импульсных стратегий 0/213 OHLCV без исключительной стабильности.

Направленная стратегия лонг-шорт с постоянным присутствием на рынке и нулём свободных параметров на дневных барах BTCUSDT.BINANCE. Она задействует рабочий рычаг диверсификации (простой композит из 5 факторов был единственной конструкцией пакета, устойчивой к режимам) и усиливает его: расширяет набор до девяти заранее зарегистрированных, равновзвешенных, нормализованных по z-оценке дневных факторов OHLCV (тренд, быстрый импульс, давление закрытия, поток объёма, перекос волатильности, позиция в диапазоне, режим волатильности, серия знаков, дрейф с весом по объёму), а позиция равна знаку композита. Одновременно убраны все механизмы избирательности — фильтрация, согласование с трендом и трейлинг-стопы, — которые ухудшили результат предыдущего варианта. Гипотеза состояла в том, что большая диверсификация и пустое пространство поиска поднимут стабильный Sharpe выше порога скорректированного на множественный выбор Sharpe.

Бэктест на дневных барах 2410 с 2019-2026 показал +103.4% на 173 сделках, фактор прибыли 1.699, avg_trade_return_pct 1.56%, низкую просадку (9.42%) и нейтральность к рынку (бета 0.027, положительная альфа 0.069), но низкую долю прибыльных сделок — 28.9%; результат сосредоточен в отдельных экстремальных днях (эксцесс 8.3). Базовый Sharpe составил лишь 0.802 (sharpe_ci_low 0.172), информационное отношение — -0.571. Стратегия теряла деньги в 2022 (-3.9%) и в недавнем периоде 2025 (-4.96%); скользящий Sharpe оставался отрицательным до начала 2026.

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