Zum Inhalt springen
Alle Strategien

Strategien

Hyperliquid SOL Perp Funding-Extrem-Contrarian — Long-Short, Einzelwert: FADE überfüllte Positionierung, wenn der rollierende Funding-Z-Score einen Extremwert erreicht (sehr positives Funding = überhebelte Longs → SHORT; sehr negatives = kapitulierte Shorts → LONG), bestätigt durch Nicht-Bestätigung des Preises, Ausstieg bei Funding-Reversion / ATR-Stop / Zeit-Stop (SOLUSDT.HYPERLIQUID, 4H, 3-Parameter)

Ergebnis: Verworfen

HyperliquidSolFundingExtremeContrarian

Der Mechanismus feuert sauber und erzeugt eine ausreichende Stichprobe (201 Trades über 953 Tage) ohne Timeout — die O(log n)-Funding-Implementierung funktioniert wie beabsichtigt

Hypothese

Eine LONG-SHORT, einzelinstrument, POSITIONING-getriebene Contrarian-Strategie auf dem Hyperliquid-SOL-Perpetual, aufgebaut um ein NON-OHLCV mechanisches Signal — perpetual FUNDING — nutzte den OPPOSITE-Weg zur toten Cash-and-Carry-Familie der Fabrik. Dies ist NOT ein delta-neutraler Carry (der starb, weil das Funding-P&L im Vergleich zum Basis-Rauschen zu klein war) und NOT Preis-Momentum (die HL-Momentum-Körbe sind 0/84). Stattdessen wird Funding als Crowding-/Positionierungsmesser verwendet, um einen……Mehr anzeigenWeniger anzeigen

Eine LONG-SHORT, einzelinstrument, POSITIONING-getriebene Contrarian-Strategie auf dem Hyperliquid-SOL-Perpetual, aufgebaut um ein NON-OHLCV mechanisches Signal — perpetual FUNDING — nutzte den OPPOSITE-Weg zur toten Cash-and-Carry-Familie der Fabrik. Dies ist NOT ein delta-neutraler Carry (der starb, weil das Funding-P&L im Vergleich zum Basis-Rauschen zu klein war) und NOT Preis-Momentum (die HL-Momentum-Körbe sind 0/84). Stattdessen wird Funding als Crowding-/Positionierungsmesser verwendet, um einen DIRECTIONAL-Fade zu timen: das gut dokumentierte Ergebnis, dass Longs überhebelt sind und fürs Halten zahlen, wenn das Perp-Funding extrem positiv ist — ein Zustand, der historisch LOWER vorwärtsgerichteten Perp-Renditen vorausgeht (Squeeze-/Washout-Risiko), und symmetrisch markiert extrem negatives Funding kapitulierte Shorts, die Erholungen vorausgehen. Gewählt, um drei unterrepräsentierte Kategorien gleichzeitig zu füllen: HYPERLIQUID (6.8% vs. 20%-Ziel), long_short (14.2%), und ein datensicherer Nicht-OHLCV-Edge, der nicht im OHLCV-Overfitting-Friedhof liegt. Bewusst einzelwertig und 3-parametrig gehalten, um es implementierbar zu halten (die Multi-Instrument-HL-Körbe starben an Coding-Timeouts) und um Overfitting zu widerstehen. IMPLEMENTATION NOTE: die Funding-Baseline als rollierendes Deque pflegen, das inkrementell aktualisiert wird (O(1) pro Update) — NEVER die vollständige Funding-Serie innerhalb von on_bar neu scannen (dieses Muster verursachte die wiederholten 300-Sandbox-Timeouts).

Iteration 2 behebt den einzelnen Layer-2-Fehler (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, alle sechs Szenarien). Der Layer-2-`_StrategyProxy` bindet jedes aufrufbare Attribut der Strategie über `types.MethodType` an einen einfachen Wrapper, was die Einargument-`_bar_ts`-Staticmethod der Basisklasse in eine gebundene Methode umwandelt — sodass `self._bar_ts(bar)` mit zwei Argumenten ankommt. Der minimale Fix ersetzt diesen einen Aufruf durch einen……Mehr anzeigenWeniger anzeigen

