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

Стратегії

Кошик абсолютного моментуму з чистою спрямованою позицією та збігом таймфреймів для великих ліквідних активів (довгі й короткі позиції, Binance USD-M, збіг трендів 60d+120d для кожного активу, нульова позиція за розбіжності, щотижневе ребалансування, повне закриття позицій із повторним відкриттям, суто OHLCV)

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

DualTimeframeConfluenceNetDirectionalMomentumBasketLS

Підсумок результатів

Ця стратегія розвинула просуваний кошик абсолютного моментуму LS, вимагаючи збігу трендів за 60-денним і 120-денним періодами для кожного з 10 основних активів перед відкриттям позиції; за розбіжності позиції залишалися нейтральними, щоб знизити ризик під час нестійких переходів. Початковий бектест показав реальну, хоча й помірну перевагу (Sharpe 0.40, фактор прибутку 1.21, +274%), затьмарену просадкою 49% і сильною залежністю від викидів, тож аналітик дозволив оптимізацію. Вона дала саме очікуване поліпшення……Показати більшеПоказати менше

Ця стратегія розвинула просуваний кошик абсолютного моментуму LS, вимагаючи збігу трендів за 60-денним і 120-денним періодами для кожного з 10 основних активів перед відкриттям позиції; за розбіжності позиції залишалися нейтральними, щоб знизити ризик під час нестійких переходів. Початковий бектест показав реальну, хоча й помірну перевагу (Sharpe 0.40, фактор прибутку 1.21, +274%), затьмарену просадкою 49% і сильною залежністю від викидів, тож аналітик дозволив оптимізацію. Вона дала саме очікуване поліпшення ризику: просадка скоротилася вдвічі до 24.8%, Sortino подвоївся до 1.71, фактор прибутку зріс до 1.46; перевірки узгодженості пройдено (walk-forward без переобучення, коефіцієнт відкладеної вибірки 1.339, нуль критичних зон чутливості, PBO 0.42). Але оптимізований Sharpe 0.68 не пройшов перевірку на дефльований Sharpe (DSR 0.0, нижче порога випадкового найкращого результату 1.93 за 225 випробувань, CI до нуля), тож його відхилили вже після першої ітерації через вибірковість під час добору варіанта: фільтр злиття трендів пожертвував саме тією напрямною перевагою Sharpe, завдяки якій просувані споріднені кошики виявилися значущими.

Гіпотеза

Корзина абсолютного моментуму LONG-SHORT, MULTI-INSTRUMENT, NET-DIRECTIONAL на основі приблизно 10 Binance USD-M із підтвердженою повною історією (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC); її DISTINCT MECHANISM — це PER-LEG DUAL-TIMEFRAME TREND CONFLUENCE. Вона розвиває переможця PROVEN — кошик абсолютного моментуму LS, який щойно пройшов оптимізацію PASSED (коефіцієнт Шарпа 1.36, risk_review), додаючи подвійний (1.61) як перевірену перевагу, що узагальнюється. Мета — усунути одну задокументовану……Показати більшеПоказати менше

