HyperliquidSolFundingExtremeContrarian
Гіпотези
Контртрендова стратегія на екстремумах фінансування безстрокового контракту Hyperliquid SOL — довгі та короткі позиції, один інструмент: FADE скупчення позицій, коли ковзна Z-оцінка фінансування досягає екстремуму (дуже позитивне фінансування = надмірне кредитне плече в довгих позиціях → SHORT; дуже негативне = капітуляція коротких позицій → LONG), з підтвердженням через відсутність цінового підтвердження, вихід за повернення фінансування до норми / стопом ATR / часовим стопом (SOLUSDT.HYPERLIQUID, 4 год, 3 параметрів)
Гіпотези
Контртрендова стратегія LONG-SHORT для одного інструмента, керована POSITIONING, на безстроковому контракті Hyperliquid SOL, побудована навколо механічного сигналу NON-OHLCV — FUNDING безстрокових контрактів — який використовується у спосіб OPPOSITE щодо відмерлого сімейства cash-and-carry у фабриці стратегій. Це NOT дельта-нейтральний кері (який відмер, бо прибуток і збиток від фінансування були надто малими порівняно із шумом базису) і NOT ціновий моментум (кошики моментуму HL — 0/84). Натомість фінансування використовується як індикатор скупчення позицій / позиціонування для вибору моменту контртрендової угоди DIRECTIONAL: добре задокументовано, що за екстремально позитивного фінансування безстрокових контрактів довгі позиції мають надмірне кредитне плече та платять за утримання — такий стан історично передує LOWER подальшій дохідності безстрокових контрактів (ризик сквізу / масового вимивання позицій), а симетрично екстремально негативне фінансування позначає капітуляцію коротких позицій, яка передує відскокам. Обрано, щоб одночасно заповнити три недостатньо представлені категорії: HYPERLIQUID (6.8% проти цільового значення 20%), long_short (14.2%) та безпечну щодо даних перевагу поза OHLCV, яка не належить до кладовища перенавчених стратегій OHLCV. Один інструмент і 3 параметрів обрано навмисно, щоб зберегти можливість реалізації (кошики з кількох інструментів HL загинули через тайм-аути під час написання коду) та протидіяти перенавчанню. IMPLEMENTATION NOTE: підтримуйте базовий рівень фінансування як ковзну двобічну чергу, що оновлюється інкрементально (O(1) на оновлення) — NEVER повторно скануйте весь ряд фінансування всередині on_bar (цей шаблон спричиняв повторні тайм-аути пісочниці тривалістю 300 с).
Гіпотези
Ітерація 2 виправляє єдиний збій рівня -2 (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, усі шість сценаріїв). `_StrategyProxy` рівня -2 переприв’язує кожен викличний атрибут стратегії до простої обгортки через `types.MethodType`, що перетворює статичний метод `_bar_ts` базового класу з одним аргументом на прив’язаний метод — тому `self._bar_ts(bar)` отримує два аргументи. Мінімальне виправлення замінює цей єдиний виклик допоміжною функцією `_bar_timestamp_ns(bar)` рівня модуля, яка безпосередньо читає `bar.ts_event` (із резервним використанням `ts_init`) — поведінка ідентична, а переприв’язування проксі на неї не впливає. Більше нічого не змінено: імпорти, структура класу, розбір фінансування, логіка сигналів, входи, виходи та визначення розміру позицій побайтово ідентичні previous_code, що пройшов рівень 1, тож жодна попередня перевірка не може зазнати регресії. Зауважте, що `_bar_interval_ns` і далі викликається з `__init__`, який виконується на справжньому екземплярі до будь-якого переприв’язування проксі, тому це на нього не впливає. Кредитне плече 2.0 використовується в `position_size` через `self.config.leverage` в обмеженні сукупної номінальної вартості позицій.
Гіпотези
Контртрендова торгівля проти екстремумів фінансування на одному інструменті з від’ємним математичним очікуванням — немає переваги, яку можна оптимізувати. PF 0.60, total_return -33.7%, коефіцієнт Шарпа -0.42, математичне очікування -$156/угоду, і avg_trade_return_pct -0.37% (від’ємне, нижче порога комісій Hyperliquid 0.15%, L22). Збитки в кожному році (2024 -14.8%, 2025 -13.8%, 2026 -6.5%), причому частка прибуткових угод як для довгих, так і для коротких позицій нижча за -43%, а avg_loss > avg_win — контртрендова торгівля систематично опиняється з хибного боку руху, а єдиний прибутковий місяць зумовлений одним аномальним днем +10.77% (куртозис 9.8). Механізм реалізовано якісно (без тайм-ауту, фінансування зараховано), але він належить до двох сімейств, у яких не вижила жодна стратегія: повернення до середнього / торгівля проти руху на одному інструменті (L55) та спрямована торгівля одним безстроковим контрактом із додатковим фільтром за фінансуванням (L73). Фільтр відсутності цінового підтвердження не додав реальної переваги. Знак переваги на одну угоду від’ємний, і жодне налаштування параметрів не може його змінити. Не варто витрачати 2 годин на оптимізацію. Типовий сценарій невдачі: fee_edge/no_edge контртрендова торгівля одним безстроковим контрактом із фільтром за фінансуванням.
Реалізація
Контртрендова стратегія з довгими та короткими позиціями на одному безстроковому контракті Hyperliquid SOL (4-годинні бари). Фінансування використовується як індикатор скупчення позицій: ковзна z-оцінка значення hl_funding_rates відносно його власного розподілу за попередній період повертається на кожному барі як неперервний сигнал. Проти екстремально позитивної z-оцінки (скупчені довгі позиції, що переплачують) відкривається SHORT; проти екстремально негативної z-оцінки (капітуляція коротких позицій) відкривається LONG, але лише коли ціна не підтверджує позиціонування натовпу (ціна закриття не встановлює нового максимуму/мінімуму за confirm_bars барів). Виходи за повернення фінансування до норми (|z| <= exit_z), за стопом ATR, зафіксованим на момент входу, або за календарним часовим стопом, відлік якого ведеться від position.ts_opened. Розмір позиції визначається передусім ризиком: спрацювання стопа ATR коштує ~risk_frac капіталу, з незалежним обмеженням сукупної номінальної вартості позицій.
Результати перевірки
CLEAN RESTART 2026-09-04 — історію вердиктів і записи навчання цього запуску було видалено, а його перезапущено з етапу перевірки. Попередня відмова сталася через конвеєр, а не через ринок: механізм Layer-2 неправильно прив’язував допоміжні методи @staticmethod (виправлено), QA видавав остаточні вердикти щодо продуктивності на неоптимізованому димовому тесті (видалено — QA тепер оцінює лише коректність), а тайм-аути пісочниці були спричинені нестачею слотів для бек-тестів (виправлено). Гіпотеза й код стратегії не змінювалися. Перевірте код за його суттю; продуктивність буде визначено пізніше повним бек-тестом та оптимізатором.
Результати перевірки
Звузити _param_bounds до 3 основних налаштовуваних параметрів (entry_z, exit_z, funding_lookback_prints); зафіксувати параметри ризику/інфраструктури як константи.
Результати перевірки
Гіпотеза рекламує підхід «навмисно 3 параметрів, щоб протидіяти перенавчанню», але _param_bounds надає 11 параметрів для оптимізації. Механізм правильний, але 11-вимірний пошук із покроковою перевіркою на наступних часових відрізках суперечить заявленому обґрунтуванню захисту від перенавчання та підвищує ризик PBO. Не блокує подальшу роботу.
Результати перевірки
Не потрібно; зазначено для аналітика.
Результати перевірки
Усі синтетичні сигнали рівня -2 застигли на 0.0 (дані фінансування не було введено), тому торговий шлях виконання перевірявся лише в пісочниці (яка здійснила 65 угод на реальних даних фінансування). Не є критичним.
Огляд бектесту
Механізм спрацьовує без проблем і дає достатню вибірку (201 угод за 953 днів) без тайм-ауту — реалізація фінансування O(log n) працює як задумано
Огляд бектесту
Один інструмент, один додатковий потік (hl_funding_rates), проблем із даними/перевіркою немає; фінансування враховується в PnL
Огляд бектесту
Від’ємне математичне очікування: profit_factor 0.60, total_return -33.7%, математичне очікування -$156/угоду
Огляд бектесту
avg_trade_return_pct -0.37% — негативне значення, значно нижче за 0.15% комісійний поріг Hyperliquid (L22)
Огляд бектесту
Збитки в усіх трьох роках (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) — стійка відсутність переваги, а не її згасання
Огляд бектесту
Обидва напрями збиткові (частка прибуткових довгих угод 42%, коротких — 42%), причому avg_loss > avg_win — торгівля проти екстремумів фінансування опиняється з хибного боку руху
Огляд бектесту
Єдиний позитивний місяць — це один викидний день +10.77% (ексцес 9.8); базовий рух цін рівномірно негативний
Огляд бектесту
Спрямована контртрендова торгівля одним інструментом із фільтром за фінансуванням — класи повернення до середнього (0/174) та спрямованої торгівлі одним безстроковим контрактом із додатковим фільтром (L73), у яких не вижила жодна стратегія
Iteration History
Перевірка не пройдена (Layer 2 — синтетичні сценарії):
Використані параметри: ['exit_z', 'entry_z', 'atr_bars', 'risk_frac', 'min_prints', 'confirm_bars', '_param_bounds', 'atr_stop_mult', 'max_hold_bars', 'max_lag_seconds', 'max_notional_frac', 'funding_lookback_prints']
Перевірте, що __init__ встановлює всі атрибути з self.parameters.get().
- steady_uptrend: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але отримано 2 (часова мітка бару: 1735690500000)
- steady_downtrend: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але отримано 2 (часова мітка бару: 1735690500000)
- flat_ranging: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але отримано 2 (часова мітка бару: 1735690500000)
- volatility_spike: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але отримано 2 (часова мітка бару: 1735690500000)
- zero_volume: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але отримано 2 (часова мітка бару: 1735690500000)
- price_gap: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але отримано 2 (часова мітка бару: 1735690500000)
Stratmill — це інструмент для дослідження та паперової торгівлі, а не фінансова консультація чи брокер. Результати бектестів і паперової торгівлі є гіпотетичними. Торгівля пов'язана з ризиком втрати коштів.