Iteration 2 behebt den einzelnen Layer-2-Fehler (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, alle sechs Szenarien). Der Layer-2-`_StrategyProxy` bindet jedes aufrufbare Attribut der Strategie über `types.MethodType` an einen einfachen Wrapper, was die Einargument-`_bar_ts`-Staticmethod der Basisklasse in eine gebundene Methode umwandelt — sodass `self._bar_ts(bar)` mit zwei Argumenten ankommt. Der minimale Fix ersetzt diesen einen Aufruf durch einen Modul-Level-`_bar_timestamp_ns(bar)`-Helfer, der `bar.ts_event` (mit Fallback auf `ts_init`) direkt ausliest — verhaltensidentisch, immun gegen das Rebinding des Proxys. Nichts sonst hat sich geändert: Imports, Klassenstruktur, Funding-Parsing, Signallogik, Ein- und Ausstiege sowie Sizing sind byteidentisch zu previous_code, das Layer 1 bestanden hat, sodass keine frühere Prüfung regressieren kann. Hinweis: `_bar_interval_ns` wird weiterhin von `__init__` aufgerufen, das auf der echten Instanz läuft, bevor der Proxy irgendetwas rebindet, ist also unbetroffen. Leverage 2.0 wird in `position_size` über `self.config.leverage` in der Gross-Notional-Obergrenze verwendet.

Negativer-Erwartungswert Einzelwert-Funding-Extrem-Contrarian-Fade — kein Edge, das optimiert werden könnte. PF 0.60, total_return -33.7%, Sharpe -0.42, Erwartungswert -$156/Trade, und avg_trade_return_pct -0.37% (negativ, unterhalb der 0.15% Hyperliquid-Gebührenuntergrenze, L22). Verlustbringend in jedem Jahr (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) mit sowohl der Long- als auch der Short-Seite unter -43% Trefferquote und avg_loss > avg_win — der Contrarian-Fade befindet sich systematisch auf der falschen Seite……Mehr anzeigenWeniger anzeigen

Negativer-Erwartungswert Einzelwert-Funding-Extrem-Contrarian-Fade — kein Edge, das optimiert werden könnte. PF 0.60, total_return -33.7%, Sharpe -0.42, Erwartungswert -$156/Trade, und avg_trade_return_pct -0.37% (negativ, unterhalb der 0.15% Hyperliquid-Gebührenuntergrenze, L22). Verlustbringend in jedem Jahr (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) mit sowohl der Long- als auch der Short-Seite unter -43% Trefferquote und avg_loss > avg_win — der Contrarian-Fade befindet sich systematisch auf der falschen Seite der Bewegung, und der einzige positive Monat ist ein einzelner +10.77%-Ausreißertag (Kurtosis 9.8). Der Mechanismus ist gut implementiert (kein Timeout, Funding wird gutgeschrieben), fällt aber in zwei Familien ohne Überlebende: Einzelwert-Mean-Reversion/Fade (L55) und Single-Perp-supplementär(Funding)-gesteuert direktional (L73). Das Preis-Nicht-Bestätigungs-Gate hat keinen echten Edge hinzugefügt. Das Vorzeichen des Erwartungswerts pro Trade ist negativ, was kein Parameter-Tuning umkehren kann. Nicht wert, 2 Stunden Optimierung zu investieren. Fehlermuster: fee_edge/no_edge Single-Perp-Funding-gesteuerter Contrarian-Fade.

Umsetzung

Long-Short-Einzelwert-Contrarian auf dem Hyperliquid-SOL-Perp (4H-Bars). Funding wird als Crowding-Messer verwendet: Ein rollierender Z-Score des hl_funding_rates-Prints gegenüber seiner eigenen rollierenden Verteilung wird jede Bar als kontinuierliches Signal zurückgegeben. Extrem positives Z (überfüllte, überzahlende Longs) wird mit einem SHORT gefadet; extrem negatives Z (kapitulierte Shorts) wird mit einem LONG gefadet, aber nur, wenn der Preis die Crowd nicht bestätigt (Schlusskurs erreicht kein frisches confirm_bars-Bar-Hoch/-Tief). Ausstieg bei Funding-Reversion (|z| <= exit_z), einem bei Einstieg festgehaltenen ATR-Stop, oder einem Kalender-Zeit-Stop gemessen ab position.ts_opened. Sizing ist risikofokussiert: Der ATR-Stop kostet ~risk_frac des Eigenkapitals, mit einer unabhängigen Gross-Notional-Obergrenze.