Корзина абсолютного моментуму LONG-SHORT, MULTI-INSTRUMENT, NET-DIRECTIONAL на основі приблизно 10 Binance USD-M із підтвердженою повною історією (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC); її DISTINCT MECHANISM — це PER-LEG DUAL-TIMEFRAME TREND CONFLUENCE. Вона розвиває переможця PROVEN — кошик абсолютного моментуму LS, який щойно пройшов оптимізацію PASSED (коефіцієнт Шарпа 1.36, risk_review), додаючи подвійний (1.61) як перевірену перевагу, що узагальнюється. Мета — усунути одну задокументовану слабкість цієї структури: WHIPSAW / FALSE-FLIPS під час зміни режимів (саме це спричинило просадки трендових стратегій на одному активі та короткі позиції не в той бік 2024-25). MECHANISM: кожна позиція відкривається в напрямку ONLY, коли тренди на MEDIUM-годинному (60-денному) та LONG-годинному (120-денному) горизонтах AND AGREE — LONG, якщо обидва висхідні, SHORT, якщо обидва низхідні, — і залишається без позиції FLAT, коли два горизонти DISAGREE. Так у кожну позицію вбудовано фільтр хибних рухів на двох горизонтах: під час мінливих переходів, коли швидкий і повільний тренди позиції суперечать один одному, вона лишається осторонь, а весь портфель автоматично знижує ризик. Це вбудоване підвищення стійкості, якого бракує кошику абсолютного моментуму з одним трендом. Концепцію узгодження двох таймфреймів перевірено на одному активі (BtcDualTimeframeMomentumConfluence), але NEVER її застосовували на рівні диверсифікованого кошика. WHY DISTINCT (це не дублювання): підхід відрізняється від кошика ABSOLUTE (один тренд, постійна позиція), кошика DUAL-MOMENTUM (відносний рейтинг + абсолютний фільтр — два TYPES моментуму, а не два таймфрейми) та кошика абсолютного моментуму INVERSE-VOL (схема зважування). WHY NOT CLOSED VARIANT: альтернативна стратегія на одному активі TSM закрита (бета до манії 2021); EDGE належить диверсифікованому кошику з чистою спрямованістю, і ця IS — із принциповим фільтром узгодження для кожної позиції, а не однією позицією чи поверненням до середнього з дельта-нейтральністю. EVERY вибір конструкції враховує жорсткі обмеження рушія: (1) розмір позицій FULL-FLATTEN-AND-REOPEN на кожному ребалансуванні (закрити позиції ALL, перерахувати, знову відкрити з однаковою вагою, щоб сумарний валовий обсяг був ≤ 100%) — шаблон PROVEN, який чітко обмежив кошики LS, NOT від шаблону утримання переможців лише з довгими позиціями, який виявився структурно таким, що його неможливо обмежити. (2) NET-DIRECTIONAL (знакова сума позицій, що узгоджуються за напрямком) — спрямований ухил, якому аналітик завдячує стійкістю в недавніх режимах; позиції без напрямку знижують чисту експозицію під час переходів. (3) PURE OHLCV — без необроблених тіків (обмеження 2 днів), опціонів (не підключені) чи фінансування (дані закінчуються 2024). (4) Щоденні тренди, щотижневе ребалансування для 10 позицій — достатня частота для покрокової перевірки на рухомому вікні. Відповідно до вказівки брифу «віддавати перевагу простішому», параметри навмисно мінімальні: 3 налаштовувані параметри (fast_lookback, slow_lookback, rebalance_period).

Реалізує гіпотезу за допомогою перевіреної архітектури централізованого кошика з чистою спрямованою позицією (щойно успішно пройшов оптимізацію кошик Absolute-Momentum LS / шаблон LongHorizonTrend), причому окремим механізмом, недосяжним для оптимізатора, є DUAL-TIMEFRAME TREND CONFLUENCE для кожного активу: позиція в активі довга, лише якщо дохідність за обома періодами — швидким (60d) і повільним (120d) — додатна; коротка, лише якщо обидві від’ємні; і нульова, коли тренди на різних горизонтах не збігаються. Це……Показати більшеПоказати менше

