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

Стратегии

Ротация импульса относительной силы между инструментами: лонг-онли бессрочные контракты (10 ликвидных основных BINANCE USD-M — ребалансировка раз в две недели, удержание лидеров -4 по относительной силе за 60 дней, равные доли, фильтр абсолютного импульса переводит инструменты в кэш при нисходящем тренде; стратегия с иным расписанием — родственник прошедшего отбор в фабрике Sharpe-2.6, с 3 параметрами)

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

TenMajorPerpsBiWeeklyRelativeStrengthRotationLongTop4

Корректная многопозиционная стратегия, точно реализующая импульс между инструментами (в этом семействе есть стратегия, прошедшая отбор); достаточная выборка (154 сделок); низкое влияние комиссий (комиссия 1.13% от…

Гипотеза

Ротация импульса относительной силы между инструментами: LONG-ONLY, MULTI-INSTRUMENT на 10 ликвидных основных бессрочных контрактах BINANCE USD-M (BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, XRPUSDT, ADAUSDT, AVAXUSDT, LINKUSDT, DOTUSDT, LTCUSDT — все на одной площадке SAME). Это намеренно DISTINCT-CONFIGURATION SIBLING самой надёжной стратегии, прошедшей отбор в фабрике: запущенной лонг-онли стратегии еженедельной ротации импульса между инструментами с Sharpe-2.6. Это ONLY конструкция, показавшая устойчивость на……Показать большеСвернуть

Ротация импульса относительной силы между инструментами: LONG-ONLY, MULTI-INSTRUMENT на 10 ликвидных основных бессрочных контрактах BINANCE USD-M (BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, XRPUSDT, ADAUSDT, AVAXUSDT, LINKUSDT, DOTUSDT, LTCUSDT — все на одной площадке SAME). Это намеренно DISTINCT-CONFIGURATION SIBLING самой надёжной стратегии, прошедшей отбор в фабрике: запущенной лонг-онли стратегии еженедельной ротации импульса между инструментами с Sharpe-2.6. Это ONLY конструкция, показавшая устойчивость на множестве 1043 гипотез. Обоснование основано на журнале неудач: (1) MULTI-INSTRUMENT решает проблему невозможности надёжной оценки из-за недостатка наблюдений (моя стратегия Дончиана на одном инструменте дала около 47 сделок при минимуме около 100; ротация 10 инструментов раз в две недели даёт сотни изменений позиций — этого достаточно для оценки) WITHOUT, увеличивая оборот по каждому инструменту до уровня fee_edge; (2) это NOT копия стратегии импульса-CONFLUENCE (L41), а кросс-секционный подход RANKING — механизм, который действительно выдерживает проверку, а не стратегия на одном инструменте с двумя таймфреймами; (3) здесь устранены конкретные недостатки неудачных родственных стратегий: торговля ведётся на PERPS (0.10% комиссии, а не на спотовом рынке 0.20%, погубившем спотовую ротацию), используются простые равные EQUAL (а не риск-паритетные веса или веса по обратной волатильности, давшие отрицательное математическое ожидание), корзина MAJORS (не провалившиеся средние капитализации), лонг-онли LONG-ONLY (не переобученная версия с нейтральной к доллару позицией по лидерам и аутсайдерам). Отличия от стратегии-чемпиона DEPLOYED: 8 крупных инструментов, недельная ротация, 30-дневный период RS, лидеры -3; здесь шире корзина из 10 инструментов, иной график ребалансировки BI-WEEKLY (меньший оборот), период относительной силы INTERMEDIATE 60 дней (улавливает более медленное и устойчивое лидерство), TOP-4 позиций и равные веса. Это действительно другая область параметров, которая диверсифицирует риск концентрации чемпиона по графику ребалансировки и периоду анализа и представляет собой полноценную кандидатуру на SECOND стратегию с устойчивой пригодностью к запуску. Отдельно исключён артефакт капитализации/плеча L36: плечо не наращивается, экспозиция нормирована относительно капитала, каждая из максимум -4 позиций ограничена 25% капитала, поэтому avg_trade_return_pct остаётся в реалистичном диапазоне однозначных процентов. Только OHLCV, без ненадёжных дополнительных источников данных. 3 параметров. Инструменты: ["BTCUSDT.BINANCE","ETHUSDT.BINANCE","SOLUSDT.BINANCE","BNBUSDT.BINANCE","XRPUSDT.BINANCE","ADAUSDT.BINANCE","AVAXUSDT.BINANCE","LINKUSDT.BINANCE","DOTUSDT.BINANCE","LTCUSDT.BINANCE"]. venue_type: фьючерсы. data_requirements: ["ohlcv"].

Итерация 2 исправляет ровно две блокирующие проблемы и ничего больше. (1) ALIGNMENT BARRIER RESTORED (подтверждённая ошибка). Переопределение `on_bar` удалено. Базовый шаблон `on_bar`/`_maybe_process_primary` теперь передаёт бары дальше и откладывает основную обработку, пока у каждого дополнительного инструмента с тем же таймфреймом не появится бар с временной меткой основного инструмента. Поэтому и ранжирование AND, и расчёт размера позиции использовали синхронные цены закрытия всех 10 инструментов, а не схему……Показать большеСвернуть

Итерация 2 исправляет ровно две блокирующие проблемы и ничего больше. (1) ALIGNMENT BARRIER RESTORED (подтверждённая ошибка). Переопределение `on_bar` удалено. Базовый шаблон `on_bar`/`_maybe_process_primary` теперь передаёт бары дальше и откладывает основную обработку, пока у каждого дополнительного инструмента с тем же таймфреймом не появится бар с временной меткой основного инструмента. Поэтому и ранжирование AND, и расчёт размера позиции использовали синхронные цены закрытия всех 10 инструментов, а не схему «BTC на момент T против остальных на момент T-1». Ротация запускается из `calculate_signal`, который базовый шаблон вызывает только в этой синхронизированной точке; цены закрытия теперь индексируются по `ts_event` (с резервным вариантом `ts_init`), чтобы совпадать с ключом временной метки самого барьера. Заодно восстановлены проверки базового шаблона `_in_warmup`/устаревания данных, которые обходило переопределение. (2) DIAGNOSIS OF THE 0/14. В QA верно указано, что это дефект кода, а не неудачный рыночный режим; причина конкретна: прежний фильтр абсолютного импульса проверял `r > 0` по доходности за SAME 60 дней, использовавшейся для ранжирования, поэтому при отборе лучших -4 из -10 он почти ничего не отсеивал. Инструмент может попасть в лучшие -4 с отрицательной доходностью за 60 дней, только если уже 7+ из 10 ведущих инструментов находятся в минусе — то есть после того, как просадка уже произошла. Поэтому заявленный «фильтр перехода в кэш» не срабатывал во время падения: каждая позиция открывалась в инструменте, доходность которого за 60 дней всё ещё была положительной, хотя его цена уже развернулась вниз. В результате портфель состоял из удерживаемых -15% до -20% позиций без прибыльных сделок. (Кроме того, 14 исполнений — это примерно 4 независимых решений о ребалансировке, умноженных примерно на 3.5 инструмента с корреляцией около 0.9. Значит, наблюдаемый результат — 0 из примерно 4 независимых ставок, а не 0 из -14: сомнительность результата реальна, но её масштаб меньше, чем можно предположить по общему числу сделок.) Исправление позволяет фильтру действительно выявлять нисходящий тренд: цена закрытия выше собственной скользящей средней за предыдущие 60 дней. При развороте вниз цена пересекает среднюю рано, пока доходность за 60 дней ещё положительна. Используется прежний `lookback_days`, поэтому набор из 3 параметров (lookback_days, top_k, rebalance_days) не меняется — новые настраиваемые параметры не добавлены. Та же проверка применяется на каждом баре как условие выхода из удерживаемых позиций, ограничивая -17.6% удержания, которые привели к такому профилю убытков. Поскольку это только условие выхода, число сделок может лишь вырасти, поэтому проверка уровня -3 «не менее 1 сделок», уже пройденная ранее, не может быть провалена. Все элементы, которые QA признал корректными, оставлены без изменений: период ребалансировки привязан к календарю и временной метке бара; словари цен закрытия индексируются по временной метке каждого инструмента и очищаются; деление защищено проверками; размер позиций рассчитывается относительно капитала с равными весами через `get_account_equity()`, с ограничением 25% на инструмент и 90% по общей позиции; кредитное плечо 1.0 при расчёте размера позиции не используется; выбрана площадка с бессрочными контрактами, а не спотовый рынок; набор импортов остаётся чистым (запрещённых импортов не добавлено). Сигнал по-прежнему рассчитывается непрерывно на каждом баре: доходность основного инструмента за предыдущий период минус средняя доходность остальных инструментов за тот же период.

Лонг-онли ротация импульса крупных инструментов между собой с признаком L19/L36/L45 отказа от стратегии — не стоит тратить 2 часов на оптимизацию. Максимальная просадка составляет 56.4% (CI–78%); при BACKTEST_REVIEW стратегия подлежит безусловному отклонению независимо от заголовочного показателя +736% (L19): доходность 736% при просадке 56% означает влияние плеча и крипторынка, а не преимущество с поправкой на риск, и стратегия не преодолеет порог просадки для продвижения. avg_trade_return_pct составляет 13.68%……Показать большеСвернуть

Лонг-онли ротация импульса крупных инструментов между собой с признаком L19/L36/L45 отказа от стратегии — не стоит тратить 2 часов на оптимизацию. Максимальная просадка составляет 56.4% (CI–78%); при BACKTEST_REVIEW стратегия подлежит безусловному отклонению независимо от заголовочного показателя +736% (L19): доходность 736% при просадке 56% означает влияние плеча и крипторынка, а не преимущество с поправкой на риск, и стратегия не преодолеет порог просадки для продвижения. avg_trade_return_pct составляет 13.68% на корзине крупных инструментов с месячными результатами вроде 2021-02 +111%. Это артефакт капитализации/плеча L36: размер позиции следует за кривой капитала; это подтверждают return_kurtosis 37 и асимметрия 2.4. Весь результат обеспечили два бычьих года (2021 +494%, 2024 +142%), тогда как 2022 (-52%), 2023 (-22%), 2025 (-4.3%) и 2026 (-8.9%) дали отрицательный результат, как и недавний рыночный режим. Показатель дополнительно завышен из-за end_unrealized_pct 342 (незакрытая позиция MTM). С поправкой на риск результат статистически незначим (Sharpe 0.78, CI [0.096, 1.50] едва отличается от нуля). Хотя стратегия представлена как родственная запущенной стратегии-чемпиону с Sharpe-2.6, это L45 семейства межинструментального импульса (0/84 стратегий прошли отбор), которое пересекается с неудачными стратегиями из-за L36/L19 артефакта плеча. Оптимизация лишь подогнала бы сортировку по волатильности к бычьим режимам. Характер неудачи: risk_reject/переобученная лонг-онли корзина импульса между инструментами, 56% DD + артефакт капитализации, преимущество сосредоточено в 2021/2024 (L19/L36/L45).

Реализация

Лонг-онли ротация по импульсу относительной силы между инструментами: 10 ликвидных основных бессрочных контрактов BINANCE USD-M (BTC, ETH, SOL, BNB, XRP, ADA, AVAX, LINK, DOT, LTC), дневные свечи, только OHLCV. Каждые 14 календарных дней стратегия ранжирует все 10 инструментов по полной доходности за предыдущие 60 дней и держит равновзвешенными LONG лидеров из 4. Действует фильтр абсолютного импульса с двумя условиями: инструмент проходит его, только если доходность за собственные 60 дней положительна AND цена закрытия выше собственной скользящей средней за 60 дней; иначе место остаётся в кэше. Размер каждой позиции равен min(25%, 90%/4) = 22.5% от текущего капитала по номиналу при плече 1.0; валовая экспозиция составляет около 90% лонг и никогда не превышает капитал. Выходы: (а) при ротации по двухнедельному расписанию, если позиция выпадает из отфильтрованной группы лидеров -4; (б) при пробое нисходящего тренда, проверяемом на каждой свече, если цена закрытия падает ниже собственной средней за 60 дней. Других стоп-лоссов, наращивания плеча и дополнительных данных нет.

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

CLEAN RESTART 2026-09-04 — историю вердиктов и записи обучения этого запуска удалили, а проверку начали заново. Ранее процесс прервался из-за конвейера, а не рынка: стенд Layer-2 неверно привязал вспомогательные методы @staticmethod (исправлено), QA вынес окончательные вердикты о результативности по неоптимизированному пробному запуску (удалено — теперь QA оценивает только корректность), а тайм-ауты песочницы возникли из-за нехватки слотов для бэктеста (исправлено). Гипотеза и код стратегии не изменились. Оцени код по его достоинствам; результативность позднее определят полный бэктест и оптимизатор.

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

Шарп
0,78
Общая доходность
736,42%
Максимальная просадка
56,38%
Всего сделок
154
Доля прибыльных
33,1%
Профит-фактор
1,25

Корректная многопозиционная стратегия, точно реализующая импульс между инструментами (в этом семействе есть стратегия, прошедшая отбор); достаточная выборка (154 сделок); низкое влияние комиссий (комиссия 1.13% от валового результата)

avg_trade_return_pct выше порога комиссий; положительная альфа относительно равновзвешенной корзины (0.197)

Критический провал по просадке (L19): max_drawdown 56.4% (CI–78%) — стратегия с показателем >50% DD не преодолевает порог для продвижения; доходность 736% при просадке 56% DD объясняется плечом и рыночной бетой, а не преимуществом с поправкой на риск

L36 артефакт капитализации/плеча: avg_trade_return_pct 13.68% на корзине крупных инструментов (месячное 2021-02 +111%, годовое 2021 +494%) — размер позиции следовал за кривой капитала; return_kurtosis 37, асимметрия 2.4

Преимущество сосредоточено в двух бычьих годах: 2021 +494% и 2024 +142% обеспечивают весь результат; 2022 (-52%), 2023 (-22%), 2025 (-4.3%) и 2026 (-8.9%) дали отрицательный результат, и недавний рыночный режим тоже отрицательный

Заголовочный показатель завышен из-за открытых MTM: end_unrealized_pct 342 (значительная часть +736% — нереализованная прибыль по незакрытым позициям, а не реализованная)

Статистически незначимо: Sharpe 0.78 при CI [0.096, 1.50] едва отличается от нуля; L45 семейства межинструментального импульса (0/84 стратегий прошли отбор)

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

Проверка не пройдена (уровень 4 — проверка QA): - SANDBOX SHOWS THE L17 CODE-DEFECT SIGNATURE — win_rate 0.0 AND profit_factor 0.0 (0 прибыльных сделок из 14, avg_trade -17.6% от номинала, Шарп -1.91, -46.5%). На этой фабрике стратегий такая точная сигнатура неоднократно указывала на ошибку полярности, размера позиции, выхода или учёта, которую ошибочно принимали за проблему комиссий или отсутствия преимущества и после 4-5 бесполезных итераций отбрасывали. Нельзя списать это на плохой режим рынка в песочнице —……Показать большеСвернуть

Проверка не пройдена (уровень 4 — проверка QA): - SANDBOX SHOWS THE L17 CODE-DEFECT SIGNATURE — win_rate 0.0 AND profit_factor 0.0 (0 прибыльных сделок из 14, avg_trade -17.6% от номинала, Шарп -1.91, -46.5%). На этой фабрике стратегий такая точная сигнатура неоднократно указывала на ошибку полярности, размера позиции, выхода или учёта, которую ошибочно принимали за проблему комиссий или отсутствия преимущества и после 4-5 бесполезных итераций отбрасывали. Нельзя списать это на плохой режим рынка в песочнице — причину необходимо установить. При статической проверке я VERIFIED: очевидные подозрения проверены — ранжирование выбирает для покупки инструменты с наибольшей доходностью за 60 дней, фильтр абсолютного моментума оставляет только инструменты с положительной динамикой, а размер позиции составляет 22.5%/на ногу с усилением за счёт плеча NO (поэтому убытки -17.6%/сделку отражают реальные движения активов без усиления). Если ошибка есть, она тонкая (вероятнее всего, в переопределённом пути исполнения on_bar / нескольких ног, проблема #2) либо 0/14 — настоящий обвал моментума. Но 0 прибыльных сделок из 14 при удержании крупных бессрочных контрактов двадцать восемь дней неправдоподобны для корректной ротации на длинном моментуме даже в неудачный год. Именно поэтому L17 предписывает остановиться и разобраться. - OVERRIDDEN on_bar BYPASSES THE BASE TEMPLATE'S CROSS-LEG ALIGNMENT BARRIER — настоящая ошибка корректности для кросс-секционной стратегии. Базовый on_bar пропускает первичную обработку через _maybe_process_primary и откладывает её, пока у каждой дополнительной ноги с тем же таймфреймом не появится бар с текущей временной меткой; поэтому книга ранжирует инструменты по ценам закрытия на CONTEMPORANEOUS. Эта стратегия полностью заменяет on_bar и запускает ребалансировку раз в две недели сразу при поступлении бара BTC. Поэтому у непервичных инструментов 9 всё ещё может быть цена закрытия дня T-1, когда дневной бар BTC запускает ранжирование. Для стратегии, основанной на ранжировании и целиком зависящей от относительной силы инструментов, ранжирование по данным с разными временными метками может систематически искажать выбор верхних -4. - Все статические деления защищены (проверяется past<=0; _NS_PER_DAY — ненулевая константа; проверяется price<=0). Остальные аспекты также проверены: период ребалансировки привязан к календарю через ts_init (это позволяет избежать ловушки счётчика времени работы L26), для каждого инструмента ведутся словари цен закрытия с временными метками и удалением старых записей, размер позиции рассчитывается относительно капитала с равными весами через get_account_equity(), ограничивается значениями 25%/на ногу и 90% общего номинала; плечо 1.0 не усиливает. Выбор площадки (бессрочные контракты, а не спот) верно обоснован сравнением с гибелью родственной спотовой стратегии fee_edge. Код в основном корректен; проблема — необъяснимо низкая доля прибыльных сделок 0% и обход выравнивания данных, а не общее качество.

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