Стратегії
Низьковолатильна захисна тижнева ротація восьми провідних криптовалютних безстрокових контрактів, лише LONG із трендовим фільтром (BINANCE USD-M, утримання 3 LOWEST провідних активів за реалізованою волатильністю, перехід у готівку нижче тренду, новий сигнал ранжування волатильності, параметр 3)
Результат: Відхилено
LowVolDefensiveWeeklyRotation8Majors
Підсумок результатів
Гіпотеза
Ітерація 2 виправляє саме помилку рівня -3 («угод не здійснено»). Причина: _extract_symbol_from_bar зчитував bar.instrument_id, якого немає в Bar у цій версії NautilusTrader; це викликало AttributeError, яку приховував загальний except. Тому _ingest_bar зберігав NO цін закриття для будь-якого символу; через порожні буфери цін не вдавалося обчислити реалізовану волатильність, кандидати не досягали top_k, а _maybe_rebalance достроково завершував роботу на кожному барі — угод не було. Мінімальне виправлення зчитує bar.bar_type.instrument_id.symbol (той самий шлях, який базовий шаблон використовує в on_bar на рядку 276); перевірено, що він повертає «BTCUSDT» тощо. Більше нічого не змінено: імпорти чисті, безперервний сигнал спреду спокійного ринку та вся логіка роботи з кількома інструментами й ребалансування залишилися без змін (раніше пройшли рівні 1–2); конфігурація визначає всі 8 інструменти на барах 1-DAY, тож пісочниця завантажує весь універсум. Це зберігає успіх усіх попередніх рівнів і дає змогу щотижневій ротації справді здійснювати угоди.
Реалізація
Лише довгі позиції: щотижнева захисна ротація активів із низькою волатильністю серед 8 основних безстрокових контрактів Binance USD-M (BTC/ETH/SOL/BNB/AVAX/LINK/ADA/XRP) на барах 1-DAY. Щотижня (rebalance_days=7) активи ранжуються за реалізованою волатильністю за попередній період (вибіркове стандартне відхилення денних логарифмічних доходностей за vol_lookback_days) ASCENDING, цільові активи — top_k=3 CALMEST. Далі застосовується трендовий фільтр для кожного активу: вибраний актив утримується, лише поки його ціна закриття вища за власну trend_ma_days SMA; інакше частка переводиться в готівку. Позиції в активах, що вибули з цільового кошика, закриваються, а нові відкриваються з рівними вагами по allocation_per_position капіталу на кожну позицію. Лише довгі позиції, кредитне плече=1, розмір позиції відносно капіталу через get_account_equity(). Три основні параметри (vol_lookback_days, top_k, trend_ma_days) та структурні налаштування.
Результати перевірки
Перевірку не пройдено (рівень 3 — бектест у пісочниці): угод не здійснено Використаний тип бару: BTCUSDT.BINANCE-1-DAY-LAST-EXTERNAL, оброблено барів: 364 Діагностика: should_enter() повертала сторону 0 разів за 0 оцінених барів -> ваш ENTRY CONDITION жодного разу не спрацьовував. Послабте логіку входу або пороги. Переконайтеся, що стратегія здійснює угоди з наданими даними та параметрами.
Аналітику: оцініть повний багаторічний бектест; не оптимізуйте, доки не буде встановлено знак переваги на довшому періоді.
Негативна, але мала вибірка з обмеженим режимом: PF 0.41, total_return -18.1%, win_rate 0.238, avg_trade_return_pct -2.97% лише за 21 угод протягом одного року. Показник RR сприятливий (avg_win 2486 = 1.3× avg_loss 1890); єдина причина низького результату — малий відсоток виграшних угод, а коефіцієнт Шарпа -1.16 CI [-2.77, +0.36] усе ще торкається позитивної зони. Аномалію низької волатильності слід оцінювати на довгому горизонті; річне вікно розпродажу альткоїнів не дає змоги зробити висновок.
Підтвердьте результат на значно більшій вибірці в повному багаторічному бектесті.
Мало угод (21 за 363 днів, нижче за поріг близько 100) — очікувано для щотижневої ротації з низьким оборотом (оборот 8.1), але негативний результат ґрунтується на малій кількості спостережень.
Розгляньте можливість успадкувати обробку додаткових барів із базового шаблону, а не реалізовувати диспетчеризацію повторно, щоб уникнути непомітного відхилення.
on_bar повністю перевизначено: вручну відтворено базову диспетчеризацію та використано внутрішні компоненти базового шаблону. Працює (пройдено рівні 1-3, угоди здійснювалися для всіх складових), але вразливо до майбутніх змін базового шаблону.
Огляд бектесту
- Шарп
- 1,00
- Загальна дохідність
- 1318,94%
- Максимальна просадка
- 35,21%
- Усього угод
- 138
- Частка прибуткових
- 44,2%
- Профіт-фактор
- 1,72
Статистично значуща перевага: коефіцієнт Шарпа 1.0 з 95% CI [0.42, 1.61] EXCLUDING нуль (probabilistic_sharpe 0.9995) — єдина стратегія в недавній серії, що перевищила цей поріг
profit_factor 1.72 (значно вище за поріг відсутності переваги 1.2), коефіцієнт Сортіно 1.43, математичне сподівання +$8.3 тис. на угоду
Результати в різних режимах: позитивні у 5 з 7 років (2020/2021/2023/2024/2025), спадні роки помірні (-24%, -19%); max_drawdown 35% нижче за поріг остаточної відмови, ліквідацій немає, кредитне плече 1x
Комісії низькі, як і задумано: avg_trade_return_pct ~11% за щотижневої ротації з низьким оборотом; impact_cost_pct — лише 1.3% валового показника, місткість $613 млн
Спирається на реальну задокументовану аномалію низької волатильності та захисних активів; сигнал ортогональний до застосовуваного кошика моментуму
Викид / концентрація на бичачому ринку: return_skew 2.59, ексцес 38, значну частку забезпечує 2020/2021 — оптимізація має підтвердити, що перевага зберігається у вікнах OOS без бичачого ринку
information_ratio -0.24 порівняно з еталоном кошика з рівними вагами та benchmark_correlation 0.58 / бета 0.27 — альфа окремо становить +0.20, але перевага диверсифікації над простим утриманням кошика незначна
end_unrealized_pct 180 (~14% від основного показника) — це переоцінка відкритих позицій за ринковою ціною; оцінюйте за реалізованою динамікою (вона все ще сильна)
Аналіз
Стратегія коректно виконується протягом усього періоду (349 угод після оптимізації / 138 базових) — попередню помилку з нульовою кількістю угод через символ бару виправлено.
Точкові показники у вибірці виглядають привабливо (PF 1.72, коефіцієнт Сортіно 1.43, позитивний коефіцієнт Шарпа на повній вибірці ~1.0) — саме тому важлива поправка на множинне тестування.
Аналіз чутливості не виявляє різких провалів; параметри окремо стабільні у вибірці.
Перенавчання за walk-forward: середній коефіцієнт Шарпа IS +1.47 падає до середнього OOS -0.742 (вікна -1.21, -1.46, +0.44). Перевага не узагальнюється.
Дефльований коефіцієнт Шарпа 0.0899 << 0.95, а оптимізований коефіцієнт Шарпа (1.006) становить BELOW expected_max_sharpe_annualized (1.44) — результат вибору неможливо відрізнити від шуму найкращого серед -225 спроб.
PBO 0.70 > 0.5 — вибір параметрів радше перенавчений, ніж ні; is_significant = false.
Коефіцієнт Шарпа на контрольній вибірці лише 0.178; win_rate 0.149 та max_drawdown 32.4% обидва не досягають порогів.
Дохідність сконцентрована в 2021 (річний показник 2021 +251%/+204%; 2022 -24%, 2026 -19%) — залежність від одного режиму бичачого ринку.
Відповідає неодноразово відхиленому класу невдалих стратегій: ротація основних активів із низькою волатильністю (схожість 0.81 «перенавчена», 0.80 «verification_loop»).
0.7x WF OOS
Підсумок результатів
Привабливий коефіцієнт Шарпа на повній вибірці нічого не означає, якщо результат сконцентрований на бичачому ринку й не проходить walk-forward. Механізм ротації основних активів із низькою волатильністю та ставки проти бета-ефекту вже неодноразово перенавчався з однаковими ознаками, тому повторно пробувати його на іншому наборі основних активів недоцільно.
Стратегічний аналітик відмовився від неї після оптимізації, оцінивши стійкість як недостатню: обраний коефіцієнт Шарпа (1.006) був нижчим за очікуваний на основі шуму максимум (1.44 за 225 спроб); OOS був від’ємним у кожному вікні walk-forward; PBO перевищував 0.5; а основну дохідність забезпечив бичачий ринок 2021 (2022 -24%, 2026 -19%) — типовий випадок перенавчання без надійної області параметрів для налаштування.
Щотижнева ротація лише в довгі позиції серед 8 основних безстрокових контрактів Binance USD-M, яка утримувала 3 основних активів із найнижчою реалізованою волатильністю (захисна аномалія низької волатильності) із трендовим фільтром для кожного активу; сигнал навмисно ортогональний до застосовуваного кошика моментуму.
Початковий бектест показав статистично значущу перевагу (коефіцієнт Шарпа ~1.0 з 95% CI [0.42, 1.61] без нуля, фактор прибутку 1.72, коефіцієнт Сортіно 1.43, загальна дохідність +1319% за 138 угод, середня дохідність на угоду ~11%, максимальна просадка 35%, кредитне плече 1x). Але після оптимізації коефіцієнт Шарпа walk-forward IS зі значенням +1.47 змінив знак, і середнє OOS становило -0.742; при цьому PBO 0.70, дефльований коефіцієнт Шарпа 0.0899, коефіцієнт Шарпа на контрольній вибірці лише 0.178, а відсоток виграшних угод — 0.149.
Stratmill — це інструмент для дослідження та паперової торгівлі, а не фінансова консультація чи брокер. Результати бектестів і паперової торгівлі є гіпотетичними. Торгівля пов'язана з ризиком втрати коштів.