Реалізує гіпотезу за допомогою перевіреної архітектури централізованого кошика з чистою спрямованою позицією (щойно успішно пройшов оптимізацію кошик Absolute-Momentum LS / шаблон LongHorizonTrend), причому окремим механізмом, недосяжним для оптимізатора, є DUAL-TIMEFRAME TREND CONFLUENCE для кожного активу: позиція в активі довга, лише якщо дохідність за обома періодами — швидким (60d) і повільним (120d) — додатна; коротка, лише якщо обидві від’ємні; і нульова, коли тренди на різних горизонтах не збігаються. Це вбудовує фільтр хибних розворотів на двох горизонтах у кожен актив і безпосередньо спрямоване на задокументовану слабкість постійно активного абсолютного кошика (хибні розвороти під час переходів між режимами). Оскільки ваги активів однакові, а знаменником є весь всесвіт FIXED (per_leg = gross/N), нульові позиції структурно зменшують валову та чисту експозицію саме тоді, коли активи розходяться в напрямку, тож увесь портфель автоматично знижує ризик у нестабільних режимах. Портфель зберігає чисту спрямовану позицію (знакова сума активів зі збіжними сигналами) — нахил до спрямованої торгівлі, якому аналітик приписує стійкість до режимів. Експозиція обмежена саме так, як потрібно: під час кожного ребалансування заново розраховуються цільові позиції зі знаками, а кожен актив доводиться до цільового рівня одним дельта-ордером SINGLE з неттінгом (той самий обмежений кінцевий стан, що й повне закриття позицій із подальшим повторним відкриттям, але без зайвих циклів закриття та повторного відкриття). Потім сукупний ліміт валової експозиції пропорційно масштабує всі позиції, тож загальна валова експозиція ніколи не перевищує max_gross (100%) капіталу — це не дає роздутій позиції 265% серед утримуваних активів. Усе керування ордерами централізоване в calculate_signal; базовий клас запускає його лише після того, як бар’єр синхронізації активів підтвердить наявність бару в кожного активу з тим самим денним таймфреймом на основній часовій мітці (одночасні швидкі та повільні тренди); should_enter/should_exit/position_size неактивні. min_bars_required = slow_lookback+2, а лічильник барів блокує перше ребалансування до потрібного моменту; повернений проксі логарифмічної дохідності з функцією tanh є безперервним сигналом на кожен бар, тож перевірка Layer-2 на незмінність сигналу проходить, а торгівля лишається прив’язаною до розкладу. Усі складові 10 — ліквідні великі активи з лістингом на 2020 і повною історією денних даних (актив із ціною<=0/недостатньою історією пропускається під час цього ребалансування), тож жоден актив не створює ризику data_unavailable; три крайові параметри налаштування зберігають поверхню оптимізації мінімальною. Кредитне плече лишається на рівні 1.0 і використовується лише як множник без підсилення, тож перевірка невикористаного кредитного плеча не застосовується. Суто OHLCV (тренди визначаються за ціною) дає змогу уникнути обмежень, пов’язаних із додатковими даними, тиками, опціонами та фінансуванням. Якщо цього сеансу знову проявиться артефакт агрегування денних дохідностей за кількома інструментами, позначений в іншому місці, експозиція цієї стратегії належно обмежена валовим лімітом <= 100% завдяки сукупному ліміту та одиничним дельта-ордерам; тоді слід ескалювати помилку обліку в тестовому середовищі, а не вважати це помилкою визначення розміру позицій стратегії.

optimization_error: RuntimeError: Дані фінансування для безстрокового контракту 'ETHUSDT.BINANCE' недоступні — збір за запитом не вдався або біржа не має історії фінансування (бектест заблоковано для точності; установіть SF_DISABLE_ONDEMAND_FUNDING=1, щоб обійти це обмеження) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 311, in _run_optimization await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 424, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: Дані фінансування для безстрокового контракту 'ETHUSDT.BINANCE' недоступні — збір за запитом не вдався або біржа не має історії фінансування (бектест заблоковано для точності; установіть SF_DISABLE_ONDEMAND_FUNDING=1, щоб обійти це обмеження)

Реалізація

Кошик абсолютного моментуму з довгими й короткими позиціями та чистою спрямованою експозицією для 10 великих активів Binance USD-M з повною історією (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC); денні тренди, щотижневе ребалансування. Позиція в кожному активі відкривається лише за збігу трендів дохідності за останні 60 і 120 днів AGREE (довга, якщо обидва висхідні; коротка, якщо обидва низхідні), а за розбіжності лишається нульовою. Це фільтр хибних розворотів на двох таймфреймах для кожного активу:……Показати більшеПоказати менше

