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

Стратегии

Кросс-секционная контртрендовая ротация RETAIL-CROWDING, только-лонг (BINANCE USD-M, мажоры 8, WEEKLY удерживать 3 LEAST плотно заполненных розницей инструментов по GLOBAL отношению лонг/шорт счетов — чистый андер-владение FACTOR, не моментум; системно-эйфорический гейт кеша, 2-параметров)

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

RetailCrowdingContrarianRotationLong

Кросс-секционная контртрендовая ротация RETAIL-CROWDING, только-лонг (BINANCE USD-M, мажоры 8, WEEKLY удерживать 3 LEAST плотно заполненных розницей инструментов по GLOBAL отношению лонг/шорт счетов — чистый…

Гипотеза

А LONG-ONLY, еженедельно ребалансируемая кросс-секционная ROTATION по вселенной 8-USD-M мажоров (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), отбирающая инструменты по подлинному сигналу NON-PRICE CROWDING: отношению лонг/шорт GLOBAL ACCOUNT (count_long_short_ratio, прокси розничного позиционирования) из файлов 'metrics' Binance VISION (MULTI-YEAR до ~2020, NOT API за 30 дней). Механизм — чистый фактор UNDER-OWNERSHIP — удерживать мажоры, по которым розница LEAST плотно находится в лонге, потому что плотно……Показать большеСвернуть

А LONG-ONLY, еженедельно ребалансируемая кросс-секционная ROTATION по вселенной 8-USD-M мажоров (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), отбирающая инструменты по подлинному сигналу NON-PRICE CROWDING: отношению лонг/шорт GLOBAL ACCOUNT (count_long_short_ratio, прокси розничного позиционирования) из файлов 'metrics' Binance VISION (MULTI-YEAR до ~2020, NOT API за 30 дней). Механизм — чистый фактор UNDER-OWNERSHIP — удерживать мажоры, по которым розница LEAST плотно находится в лонге, потому что плотно залонгованные инструменты несут скрытый риск ликвидации лонгов/сжатия вниз, тогда как недооценённые по владению инструменты имеют пространство для роста котировок. Это намеренно в структурном семействе ONLY, которое воспроизводимо выживает здесь — только-лонг, мажоры, еженедельное удержание топ-K, низкое число параметров (развёрнутая ротация моментума с Шарпом 2.6 и корзина негативного фандинга с Шарпом 1.97) — и вносит ключ отбора ORTHOGONAL в оба: не относительная ценовая сила (моментум) и не фандинг (кэрри), а позиционирование толпы. Согласно полученным в сессии свидетельствам, она избегает каждого режима смерти: NOT однопозиционный таймер направления (те погибли -100% / -43% / риск-отказ), NOT доллар-нейтральный спред (нет шорт-ноги → нет обвала 90% DD), NOT фандинг/опционы/ликвидации/чистый-OHLCV. Она отличается от находящейся в ожидании SmartMoneyGatedMomentumRotation (которая использует когорту TOP-TRADER для GATE моментум-книги) и от EthRetail (фейд лонг-шорт одной позиции): здесь используется когорта RETAIL/global в качестве PRIMARY ключа кросс-секционного ранжирования в контртрендовой корзине LONG-ONLY, вообще без моментум-компоненты. Параметры 2, K и ритм заморожены в соответствии с проверенным шаблоном.

Устраняет именно тот дефект, который поднял QA. QA отверг ключ ранжирования, потому что открытый интерес (a) не является прокси розничной торговли — это совокупный открытый номинал по всем участникам — и (b) слеп к направлению, так как совокупные лонги по перпам равны шортам, поэтому он не может выразить 'наименее заполненный-LONG'. Новый ключ ранжирования — это `taker_long_short_vol_ratio`, считываемый по каждой ноге из `taker_flow_by_instrument`: это агрессивный объём BUY, делённый на агрессивный объём SELL,……Показать большеСвернуть

Устраняет именно тот дефект, который поднял QA. QA отверг ключ ранжирования, потому что открытый интерес (a) не является прокси розничной торговли — это совокупный открытый номинал по всем участникам — и (b) слеп к направлению, так как совокупные лонги по перпам равны шортам, поэтому он не может выразить 'наименее заполненный-LONG'. Новый ключ ранжирования — это `taker_long_short_vol_ratio`, считываемый по каждой ноге из `taker_flow_by_instrument`: это агрессивный объём BUY, делённый на агрессивный объём SELL, поэтому он DIRECTIONAL по построению (высокое значение буквально означает, что толпа склоняется к лонгу по данному инструменту) и является мерой со стороны агрессора/тейкера (обращённой к рознице), а не совокупным открытым номиналом. Он также берётся из тех же файлов VISION `metrics` Binance, которые гипотеза называет своим источником данных, с той же многолетней историей до -2020 — отличается только колонка. Ранжирование использует собственный z-score каждого инструмента (среднее за 7d против среднего/sd за 90d), чтобы структурно различные уровни тейкера сравнивались по BTC и ADA, согласно уроку о том, что фиксированные абсолютные пороги на вспомогательных данных не являются масштабо-инвариантными. DISCLOSED, NOT HIDDEN: буквальный ключ гипотезы — это отношение лонг/шорт ACCOUNT GLOBAL (`long_short_ratio`, в том же parquet), но конвейер загружает `metrics` только для символа PRIMARY, и единственными существующими кросс-секционными подключениями по ногам являются `funding_rates_by_instrument`, `open_interest_by_instrument` и `taker_flow_by_instrument` (subprocess_entry.py) — поэтому ранг по 8 инструментам на основании отношения счетов сегодня не выразим в коде стратегии; требуется подключение `global_ratio_by_instrument`, зеркально отражающее эти три, что является изменением конвейера. Из трёх существующих поток тейкера — единственный, который одновременно направленный и обращён к рознице, поэтому он является верным заместителем, и отношение счетов по-прежнему используется там, где оно IS доступно (гейт кеша эйфории BTC). Проверено на реальных данных перед отправкой: все ноги 8 несут шаговые серии по 8k точек, охватывающие 1737-2193 дней, 208/208 смоделированных еженедельных ребалансировок за последние 4 лет дают ранжированное кросс-сечение, и позиции ротируются по всем инструментам (67-86 выборов каждый), а не застревают на одном — так что это торгуется и не является вырожденным ранжированием. Также перенесены ещё два небольших исправления: еженедельный ритм теперь привязан к календарю по временной метке бара, а не к относительному счётчику процессов `_bar_i` (безопасно при перезапуске, идентично при воспроизведении), и `exit_level` принудительно устанавливается строго ниже `euphoria_level`, чтобы оптимизатор не мог инвертировать гистерезис в покачную осцилляцию на каждом баре. Безопасность тайм-аута слоя-3 не изменена и сохранена: префиксные суммы + searchsorted удерживают каждый per-bar lookup на O(log n), а шаговая обработка при разборе ограничивает __init__ на уровне ~10 с, измеренном для всех ног 8.

verification_loop: Проверка не пройдена (Слой 4 — QA ревью) [класс=hypothesis_mismatch]: - [edge_concern] Песочница представляет собой связную корзину крупных активов только в лонг, которая запускается и торгуется (337 сделок, avg_trade_return_pct 0.69% проходит порог комиссий), однако total_return -20.85%, information_ratio -0.901 относительно бенчмарка в виде равновесной корзины, и max_drawdown 71% (CI к 96%) указывают на то, что подставленный ключ ранжирования по потоку taker добавляет отрицательную……Показать большеСвернуть

verification_loop: Проверка не пройдена (Слой 4 — QA ревью) [класс=hypothesis_mismatch]: - [edge_concern] Песочница представляет собой связную корзину крупных активов только в лонг, которая запускается и торгуется (337 сделок, avg_trade_return_pct 0.69% проходит порог комиссий), однако total_return -20.85%, information_ratio -0.901 относительно бенчмарка в виде равновесной корзины, и max_drawdown 71% (CI к 96%) указывают на то, что подставленный ключ ранжирования по потоку taker добавляет отрицательную скорректированную на риск доходность по сравнению с наивным равновесным удержанием. Это лишь рекомендация; это следствие несоответствия ключа ранжирования и подлежит переоценке аналитиком на скорректированной реализации, а не блокируется здесь. - [критическое] Единственная определяющая особенность гипотезы — повторяемая во всём заголовке/описании ('по GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'чистое слабое владение FACTOR, не моментум') — состоит в том, что CROSS-SECTIONAL RANKING KEY является глобальным по инструменту соотношением long/short ACCOUNT — прокси розничного позиционирования/владения, намеренно ортогональным моментуму и фандингу. Код NOT ранжирует по нему. _crowd_z() / _rebalance() ранжируют 8 крупных активов по `taker_long_short_vol_ratio` (агрессивный BUY объём / агрессивный SELL объём), читаемому из `taker_flow_by_instrument`. Taker long/short соотношение объёмов является мерой FLOW/AGGRESSOR, а не мерой владения/позиционирования — оно существенно отличается от соотношения по счетам и, по-видимому, ближе к краткосрочному потоку/моментуму, которому гипотеза прямо заявляет ортогональность. Указанное соотношение по счетам используется лишь для вторичного BTC кэш-гейта эйфории (_parse_global / calculate_signal), и никогда для первичного отбора. Согласно чек-листу QA, когда конкретное именованное основное преимущество гипотезы отсутствует в коде, это критично: заявленный фактор слабого владения не является тем фактором, которым ведётся торговля. (строка 259) — исправление: либо (a) подключите глобальное соотношение по счетам по инструменту в конвейер как `global_ratio_by_instrument` (зеркалируя funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument в subprocess_entry.py) и ранжируйте по нему — это точная реализация, которую называет гипотеза; либо (b) если этот по-инструментный ряд действительно не может быть предоставлен, то прогон является блоком покрытия DATA (not_measurable), а не стратегией для запуска на подставленном ключе — оформите это именно так, чтобы гипотеза была припаркована до момента подключения ряда, вместо того чтобы молча торговать другой (потоковый) фактор. Не - [предупреждение] Проверка согласованности помечает гипотезу 'WEEKLY' против конфигурации bar_type 1-DAY. Это NOT реальное несоответствие: 'еженедельный' в гипотезе относится к REBALANCE/HOLD-cadence, который корректно реализован как дневные бары с привязанным к календарю 7-дневным ребалансом (day % rebalance_days == 0). Использование буквально еженедельных баров огрубило бы перцентиль эйфории и частоту; конструкция «дневной бар + 7-дневный ребаланс» является корректным способом выражения еженедельной ротации. Отмечено для прозрачности; не влияет на вердикт. (строка 380) — исправление: дополнительно перефразируйте текст гипотезы так, чтобы сказать 'еженедельный ребаланс на дневных барах', чтобы заглушить предупреждение согласованности Слоя-1.5.

Реализация

Только-лонг, еженедельно ребалансируемая кросс-секционная ротация по 8 USD-M мажорам (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). Заполненность каждого инструмента измеряется из отношения лонг/шорт TAKER VOLUME по инструменту в зеркале Binance Vision `metrics` (агрессивный объём покупок / агрессивный объём продаж, 5-мин, многолетний) как z-score его среднего за 7 дней относительно собственного среднего и sd за 90 дней; 3 LEAST плотно залонгованных инструментов удерживаются равновзвешенно по 30% капитала каждый. Системно-эйфорический гейт кеша, построенный из PRIMARY (BTC) глобального отношения лонг/шорт ACCOUNT, переводит всю книгу в кеш, когда это отношение находится в верхних 15% его собственного распределения за 90 дней, реинвестируя на 65-м перцентиле (гистерезис). Ребалансировки привязаны к календарному времени (days_since_epoch % 7), а не к счётчику баров. Только-лонг, плечо 1.0, шорт-ноги нет.

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

Проверка не пройдена (Слой 4 — QA ревью) [класс=hypothesis_mismatch]: - [edge_concern] Песочница представляет собой связную корзину крупных активов только в лонг, которая запускается и торгуется (337 сделок, avg_trade_return_pct 0.69% проходит порог комиссий), однако total_return -20.85%, information_ratio -0.901 относительно бенчмарка в виде равновесной корзины, и max_drawdown 71% (CI к 96%) указывают на то, что подставленный ключ ранжирования по потоку taker добавляет отрицательную скорректированную на риск……Показать большеСвернуть

Проверка не пройдена (Слой 4 — QA ревью) [класс=hypothesis_mismatch]: - [edge_concern] Песочница представляет собой связную корзину крупных активов только в лонг, которая запускается и торгуется (337 сделок, avg_trade_return_pct 0.69% проходит порог комиссий), однако total_return -20.85%, information_ratio -0.901 относительно бенчмарка в виде равновесной корзины, и max_drawdown 71% (CI к 96%) указывают на то, что подставленный ключ ранжирования по потоку taker добавляет отрицательную скорректированную на риск доходность по сравнению с наивным равновесным удержанием. Это лишь рекомендация; это следствие несоответствия ключа ранжирования и подлежит переоценке аналитиком на скорректированной реализации, а не блокируется здесь. - [критическое] Единственная определяющая особенность гипотезы — повторяемая во всём заголовке/описании ('по GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'чистое слабое владение FACTOR, не моментум') — состоит в том, что CROSS-SECTIONAL RANKING KEY является глобальным по инструменту соотношением long/short ACCOUNT — прокси розничного позиционирования/владения, намеренно ортогональным моментуму и фандингу. Код NOT ранжирует по нему. _crowd_z() / _rebalance() ранжируют 8 крупных активов по `taker_long_short_vol_ratio` (агрессивный BUY объём / агрессивный SELL объём), читаемому из `taker_flow_by_instrument`. Taker long/short соотношение объёмов является мерой FLOW/AGGRESSOR, а не мерой владения/позиционирования — оно существенно отличается от соотношения по счетам и, по-видимому, ближе к краткосрочному потоку/моментуму, которому гипотеза прямо заявляет ортогональность. Указанное соотношение по счетам используется лишь для вторичного BTC кэш-гейта эйфории (_parse_global / calculate_signal), и никогда для первичного отбора. Согласно чек-листу QA, когда конкретное именованное основное преимущество гипотезы отсутствует в коде, это критично: заявленный фактор слабого владения не является тем фактором, которым ведётся торговля. (строка 259) — исправление: либо (a) подключите глобальное соотношение по счетам по инструменту в конвейер как `global_ratio_by_instrument` (зеркалируя funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument в subprocess_entry.py) и ранжируйте по нему — это точная реализация, которую называет гипотеза; либо (b) если этот по-инструментный ряд действительно не может быть предоставлен, то прогон является блоком покрытия DATA (not_measurable), а не стратегией для запуска на подставленном ключе — оформите это именно так, чтобы гипотеза была припаркована до момента подключения ряда, вместо того чтобы молча торговать другой (потоковый) фактор. Не - [предупреждение] Проверка согласованности помечает гипотезу 'WEEKLY' против конфигурации bar_type 1-DAY. Это NOT реальное несоответствие: 'еженедельный' в гипотезе относится к REBALANCE/HOLD-cadence, который корректно реализован как дневные бары с привязанным к календарю 7-дневным ребалансом (day % rebalance_days == 0). Использование буквально еженедельных баров огрубило бы перцентиль эйфории и частоту; конструкция «дневной бар + 7-дневный ребаланс» является корректным способом выражения еженедельной ротации. Отмечено для прозрачности; не влияет на вердикт. (строка 380) — исправление: дополнительно перефразируйте текст гипотезы так, чтобы сказать 'еженедельный ребаланс на дневных барах', чтобы заглушить предупреждение согласованности Слоя-1.5.

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

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованные параметры: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Проверьте, что __init__ устанавливает все атрибуты через self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof()……Показать большеСвернуть

Проверка не пройдена (Layer 2 — синтетические сценарии): Использованные параметры: ['top_k', 'exit_level', 'min_notional', 'per_name_frac', 'euphoria_level', 'rebalance_days', 'euphoria_window'] Проверьте, что __init__ устанавливает все атрибуты через self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianRotationLong._asof() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735691940000) - steady_downtrend: TypeError: RetailCrowdingContrarianRotationLong._asof() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735691940000) - flat_ranging: TypeError: RetailCrowdingContrarianRotationLong._asof() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735691940000) - volatility_spike: TypeError: RetailCrowdingContrarianRotationLong._asof() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735691940000) - zero_volume: TypeError: RetailCrowdingContrarianRotationLong._asof() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735691940000) - price_gap: TypeError: RetailCrowdingContrarianRotationLong._asof() принимает 3 позиционных аргументов, но передано 4 (временная метка бара: 1735691940000)

