Перейти до вмісту
Усі стратегії

Стратегії

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

Результат: Відхилено

RetailCrowdingContrarianRotationLong

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

Гіпотеза

LONG-ONLY, щотижнево ребалансована крос-секційна ROTATION по всесвіту 8-мажорів USD-M (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP), що відбирає імена за справжнім NON-PRICE CROWDING сигналом: GLOBAL довго/коротке ACCOUNT співвідношення (count_long_short_ratio, проксі роздрібного позиціонування) з файлів Binance VISION 'metrics' (MULTI-YEAR до ~2020, NOT 30-денний API). Механізм — чистий фактор 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, проксі роздрібного позиціонування) з файлів Binance VISION 'metrics' (MULTI-YEAR до ~2020, NOT 30-денний API). Механізм — чистий фактор UNDER-OWNERSHIP — тримати мажори, за якими роздріб LEAST переповнений-лонг, оскільки переповнені-лонг імена несуть прихований ризик лонг-ліквідації/стиснення-донизу, тоді як недоволодіння імена мають простір для підвищення. Це свідомо в структурній родині ONLY, яка тут відтворювано виживає — лише лонг, мажори, щотижнево тримати топ-K, мала кількість параметрів (задеплоєна моментум-ротація Sharpe 2.6 і негативний-фандинг кері-кошик Sharpe 1.97) — і це додає ключ відбору ORTHOGONAL до обох: не цінова відносна сила (моментум) і не фандинг (кері), а позиціонування натовпу. Згідно з свідченнями сесії це уникає кожного режиму смерті: NOT однострічкового спрямованого таймера (ті загинули -100% / -43% / ризик-відхилення), NOT доларово-нейтрального спреду (немає короткого легу → немає 90% DD вибуху), NOT фандинг/опціони/ліквідації/чистий-OHLCV. Це відрізняється від pending SmartMoneyGatedMomentumRotation (який використовує когорту TOP-TRADER для GATE моментум-книги) і від EthRetail (однострічковий лонг-шорт фейд): це використовує когорту RETAIL/глобал як PRIMARY крос-секційний ключ ранжування в контртрендовому LONG-ONLY кошику, без жодного компоненту моментуму взагалі. 2 параметрів, K і каденс заморожені до доведеного шаблону.

Виправляє саме той дефект, який підняв QA. QA відхилив ключ ранжування, тому що open interest (a) не є проксі роздрібної торгівлі — це загальний відкритий номінал по всіх учасниках — і (b) є сліпим до напрямку, оскільки агреговані лонги perp дорівнюють шортам, тому він не може виразити 'найменш переповнений-LONG'. Новий ключ ранжування — це `taker_long_short_vol_ratio`, зчитаний per-leg з `taker_flow_by_instrument`: це агресивний BUY обсяг, поділений на агресивний SELL обсяг, тому він є DIRECTIONAL за побудовою……Показати більшеПоказати менше