Verifizierungsergebnisse

CLEAN RESTART 2026-09-04 — der Verlaufsverlauf der Urteile und die Lernaufzeichnungen dieses Laufs wurden entfernt, und er wurde ab der Verifikation neu gestartet. Sein vorheriger Abbruch kam von der Pipeline, nicht vom Markt: Der Layer-2-Harness band @staticmethod-Hilfsfunktionen falsch (behoben), QA gab terminale Performance-Urteile auf einem nicht optimierten Smoke-Test ab (entfernt — QA beurteilt jetzt nur noch die Korrektheit), und Sandbox-Timeouts entstanden durch Backtest-Slot-Aushungerung (behoben). Die Hypothese und der Strategiecode sind unverändert. Verifiziere den Code nach seinen Verdiensten; über die Performance wird später durch den vollständigen Backtest und den Optimizer entschieden.

_param_bounds auf die 3 Haupt-Tunables (entry_z, exit_z, funding_lookback_prints) beschränken; die Risiko-/Plumbing-Parameter als Konstanten festlegen.

Die Hypothese verkauft ein Design mit '3 Parametern, bewusst gering gehalten, um Overfitting zu widerstehen', aber _param_bounds legt 11 optimierbare Parameter offen. Der Mechanismus ist korrekt, aber eine 11-dimensionale Walk-Forward-Suche widerspricht der angegebenen Anti-Overfitting-Begründung und erhöht das PBO-Risiko. Nicht blockierend.

Keine erforderlich; für den Analysten vermerkt.

Layer-2-synthetische Signale sind alle bei 0.0 eingefroren (kein Funding injiziert), sodass der Trading-Pfad nur von der Sandbox ausgeübt wurde (die 65 Mal mit echtem Funding gehandelt hat). Nicht fatal.

Backtest-Prüfung

Sharpe
-0,42
Gesamtrendite
-33,71%
Max. Drawdown
40,24%
Trades gesamt
201
Trefferquote
42,3%
Profit-Faktor
0,60

Der Mechanismus feuert sauber und erzeugt eine ausreichende Stichprobe (201 Trades über 953 Tage) ohne Timeout — die O(log n)-Funding-Implementierung funktioniert wie beabsichtigt

Einzelinstrument, einzelner supplementärer Feed (hl_funding_rates), keine Daten-/Verifikationspathologie; Funding wird im PnL gutgeschrieben

Negativer Erwartungswert: profit_factor 0.60, total_return -33.7%, Erwartungswert -$156/Trade

avg_trade_return_pct -0.37% — negativ und weit unter der 0.15% Hyperliquid-Gebührenuntergrenze (L22)

Verlustbringend in allen drei Jahren (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) — ein anhaltendes Fehlen eines Edge, kein abgeklungenes

Beide Seiten verlieren (Long-Trefferquote 42%, Short-Trefferquote 42%) mit avg_loss > avg_win — der Funding-Extrem-Fade befindet sich auf der falschen Seite der Bewegung

Der einzige positive Monat ist ein einzelner +10.77%-Ausreißertag (Kurtosis 9.8); der zugrunde liegende Verlauf ist durchgehend negativ

Einzelwert-Funding-gesteuerter direktionaler Fade — Mean-Reversion (0/174) und Single-Perp-supplementär-gesteuert direktionale (L73) Klassen ohne Überlebende

Iterationsverlauf

Verifikation fehlgeschlagen (Layer 2 — synthetische Szenarien): Verwendete Parameter: ['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'] Prüfen, dass __init__ alle Attribute aus self.parameters.get() setzt. - steady_uptrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000) - steady_downtrend: TypeError:……Mehr anzeigenWeniger anzeigen

Verifikation fehlgeschlagen (Layer 2 — synthetische Szenarien): Verwendete Parameter: ['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'] Prüfen, dass __init__ alle Attribute aus self.parameters.get() setzt. - steady_uptrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000) - zero_volume: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000) - price_gap: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000)

Stratmill ist ein Tool für Research und Paper-Trading, keine Finanzberatung und kein Broker. Backtest- und Paper-Trading-Ergebnisse sind hypothetisch. Der Handel ist mit Verlustrisiken verbunden.