Кошик абсолютного моментуму з довгими й короткими позиціями та чистою спрямованою експозицією для 10 великих активів Binance USD-M з повною історією (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC); денні тренди, щотижневе ребалансування. Позиція в кожному активі відкривається лише за збігу трендів дохідності за останні 60 і 120 днів AGREE (довга, якщо обидва висхідні; коротка, якщо обидва низхідні), а за розбіжності лишається нульовою. Це фільтр хибних розворотів на двох таймфреймах для кожного активу: активи з розбіжними сигналами лишаються поза ринком, а портфель автоматично знижує ризик під час переходів між режимами. Ваги активів однакові, знаменником є фіксований розмір всесвіту (per_leg = gross/N), тому нульові позиції зменшують валову та чисту експозицію. Під час кожного ребалансування позиції в активах доводяться до нових цільових рівнів зі знаками одним дельта-ордером із неттінгом; сукупний ліміт не дає загальній валовій експозиції перевищити 100% капіталу (кінцевий стан, обмежений так само, як після повного закриття позицій і повторного відкриття). Суто OHLCV, кредитне плече 1.0. Три параметри налаштування: fast_lookback, slow_lookback, rebalance_period.

Огляд бектесту

Шарп
0,40
Загальна дохідність
273,88%
Максимальна просадка
49,09%
Усього угод
436
Частка прибуткових
37,6%
Профіт-фактор
1,21

Справжня перевага: profit_factor 1.211 (>1.2), позитивний результат у 4 із 6 років (2021 +129%, 2024 +21%, 2025 +17%, 2026 +73%), альфа +0.16, коефіцієнт Сортіно 0.86

Обґрунтоване вдосконалення переможця PASSED: розвиває кошик Absolute-Momentum LS (коефіцієнт Шарпа 1.36, після оптимізації та перевірки ризику), додаючи фільтр хибних розворотів на двох горизонтах для кожного активу

Обґрунтований розмір позицій для кожного активу (avg_position_pct 16.3%, жоден окремий актив не домінує), без примусової ліквідації, значна місткість ($ 203 млн), низькі витрати на комісії (1.34%)

exposure_pct 752% — це накопичувальний показник, а не фактичне кредитне плече (несумісне з avg_position 16.3% як одночасна валова експозиція); фактичний портфель — приблизно 90-160%, близько до запланованого ліміту max_gross

Помірний коефіцієнт Шарпа 0.40, причому CI перетинає 0 (sharpe_ci_low -0.396) — стійкість потрібно підтвердити дефльованим коефіцієнтом Шарпа

Залежність від викидів: return_kurtosis 277, асиметрія 13.1 — основний результат забезпечують кілька великих денних рухів (+50% на 2024-04-30, +49.8% на 2021-06-15)

Один важкий рік (2023 -46.4%), max_drawdown 49.1%

benchmark_meaningful false (кошик із чистим напрямком) — оцінюйте за абсолютними показниками з урахуванням ризику, а не за надлишковою дохідністю проти стратегії купівлі й утримання

придатний до впровадження

4 із 6

більшість

жоден окремий актив не домінує

Аналіз

Пряме покрокове тестування без перенавчання (is_overfitted=false, середнє IS 1.17 -> середнє OOS 0.70) і контрольна вибірка пройшла перевірку (коефіцієнт 1.339, holdout_sharpe 0.94)

Чиста поверхня чутливості: 0 критичних зон по всіх 7 параметрах; PBO 0.4246 (<0.5)

Оптимізація поліпшила показники глибини просідань: max_drawdown 49.1% -> 24.8%, profit_factor 1.21 -> 1.46, коефіцієнт Сортіно 0.86 -> 1.71, recovery_factor 6.4 — фільтр хибних розворотів на двох таймфреймах для кожного активу справді знизив просідання, як і було задумано