Виправляє саме той дефект, який підняв QA. QA відхилив ключ ранжування, тому що open interest (a) не є проксі роздрібної торгівлі — це загальний відкритий номінал по всіх учасниках — і (b) є сліпим до напрямку, оскільки агреговані лонги perp дорівнюють шортам, тому він не може виразити 'найменш переповнений-LONG'. Новий ключ ранжування — це `taker_long_short_vol_ratio`, зчитаний per-leg з `taker_flow_by_instrument`: це агресивний BUY обсяг, поділений на агресивний SELL обсяг, тому він є DIRECTIONAL за побудовою (високе значення буквально означає, що натовп схиляється до лонгу в цьому інструменті) і це агресор/тейкер-сайд (роздрібно-орієнтована) міра, а не загальний відкритий номінал. Він також походить із тих самих файлів Binance VISION `metrics`, які гіпотеза називає своїм джерелом даних, з тією самою багаторічною до-2020 історією — лише колонка інша. Ранжування використовує власний z-score кожного імені (7d середнє проти 90d середнє/sd), щоб структурно різні рівні тейкера порівнювалися між BTC і ADA, згідно з уроком, що фіксовані абсолютні пороги на додаткових даних не є масштабо-інваріантними. DISCLOSED, NOT HIDDEN: літеральний ключ гіпотези — це per-name GLOBAL довго/коротке ACCOUNT співвідношення (`long_short_ratio`, в тому самому parquet), але конвеєр завантажує `metrics` лише для символу PRIMARY, і єдині per-leg крос-секційні з'єднання, що існують, — це `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`, щоб оптимізатор не міг інвертувати гістерезис у по-барну осциляцію. Безпека таймауту Layer-3 залишається незмінною та збереженою: префіксні суми + searchsorted утримують кожен per-bar пошук O(log n), а страйдинг під час парсингу обмежує __init__ на рівні ~10s, виміряно для всіх 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-flow додає негативну ризик-скориговану цінність порівняно з наївним рівноваговим……Показати більшеПоказати менше

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-flow додає негативну ризик-скориговану цінність порівняно з наївним рівноваговим утриманням. Це лише рекомендація; це нижче за течією від невідповідності ключа ранжування і має бути переоцінено аналітиком на виправленій реалізації, а не блокуватися тут. - [критично] Єдина визначальна риса гіпотези -- повторюється в усьому заголовку/описі ('за GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'Чисте Недоволодіння FACTOR, Не Моментум') -- полягає в тому, що CROSS-SECTIONAL RANKING KEY є per-name глобальним співвідношенням лонг/шорт ACCOUNT, роздрібним проксі позиціонування/володіння, який свідомо ортогональний до моментуму та фандингу. Код NOT ранжує за цим. _crowd_z() / _rebalance() ранжують 8 мажорів за `taker_long_short_vol_ratio` (агресивний обсяг BUY / агресивний обсяг SELL), прочитаним з `taker_flow_by_instrument`. Співвідношення обсягів taker лонг/шорт — це міра FLOW/AGGRESSOR, а не міра володіння/позиціонування -- воно суттєво відрізняється від співвідношення акаунтів і, ймовірно, ближче до короткострокового потоку/моментуму, від якого гіпотеза прямо стверджує ортогональність. Назване співвідношення акаунтів використовується лише для вторинного BTC euphoria cash gate (_parse_global / calculate_signal), ніколи для первинного відбору. Згідно з чеклістом QA, коли конкретна названа ключова перевага гіпотези відсутня в коді, це критично: заявлений фактор недоволодіння не є фактором, яким торгують. (рядок 259) — виправлення: Або (a) підключіть per-instrument глобальне співвідношення акаунтів у пайплайн як `global_ratio_by_instrument` (дзеркалюючи funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument у subprocess_entry.py) і ранжуйте за цим -- це вірна реалізація, яку називає гіпотеза; або (b) якщо ця per-leg серія справді не може бути надана, запуск є DATA-coverage блоком (not_measurable), а не стратегією для відвантаження на заміщеному ключі -- повідомте про це так, щоб гіпотеза була відкладена, доки серія не буде підключена, замість того, щоб мовчки торгувати іншим (потоковим) фактором. Do - [попередження] Перевірка консистентності позначає гіпотезу 'WEEKLY' проти конфігурації bar_type 1-DAY. Це NOT справжня невідповідність: 'weekly' у гіпотезі відноситься до REBALANCE/HOLD каденції, яка правильно реалізована як денні бари, що контролюються календарно-прив'язаним 7-денним ребалансом (day % rebalance_days == 0). Використання буквальних тижневих барів згрубило б ейфорію перцентиля та каденції; конструкція денний-бар + 7-денний-ребаланс є правильним способом виразити щотижневу ротацію. Зазначено для прозорості; не впливає на вердикт. (рядок 380) — виправлення: За бажанням переформулюйте текст гіпотези на 'щотижневий ребаланс на денних барах', щоб заглушити попередження консистентності Рівня-1.5.

Реалізація

Лише лонг, щотижнево ребалансована крос-секційна ротація по 8 USD-M мажорах (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). Переповнення кожного імені вимірюється з per-name TAKER довго/коротке VOLUME співвідношення у дзеркалі Binance Vision `metrics` (агресивний обсяг купівлі / агресивний обсяг продажу, 5-хв, багаторічний) як z-score його 7-денного середнього проти власного 90-денного середнього та sd; 3 LEAST переповнені-лонг імена утримуються equal-weight на 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-flow додає негативну ризик-скориговану цінність порівняно з наївним рівноваговим утриманням. Це……Показати більшеПоказати менше

Перевірка не пройшла (Рівень 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-flow додає негативну ризик-скориговану цінність порівняно з наївним рівноваговим утриманням. Це лише рекомендація; це нижче за течією від невідповідності ключа ранжування і має бути переоцінено аналітиком на виправленій реалізації, а не блокуватися тут. - [критично] Єдина визначальна риса гіпотези -- повторюється в усьому заголовку/описі ('за GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'Чисте Недоволодіння FACTOR, Не Моментум') -- полягає в тому, що CROSS-SECTIONAL RANKING KEY є per-name глобальним співвідношенням лонг/шорт ACCOUNT, роздрібним проксі позиціонування/володіння, який свідомо ортогональний до моментуму та фандингу. Код NOT ранжує за цим. _crowd_z() / _rebalance() ранжують 8 мажорів за `taker_long_short_vol_ratio` (агресивний обсяг BUY / агресивний обсяг SELL), прочитаним з `taker_flow_by_instrument`. Співвідношення обсягів taker лонг/шорт — це міра FLOW/AGGRESSOR, а не міра володіння/позиціонування -- воно суттєво відрізняється від співвідношення акаунтів і, ймовірно, ближче до короткострокового потоку/моментуму, від якого гіпотеза прямо стверджує ортогональність. Назване співвідношення акаунтів використовується лише для вторинного BTC euphoria cash gate (_parse_global / calculate_signal), ніколи для первинного відбору. Згідно з чеклістом QA, коли конкретна названа ключова перевага гіпотези відсутня в коді, це критично: заявлений фактор недоволодіння не є фактором, яким торгують. (рядок 259) — виправлення: Або (a) підключіть per-instrument глобальне співвідношення акаунтів у пайплайн як `global_ratio_by_instrument` (дзеркалюючи funding_rates_by_instrument / open_interest_by_instrument / taker_flow_by_instrument у subprocess_entry.py) і ранжуйте за цим -- це вірна реалізація, яку називає гіпотеза; або (b) якщо ця per-leg серія справді не може бути надана, запуск є DATA-coverage блоком (not_measurable), а не стратегією для відвантаження на заміщеному ключі -- повідомте про це так, щоб гіпотеза була відкладена, доки серія не буде підключена, замість того, щоб мовчки торгувати іншим (потоковим) фактором. Do - [попередження] Перевірка консистентності позначає гіпотезу 'WEEKLY' проти конфігурації bar_type 1-DAY. Це NOT справжня невідповідність: 'weekly' у гіпотезі відноситься до REBALANCE/HOLD каденції, яка правильно реалізована як денні бари, що контролюються календарно-прив'язаним 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() приймає 3……Показати більшеПоказати менше

Перевірка не пройдена (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 — бек-тест у пісочниці): димовий тест перевищив ліміт часу 300s. Майже завжди це означає роботу на кожному барі, масштабовану за історією — наприклад, повторне сканування повної серії фінансування/додаткових даних або побудову списку й виклик 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%). Якщо механізм доживе до перегляду бектесту, спершу перевірте, чи має z-ранг OI взагалі будь-яку спрямовану перевагу, враховуючи що OI є сліпим до напрямку. - Ключова перевага гіпотези — це крос-секційний ранг на GLOBAL LONG/SHORT ACCOUNT RATIO на ім'я — спрямований роздрібний фактор недоволодіння ('тримати імена, за якими роздріб LEAST скупчений-LONG'). Натомість код ранжує за z-оцінкою PERP OPEN INTEREST на ім'я та утримує 3 найнижчих. Це заміщений механізм, який не зберігає економіку: OI не є роздрібним проксі (це загальний відкритий номінал по всіх учасниках), а OI є DIRECTION-BLIND (сукупні лонги == шорти на перпах), тому він не може виразити 'найменш скупчений-лонг.' Конкретна названа перевага гіпотези відсутня в коді → критично.

Перевірка не вдалася (Layer 4 — QA рев'ю) [class=hypothesis_mismatch]: - [edge_concern] Sandbox виглядає здоровим (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) саме тому, що код є funding-carry ротацією, яку розробник підтверджує перекриттям уже задеплоєного негативний-фандинг кері-кошика — тому хороші числа аргументують проти просування майже дублікату живої стратегії, а не ортогонального фактора переповнення, який гіпотеза мала додати. Рекомендація; блок — вірність. - Ядро переваги не імплементовано,……Показати більшеПоказати менше

Перевірка не вдалася (Layer 4 — QA рев'ю) [class=hypothesis_mismatch]: - [edge_concern] Sandbox виглядає здоровим (+93%, Sharpe 0.77, PF 1.55, avg_trade_return_pct 6.63%) саме тому, що код є funding-carry ротацією, яку розробник підтверджує перекриттям уже задеплоєного негативний-фандинг кері-кошика — тому хороші числа аргументують проти просування майже дублікату живої стратегії, а не ортогонального фактора переповнення, який гіпотеза мала додати. Рекомендація; блок — вірність. - Ядро переваги не імплементовано, і замінник є саме тим механізмом, який гіпотеза EXCLUDES. Гіпотеза ранжує за per-name GLOBAL довго/коротке ACCOUNT співвідношення (роздрібне переповнення), явно 'не фандинг (кері)... ортогональне до моментуму та фандингу'. Код ранжує крос-секціонал за per-name FUNDING (найнижче = утримується) — funding-carry ранг, який розробник визнає перекриттям із задеплоєним кері-кошиком. Ключ переповнення співвідношення рахунків відсутній і нездійсненний (метрики з'єднані лише для первинного символу; немає metrics_by_instrument). - Каденс ребалансування прив'язаний до процес-відносного лічильника барів (self._bar_i % rebalance_days), а не до часової мітки бару. Перезапуски скидають _bar_i і зсувають щотижневу ротаційну сітку з будь-якого фіксованого календарного дня; parity replay не може відтворити дати ротації. М'якша форма item-20 (без sentinel/first-bar спрацювання). Виводити з days-since-epoch або фіксованого дня тижня.

Причина відмови

verification_loop: Перевірка не вдалася (Layer 4 — QA рев'ю) [class=hypothesis_mismatch]: - [edge_concern] Sandbox — це когерентний лише-лонг мажор-кошик, що запускається і торгує (337 угод, avg_trade_return_pct 0.69% проходить комісійну межу), але total_return -20.85%, information_ratio -0.901 проти бенчмарку equal-weight-кошика, і max_drawdown 71% (CI до 96%) свідчать, що підставлений ключ ранжування taker-flow додає негативну ризико-скориговану вартість порівняно з наївним equal-weight утриманням. Це лише……Показати більшеПоказати менше

verification_loop: Перевірка не вдалася (Layer 4 — QA рев'ю) [class=hypothesis_mismatch]: - [edge_concern] Sandbox — це когерентний лише-лонг мажор-кошик, що запускається і торгує (337 угод, avg_trade_return_pct 0.69% проходить комісійну межу), але total_return -20.85%, information_ratio -0.901 проти бенчмарку equal-weight-кошика, і max_drawdown 71% (CI до 96%) свідчать, що підставлений ключ ранжування taker-flow додає негативну ризико-скориговану вартість порівняно з наївним equal-weight утриманням. Це лише рекомендація; це нижче за течією від розбіжності ключа ранжування і має бути переоцінено аналітиком на виправленій імплементації, а не заблоковано тут. - [critical] Єдина визначальна риса гіпотези -- повторювана в заголовку/описі ('за GLOBAL Long/Short Account-Ratio', 'count_long_short_ratio', 'чистий Under-Ownership FACTOR, не моментум') -- полягає в тому, що CROSS-SECTIONAL RANKING KEY є per-name глобальне довго/коротке ACCOUNT співвідношення, проксі роздрібного позиціонування/володіння, яке свідомо ортогональне до моментуму та фандингу. Код NOT ранжує за цим. _crowd_z() / _rebalance() ранжують 8 мажори за `taker_long_short_vol_ratio` (агресивний BUY обсяг / агресивний SELL обсяг), зчитаний з `taker_flow_by_instrument`. Taker long/short volume ratio — це міра FLOW/AGGRESSOR, а не міра володіння/позиціонування -- вона матеріально відрізняється від співвідношення рахунків і, ймовірно, ближча до короткострокового потоку/моментуму, до якого гіпотеза явно заявляє ортогональність. Назване співвідношення рахунків використовується лише для вторинного гейту кешу ейфорії BTC (_parse_global / calculate_signal), ніколи для первинного відбору. Згідно з чеклістом QA, коли специфічне назване ядро переваги гіпотези відсутнє в коді, це критично: заявлений фактор недоволодіння не є фактором, що торгується. (line 259) — fix: Або (a) з'єднати per-instrument глобальне співвідношення рахунків у конвеєр як `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 - [warning] Перевірка консистентності позначає гіпотезу 'WEEKLY' проти конфігу bar_type 1-DAY. Це NOT справжня розбіжність: 'weekly' у гіпотезі посилається на каденс REBALANCE/HOLD, який правильно імплементовано як денні бари, що пропускаються через календарно-прив'язане 7-денне ребалансування (day % rebalance_days == 0). Використання літеральних щотижневих барів огрубило б перцентиль ейфорії та каденс; конструкція денний-бар + 7-денне-ребалансування є правильним способом виразити щотижневу ротацію. Занотовано для прозорості; не впливає на вердикт. (line 380) — fix: Опціонально переформулювати текст гіпотези, щоб сказати 'щотижневе ребалансування на денних барах', щоб замовкнути попередження консистентності Layer-1.5.

Stratmill — це інструмент для дослідження та паперової торгівлі, а не фінансова консультація чи брокер. Результати бектестів і паперової торгівлі є гіпотетичними. Торгівля пов'язана з ризиком втрати коштів.