Проверка не пройдена (Layer 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300с. Почти всегда это означает работу на каждом баре, масштабируемую по истории — например, повторное сканирование полного ряда финансирования/дополнительных данных либо построение списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно вычислите отсортированные массивы временных меток ONCE в __init__ и используйте bisect, либо кэшируйте результаты поиска по временной метке, чтобы стоимость обработки бара была O(log n), а не O(n).

Проверка не пройдена (слой 4 — проверка QA) [класс=hypothesis_mismatch]: - [edge_concern] Песочница является дымовым тестом и не является причиной сбоя, но следует отметить: metrics_reliable=false, знак Sharpe (0.10) несогласован с total_return (-34.3%), MDD 70%, а книга с перегруженностью OI теряет больше всего в терциле стрессовой волатильности (-37.8%). Если механизм сохранится до проверки бэктеста, сначала проверьте, есть ли у OI z-ранга вообще направленное преимущество, учитывая, что OI не учитывает……Показать большеСвернуть

Проверка не пройдена (слой 4 — проверка QA) [класс=hypothesis_mismatch]: - [edge_concern] Песочница является дымовым тестом и не является причиной сбоя, но следует отметить: metrics_reliable=false, знак Sharpe (0.10) несогласован с total_return (-34.3%), MDD 70%, а книга с перегруженностью OI теряет больше всего в терциле стрессовой волатильности (-37.8%). Если механизм сохранится до проверки бэктеста, сначала проверьте, есть ли у OI z-ранга вообще направленное преимущество, учитывая, что OI не учитывает направление. - Основное преимущество гипотезы — это кросс-секционный ранг по GLOBAL LONG/SHORT ACCOUNT RATIO для каждого имени — фактор направленной недодержанности со стороны ритейла («держать имена, по которым ритейл LEAST перегружен в сторону LONG»). Вместо этого код ранжирует по z-оценке PERP OPEN INTEREST для каждого имени и удерживает 3 с наименьшими значениями. Это подменённый механизм, который не сохраняет экономический смысл: OI не является прокси ритейла (это общий открытый номинал всех участников), а OI — это DIRECTION-BLIND (совокупные лонги == шорты в бессрочных контрактах), поэтому он не может выразить «наименее перегруженный лонгами». Конкретное названное преимущество гипотезы отсутствует в коде → критично.

Верификация не пройдена (Слой 4 — QA обзор) [класс=hypothesis_mismatch]: - [edge_concern] Песочница выглядит здоровой (+93%, Шарп 0.77, PF 1.55, avg_trade_return_pct 6.63%) именно потому, что код представляет собой фандинг-кэрри ротацию, которую разработчик подтверждает перекрывающейся с уже развёрнутой корзиной негативного фандинга — так что хорошие показатели говорят против выдвижения почти-дубликата живой стратегии, а не ортогонального фактора заполненности, который гипотеза должна была добавить.……Показать большеСвернуть

Верификация не пройдена (Слой 4 — QA обзор) [класс=hypothesis_mismatch]: - [edge_concern] Песочница выглядит здоровой (+93%, Шарп 0.77, PF 1.55, avg_trade_return_pct 6.63%) именно потому, что код представляет собой фандинг-кэрри ротацию, которую разработчик подтверждает перекрывающейся с уже развёрнутой корзиной негативного фандинга — так что хорошие показатели говорят против выдвижения почти-дубликата живой стратегии, а не ортогонального фактора заполненности, который гипотеза должна была добавить. Рекомендательно; блок — это точность реализации. - Основное преимущество не реализовано, и заместитель — это именно тот механизм, который гипотеза EXCLUDES. Гипотеза ранжирует по отношению лонг/шорт GLOBAL ACCOUNT по инструменту (розничная заполненность), явно 'не фандинг (кэрри)... ортогональна моментуму и фандингу'. Код ранжирует кросс-сечение по FUNDING по инструменту (наименьшее = удерживается) — ранг фандинг-кэрри, который разработчик признаёт перекрывающимся с развёрнутой корзиной кэрри. Ключ заполненности по отношению счетов отсутствует и нереализуем (метрики подключены только для основного символа; нет metrics_by_instrument). - Ритм ребалансировки привязан к относительному счётчику баров процесса (self._bar_i % rebalance_days), а не к временной метке бара. Перезапуски сбрасывают _bar_i и сдвигают сетку еженедельной ротации с любого фиксированного календарного дня; воспроизведение паритета не может воспроизвести даты ротации. Более мягкая форма-20 (без срабатывания sentinel/first-bar). Получать из дней-с-эпохи или фиксированного дня недели.

Причина отказа

verification_loop: Верификация не пройдена (Слой 4 — QA обзор) [класс=hypothesis_mismatch]: - [edge_concern] Песочница представляет собой согласованную корзину только-лонг по мажорам, которая запускается и торгуется (337 сделок, avg_trade_return_pct 0.69% проходит порог комиссий), но total_return -20.85%, information_ratio -0.901 против бенчмарка равновзвешенной корзины, и max_drawdown 71% (CI к 96%) указывают, что подставленный ключ ранжирования потока тейкера добавляет отрицательную скорректированную на риск……Показать большеСвернуть

verification_loop: Верификация не пройдена (Слой 4 — QA обзор) [класс=hypothesis_mismatch]: - [edge_concern] Песочница представляет собой согласованную корзину только-лонг по мажорам, которая запускается и торгуется (337 сделок, avg_trade_return_pct 0.69% проходит порог комиссий), но total_return -20.85%, information_ratio -0.901 против бенчмарка равновзвешенной корзины, и max_drawdown 71% (CI к 96%) указывают, что подставленный ключ ранжирования потока тейкера добавляет отрицательную скорректированную на риск ценность по сравнению с наивным равновзвешенным удержанием. Это носит только рекомендательный характер; это следствие несоответствия ключа ранжирования и должно быть повторно оценено аналитиком на скорректированной реализации, а не блокироваться здесь. - [критично] Единственная определяющая особенность гипотезы — повторённая по всему заголовку/описанию ('по GLOBAL отношение лонг/шорт счетов', 'count_long_short_ratio', 'чистый андер-владение FACTOR, не моментум') — состоит в том, что CROSS-SECTIONAL RANKING KEY — это глобальное отношение лонг/шорт ACCOUNT по инструменту, прокси розничного позиционирования/владения, намеренно ортогональная моментуму и фандингу. Код NOT ранжирует по этому. _crowd_z() / _rebalance() ранжируют 8 мажоров по `taker_long_short_vol_ratio` (агрессивный объём BUY / агрессивный объём SELL), считанному из `taker_flow_by_instrument`. Отношение объёмов лонг/шорт тейкера — это мера FLOW/AGGRESSOR, а не мера владения/позиционирования — оно существенно отличается от отношения счетов и, по-видимому, ближе к краткосрочному потоку/моментуму, которому гипотеза явно заявляет себя ортогональной. Указанное отношение счетов используется только для вторичного гейта кеша эйфории BTC (_parse_global / calculate_signal), и никогда для первичного отбора. Согласно чек-листу QA, когда конкретное именованное основное преимущество гипотезы отсутствует в коде, это критично: заявленный фактор андер-владения не является торгуемым фактором. (строка 259) — исправление: Либо (a) подключить глобальное отношение счетов по инструменту в конвейер как `global_ratio_by_instrument` (зеркально funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument в subprocess_entry.py) и ранжировать по нему — это верная реализация, которую называет гипотеза; либо (b) если этот per-leg ряд действительно не может быть предоставлен, прогон является блоком покрытия DATA (not_measurable), а не стратегией для поставки на подставленном ключе — сообщите об этом как таковом, чтобы гипотеза была припаркована до подключения ряда, вместо того чтобы молча торговать другим (потоковым) фактором. Do - [предупреждение] Проверка согласованности помечает гипотезу 'WEEKLY' против конфига bar_type 1-DAY. Это NOT подлинное несоответствие: 'еженедельный' в гипотезе относится к ритму REBALANCE/HOLD, который корректно реализован как дневные бары, ограниченные календарно-привязанной ребалансировкой каждые 7 дней (день % rebalance_days == 0). Использование буквально еженедельных баров сделало бы грубее перцентиль и ритм эйфории; конструкция дневной бар + ребалансировка 7 дней — правильный способ выразить еженедельную ротацию. Отмечено для прозрачности; не влияет на вердикт. (строка 380) — исправление: По желанию переформулируйте текст гипотезы на 'еженедельная ребалансировка на дневных барах', чтобы заглушить предупреждение согласованности слоя-1.5.

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