Strategie
Rotacja względnego momentum ETH względem BTC, neutralna dolarowo strategia long-short (dwa instrumenty ETHUSDT.BINANCE + kontrakty perpetual BTCUSDT.BINANCE, świece dzienne — długa pozycja na silniejszym / krótka na słabszym na podstawie ETH/BTC wskaźnika MOMENTUM, z filtrem strefy martwej, czyste OHLCV, 2-parametrowa)
Wynik: Porzucona
EthBtcRelativeMomentumRotationLS
Wiernie realizuje hipotezę: neutralna dolarowo rotacja momentum relacji ETH/BTC, neutralna względem rynku (benchmark_meaningful=false, więc strategia kup i trzymaj słusznie nie jest punktem odniesienia)
Hipoteza
Ujemna wartość oczekiwana w wiarygodnej próbie 582 transakcji / 6.7 lat: profit_factor 0.9999 (wynik brutto płaski, brak przewagi netto), avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor ujemne. Wartość nagłówkowa +7.83% total_return jest w całości niezrealizowana (end_unrealized_pct 7.91) — to pozycja na koniec okresu, która nie została zamknięta, a nie zrealizowana przewaga. Sharpe 0.26 z CI [-0.48, 1.01] obejmuje zero, max_drawdown 56.6%, a impact_cost_pct 101% (pojemność około $98k) oznacza, że sam wpływ rynkowy pochłania całą przewagę. Momentum względnej siły ETH/BTC nie utrzymuje się wystarczająco długo, by po kosztach przynosić zysk w strategii neutralnej dolarowo — to stwierdzenie dotyczy wejścia, co IS hipotezę. Optymalizacja 2 parametrów (okres wsteczny, strefa martwa) nie może przekształcić wyniku płaskiego brutto/PF<1 w zyskowny. Nie warto poświęcać 2 godzin na optymalizację. abandon_class=negative_expectancy.
Implementacja
Wyniki weryfikacji
CLEAN RESTART 2026-09-04 — historia werdyktów i zapisy procesu uczenia z tego przebiegu zostały usunięte, a przebieg uruchomiono ponownie od etapu weryfikacji. Poprzednie porzucenie wynikało z potoku, a nie z rynku: uprząż Layer-2 nieprawidłowo wiązała metody pomocnicze @staticmethod (naprawiono), QA wydawał ostateczne werdykty dotyczące wyników na nieoptymalizowanym teście dymnym (usunięto — QA ocenia teraz wyłącznie poprawność), a przekroczenia limitu czasu w piaskownicy wynikały z braku dostępnych slotów backtestu (naprawiono). Hipoteza i kod strategii pozostają bez zmian. Oceń kod na podstawie jego zalet; wyniki zostaną ocenione później przez pełny backtest i optymalizator.
Przewaga bliska zeru lub ujemna w mierzalnej próbie obejmującej całą historię (550 transakcji, PF 0.965, -22.4%, avg_trade_return_pct +0.061% poniżej kosztów dwóch nóg) — para ETH/BTC o niskiej dyspersji, którą sama hipoteza wskazała jako słabszą niż SOL/ETH. Implementacja zgodna z założeniami, więc jest to ustalenie dotyczące przewagi dla analityka. Porzucić strategię na etapie przeglądu backtestu zgodnie z uprzednio zarejestrowanym warunkiem dewelopera (PF nie przekroczyło 1); nie optymalizować.
57.8% maksymalne obsunięcie (CI do 83%, czas trwania 1894 dni) w portfelu nominalnie neutralnym względem rynku: neutralność dolarowa występuje tylko przy wejściu, a ekspozycja brutto 70% powiększa stratę wynikającą z braku przewagi podczas utrzymujących się trendów relacji ETH/BTC między stopami 6%. To nie błąd zabezpieczenia — uzgadnianie równych wartości nominalnych jest prawidłowe — lecz profil ryzyka, który powinien zobaczyć Specjalista ds. Ryzyka.
Przegląd backtestu
- Sharpe
- 0,26
- Łączna stopa zwrotu
- 7,83%
- Maksymalne obsunięcie
- 56,58%
- Łączna liczba transakcji
- 582
- Trafność
- 45,9%
- Współczynnik zysku
- 1,00
Wiernie realizuje hipotezę: neutralna dolarowo rotacja momentum relacji ETH/BTC, neutralna względem rynku (benchmark_meaningful=false, więc strategia kup i trzymaj słusznie nie jest punktem odniesienia)
Wiarygodna, mierzalna próba: 582 rotacji pary na przestrzeni 6.7 lat, metrics_reliable=true, sprawny proces wejścia (291 pozycji długich / 291 krótkich, zero odrzuconych)
Rzeczywiście 2-parametryczna, niskoprzeuczeniowa powierzchnia
profit_factor 0.9999 — wynik brutto jest płaski, nie ma przewagi netto, którą optymalizacja mogłaby stroić
Ujemna wartość oczekiwana w wiarygodnej próbie: avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor ujemne
Wartość nagłówkowa +7.83% jest w całości niezrealizowana (end_unrealized_pct 7.91) — to pozycja na koniec okresu, która nie została zamknięta, a nie zrealizowana przewaga
max_drawdown 56.6% (CI do 80%); Sharpe 0.26 z CI [-0.48, 1.01] obejmuje zero — wynik nieodróżnialny od braku umiejętności
impact_cost_pct 101% przy capacity_usd ~$98k — sam wpływ rynkowy pochłania całą przewagę; strategia jest wykonalna wyłącznie w skali zabawkowej
Zwroty z tercyla regime_performance „normalnego” -56% przy 60% DD — brak strukturalnej przewagi względnej siły
Historia iteracji
Weryfikacja nie powiodła się (warstwa 2 — scenariusze syntetyczne): Użyte parametry: ['deadband', 'leg_frac', 'max_days', 'vol_window', 'mom_lookback', 'size_precision', 'stop_ratio_pct', 'min_notional_btc', 'min_notional_eth'] Sprawdź, czy __init__ ustawia wszystkie atrybuty za pomocą self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj must be an instance or subtype of type (znacznik czasu świecy: 1735689600000) - steady_downtrend: TypeError: super(type, obj): obj must be an instance or subtype of type (znacznik czasu świecy: 1735689600000) - flat_ranging: TypeError: super(type, obj): obj must be an instance or subtype of type (znacznik czasu świecy: 1735689600000) - volatility_spike: TypeError: super(type, obj): obj must be an instance or subtype of type (znacznik czasu świecy: 1735689600000) - zero_volume: TypeError: super(type, obj): obj must be an instance or subtype of type (znacznik czasu świecy: 1735689600000) - price_gap: TypeError: super(type, obj): obj must be an instance or subtype of type (znacznik czasu świecy: 1735689600000)
Stratmill to narzędzie do badań i handlu na papierze (paper trading), a nie doradztwo finansowe ani broker. Wyniki backtestów i paper tradingu mają charakter hipotetyczny. Handel wiąże się z ryzykiem straty.