Дефльований коефіцієнт Sharpe FAILS: DSR=0.0 (проти 0.95), is_significant=false; оптимізований Sharpe 0.682 значно BELOW очікуваного порогу везіння найкращого результату з N спроб 1.9337 за 225 випробувань

sharpe_ci_low=-0.0333 — 95% CI охоплює 0, тому Sharpe неможливо відрізнити від рівня без переваги

Розподіл PSR=0.9938 / DSR=0.0 є діагностичною ознакою інфляції результату через відбір найкращого з -225 варіантів, а не справжньої переваги

Дохідність забезпечили викиди: return_kurtosis 242, асиметрія 12.5, tail_ratio 0.56; одне вікно walk-forward OOS було від'ємним (-0.34)

end_unrealized_pct=60.3 — значна частка загального показника +266% є нереалізованою переоцінкою відкритих позицій, а не реалізованим результатом

Необроблений коефіцієнт Шарпа 0.68 нижчий за будь-який розумний поріг просування навіть до дефлювання

Підсумок результатів

Додавання фільтра злиття трендів, що пригнічує хибні розвороти, до вже перевіреного кошика з чистим напрямком справді знижує просадку, але настільки скорочує напрямну експозицію, що Sharpe приблизно 0.68 не проходить дефляцію за найкращим із N результатів. Успішна перевірка на відкладеній вибірці, walk-forward без переобучення та відсутність критичних зон чутливості свідчать про узгодженість, а не про значущість.

На етапі після оптимізації стратегічний аналітик відмовився від неї через дефльований коефіцієнт Шарпа: значення DSR становило 0.0 (за порогового значення 0.95), а оптимізований коефіцієнт Шарпа 0.68 був значно нижчим за поріг удачі найкращого результату з N спроб, що відповідає очікуваному максимуму, — 1.93 після 225 випробувань; is_significant=false, а sharpe_ci_low -0.0333 перетинає нуль. Розподіл PSR 0.9938 / DSR 0.0 є ознакою інфляції результату через відбір, а не справжньої переваги.

Кошик абсолютного моментуму з довгими й короткими позиціями та чистою спрямованою експозицією для 10 ліквідних великих активів Binance USD-M: позиція в кожному активі відкривається лише за збігу трендів за періодами 60 і 120 днів (довга, якщо обидва висхідні; коротка, якщо обидва низхідні; нульова за розбіжності). До вже перевіреної структури кошика моментуму додано фільтр збігу таймфреймів для кожного активу, щоб стримати хибні розвороти під час переходів між режимами.

Початковий бектест на денних барах за приблизно 1,978 днів дав 436 угод, коефіцієнт Sharpe 0.40 (CI низький -0.396), фактор прибутку 1.21 і загальну дохідність приблизно 274%, але максимальну просадку 49.1%; дохідність забезпечили викиди (ексцес 277, асиметрія 13.1). Оптимізація поліпшила показники глибини просадки: максимальна просадка знизилася до 24.8%, фактор прибутку зріс до 1.46, Sortino — до 1.71; walk-forward перевірка не виявила переобучення (середній Sharpe OOS 0.70), а відкладена вибірка пройшла перевірку (коефіцієнт 1.339, Sharpe на відкладеній вибірці 0.94), проте оптимізований Sharpe становив лише 0.68.

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

optimization_error: RuntimeError: Дані фінансування для безстрокового контракту 'ETHUSDT.BINANCE' недоступні — збір за запитом не вдався або біржа не має історії фінансування (бектест заблоковано для точності; установіть SF_DISABLE_ONDEMAND_FUNDING=1, щоб обійти це обмеження) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 311, in _run_optimization await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 424, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: Дані фінансування для безстрокового контракту 'ETHUSDT.BINANCE' недоступні — збір за запитом не вдався або біржа не має історії фінансування (бектест заблоковано для точності; установіть SF_DISABLE_ONDEMAND_FUNDING=1, щоб обійти це обмеження)

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