Zum Inhalt springen
Alle Strategien

Strategien

ETH Deribit-Wochen-Put-Credit-Spread — Ernte der Volatilitätsrisikoprämie + des Abwärts-Skews (Optionen mit definiertem Risiko, Skew-gesteuert, 3-Parameter)

Ergebnis: Verworfen

EthDeribitWeeklyPutCreditSpreadSkewVrp

ETH Deribit-Wochen-Put-Credit-Spread — Ernte der Volatilitätsrisikoprämie + des Abwärts-Skews (Optionen mit definiertem Risiko, Skew-gesteuert, 3-Parameter)

Hypothese

Eine DEFINED-RISK, auf einen Handelsplatz beschränkte Optionsstrategie für wöchentliche Verfälle von DERIBIT ETH, die den dauerhaft überteuerten Abwärtsschutz der Krypto-Volatilitätsoberfläche verkauft. Einmal pro Wochenzyklus (nächster Verfall in ~5-7 DTE) und ONLY, wenn der Abwärtsschutz nachweislich teuer ist (Put mit 25-Delta, dessen IV gegenüber ATM IV um eine Skew-Marge von AND ATM IV über der zurückliegenden realisierten Volatilität höher liegt), eröffnet sie einen PUT CREDIT SPREAD: SELL einen Put mit……Mehr anzeigenWeniger anzeigen

Eine DEFINED-RISK, auf einen Handelsplatz beschränkte Optionsstrategie für wöchentliche Verfälle von DERIBIT ETH, die den dauerhaft überteuerten Abwärtsschutz der Krypto-Volatilitätsoberfläche verkauft. Einmal pro Wochenzyklus (nächster Verfall in ~5-7 DTE) und ONLY, wenn der Abwärtsschutz nachweislich teuer ist (Put mit 25-Delta, dessen IV gegenüber ATM IV um eine Skew-Marge von AND ATM IV über der zurückliegenden realisierten Volatilität höher liegt), eröffnet sie einen PUT CREDIT SPREAD: SELL einen Put mit etwa 25-Delta und BUY einen Put mit etwa 10-Delta und demselben Verfall. Der maximale Verlust ist auf (Ausübungspreisbreite − Nettogutschrift) begrenzt, sodass eine starke Marktbewegung das Konto nicht liquidieren kann – damit wird dem größten Risikoprüfungseinwand gegen Short-Volatilitätsstrategien direkt begegnet. Damit wird gezielt die größte Lücke im Portfolio der Factory geschlossen: Optionen machen 4.7% des Portfolios aus, gegenüber einer Quote von mindestens 15%, bei praktisch fehlender bisheriger Abdeckung. Die Strategie unterscheidet sich bewusst von einem einfachen Short-Strangle – anderer Basiswert (ETH), andere Struktur (Spread mit definiertem Risiko statt zwei ungedeckter Seiten) und anderes Signal (Put-SKEW-Attraktivität + VRP, nicht rohe IV/RV). Nur 3 abstimmbare Parameter, um Überanpassung zu vermeiden, an der 259 frühere Hypothesen gescheitert sind. NOT Funding-Carry (L33), NOT ein Momentum-/Trend-Konfluenz-Port (ausgereizt), NOT eine Preisumkehr-/Fade-Strategie – die P&L-Quelle ist eine strukturelle Versicherungsprämie plus die Krypto-Put-Skew-Prämie, keine Prognose der Kursrichtung.

Die Ebene-3 „Keine Trades erzeugt / 0 ausgewertete Balken“ hatte zwei konkrete Ursachen, und keine davon war die Einstiegsschwelle (das Feedback sagt richtigerweise, die Schwellen nicht zu lockern). Erstens ist die Zeile „0 ausgewertete Balken“ für diese Strategiegruppe ein Ablenkungsmanöver: RollingOptionsStrategy.on_bar setzt FactoryStrategy.on_bar vollständig außer Kraft und erreicht _process_primary nie. Daher ist bars_seen für jede Rolling-Optionsstrategie 0, auch für solche, die normal handeln – ich habe……Mehr anzeigenWeniger anzeigen

Die Ebene-3 „Keine Trades erzeugt / 0 ausgewertete Balken“ hatte zwei konkrete Ursachen, und keine davon war die Einstiegsschwelle (das Feedback sagt richtigerweise, die Schwellen nicht zu lockern). Erstens ist die Zeile „0 ausgewertete Balken“ für diese Strategiegruppe ein Ablenkungsmanöver: RollingOptionsStrategy.on_bar setzt FactoryStrategy.on_bar vollständig außer Kraft und erreicht _process_primary nie. Daher ist bars_seen für jede Rolling-Optionsstrategie 0, auch für solche, die normal handeln – ich habe dies durch Lesen von rolling_options_template.py und base_template.py bestätigt, statt einen Aufruf von super().on_bar() hinzuzufügen, der primäre Balken in die Cross-Leg-Ausrichtungssperre der Basisklasse geleitet hätte. Dort hätten die zeitweise fehlenden Optionsbeine (derselbe 1-DAY-Zeitrahmen wie beim Basiswert) die Verarbeitung dauerhaft blockiert. Zweitens die tatsächlichen Blocker: (a) ANNUALIZATION MISMATCH – die geerbten Einstellungen für die realisierte Volatilität waren auf Stundenbasis (rv_window=168, bars_per_year=8760), während der Lauf 1-DAY-Balken verwendet. Dadurch wurden tägliche logarithmische Renditen mit sqrt(8760) statt sqrt(365) annualisiert, wodurch RV um den Faktor 4.90x aufgebläht wurde (ein normales 3%/Tag-ETH-Band zeigt 281% statt 57%); die VRP-Bedingung iv >= rv*(1+margin) verglich dann ~60% IV mit ~281% RV und war in jedem Zyklus False. Behoben, indem bars_per_year aus dem konfigurierten Balkentyp abgeleitet und das RV-Fenster in Kalendertagen ausgedrückt wird, sodass diese Abweichung bei keinem Intervall wieder auftreten kann (bestätigt: 1-DAY -> 365, 1-HOUR -> 8760, 4-HOUR -> 2190, und die Bedingung ist bei einem normalen Band nun erfüllt). (b) ROLE MAPPING – die geerbte Gerüstlogik ordnete Beine nach Optionsart zu und verlangte einen Call plus einen Put (einen Strangle). Daher kollidierten die beiden P-Beine eines Put-Spreads unter demselben Schlüssel, das zweite wurde als Duplikat abgewiesen, die Bereitschaftsprüfung verlangte ein nicht vorhandenes Call-Bein, und jedes Bein wurde SELL eingereicht (zwei ungedeckte Short-Puts, kein Spread mit definiertem Risiko). Die Beine werden jetzt anhand des Ausübungspreises in Short- und Long-Bein aufgeteilt; der Short wird verkauft und der Long mit derselben zwischengespeicherten Kontraktzahl gekauft – atomar. Außerdem habe ich den geerbten Stopp anhand eines Aufschlagsmultiplikators entfernt: Der Long-Flügel begrenzt den Verlust bereits, sodass ein Stopp bei einer begrenzten Struktur lediglich einen begrenzten Verlust vorzeitig realisiert und Gebühren verursacht. Die Positionsgrößenberechnung wurde durchgängig geprüft (150 breiter Spread, $22 Gutschrift, $128 maximaler Verlust -> 15 Kontrakte = 1.9% des Eigenkapitals riskiert). Alles, was die Ebenen 1-2 bestanden hat, blieb erhalten: saubere Imports, die modulweite freie Funktion _bar_ts, die den TypeError durch erneute Bindung als statische Methode in Ebene -2 behebt, der DVOL-Parser, die Black-Scholes-IV-Inversion und das kontinuierliche calculate_signal. lookback_days ist 49 (7 Zyklen, 14 Optionsbeine), weil der Kataloglader pro Balkentyp ~10s je Bein benötigt und eine größere Kette die Laufzeitgrenze von Ebene -3 gefährdet; dadurch wird die anfängliche Stichprobe begrenzt. Das ist eine Eigenschaft des Laders, keine Eigenschaft der Hypothese.

verification_loop: Verifizierung fehlgeschlagen (Layer 4 — QA-Prüfung) [class=code_defect]: - [edge_concern] Die Sandbox avg_trade_return_pct ist bei 2 Trades -45.45%, mit metrics_reliable=false und data_days=1 — dies ist kein Performance-Urteil (die Rendite pro Nominalwert ist bei Optionslegs nicht aussagekräftig, da der Prämiennominalwert << dem Nominalwert des Wings ist, und die Sandbox ein 1-tägiger Smoke-Test ist). Dies wird nur als Kontext weitergeführt: Wenn das unten genannte Loader-/Lookback-Problem……Mehr anzeigenWeniger anzeigen

verification_loop: Verifizierung fehlgeschlagen (Layer 4 — QA-Prüfung) [class=code_defect]: - [edge_concern] Die Sandbox avg_trade_return_pct ist bei 2 Trades -45.45%, mit metrics_reliable=false und data_days=1 — dies ist kein Performance-Urteil (die Rendite pro Nominalwert ist bei Optionslegs nicht aussagekräftig, da der Prämiennominalwert << dem Nominalwert des Wings ist, und die Sandbox ein 1-tägiger Smoke-Test ist). Dies wird nur als Kontext weitergeführt: Wenn das unten genannte Loader-/Lookback-Problem gelöst wird und eine echte Wochenoptions-Stichprobe zusammenkommt, sollte der Analyst erneut prüfen, ob die vereinnahmte Nettogutschrift die Round-Trip-Kosten von Deribit in Höhe von 0.03%/Seite über 4 Legs (Eröffnung+Schließung x Short+Long) zuzüglich etwaiger Zuteilungs-Slippage deckt, da der Vorteil eines Put-Credit-Spreads bezogen auf den Nominalwert strukturell gering ist. - [kritisch] rolling_options.lookback_days=49 begrenzt die ENTIRE auflösbare Optionskette des ANY-Backtests auf ungefähr 49 Tage bis „jetzt“ = etwa 7 Wochenzyklen / etwa 14 Optionslegs, unabhängig von Deribits 6.5-jähriger ETH-Optionshistorie. Die Strategie bleibt für den Rest des Fensters flat und handelt nur am Ende. Die Sandbox bestätigt dies empirisch: bars_processed=2400 (etwa 6.5 Jahre), aber data_days=1 und total_trades=2 (trades_count=4). Ein Varianzrisikoprämien- plus Skew-Vorteil lässt sich bei etwa 7 Zyklen / etwa 14 Legs nicht vom Rauschen unterscheiden — weit unter den etwa 30-100 Trades, die für eine messbare Optionsstichprobe nötig sind. Genau dieser Zielkonflikt zwischen Loader-Kosten und Stichprobengröße-22 führte dazu, dass die nahezu identische BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (gleiche Börse, gleiches lookback_days=49) vor 4 Tagen auf Layer aufgegeben wurde. Die eigene Begründung des Entwicklers räumt die Begrenzung ein („lookback_days ist 49 (7 Zyklen, 14 Optionslegs), weil der Kataloglader pro Balkentyp ~10s je Leg benötigt und eine größere Kette die Layer-3-Laufzeitgrenze gefährdet“). In der aktuellen Konfiguration kann die Strategie niemals einen messbaren vollständigen Backtest erzeugen. — Behebung: Nicht mit etwa 7 Zyklen fortfahren. Vor der erneuten Einreichung den Zielkonflikt zwischen Loader-Kosten und Stichprobengröße-22 lösen: die catalog.bars()-Ladevorgänge pro Leg über Balken hinweg bündeln/parallelisieren oder zwischenspeichern, sodass lookback_days viele Jahre an Wochenzyklen (etwa 200-300 Zyklen) erreichen kann, ohne die Laufzeitgrenze der Sandbox zu überschreiten, und dann lookback_days so setzen, dass das gesamte Testfenster abgedeckt wird. Falls der Loader innerhalb des Zeitbudgets tatsächlich keine messbare Wochenoptionshistorie auflösen kann, ist diese Familie im aktuellen Harness bei wöchentlicher Frequenz nicht testbar und sollte neu gestaltet werden (z. B. mit weniger, länger laufenden Monatszyklen über den gesamten Zeitraum) statt

Umsetzung

Wöchentlicher Put-Credit-Spread mit definiertem Risiko auf Deribit ETH. Bei jedem wöchentlichen Verfallszyklus (~7 DTE) löst das Rolling-Options-Framework zwei Put-Beine auf (~5% und ~10% OTM); die Strategie ordnet sie anhand des Ausübungspreises einem Short-Bein (höherer Ausübungspreis, ~25-Delta) und einem Long-Bein (niedrigerer Ausübungspreis, ~10-Delta) zu, SELLS das Short-Bein und BUYS das Long-Bein mit identischer Kontraktzahl 1:1 und hält die Position bis zum Rollpuffer vor der europäischen……Mehr anzeigenWeniger anzeigen

Wöchentlicher Put-Credit-Spread mit definiertem Risiko auf Deribit ETH. Bei jedem wöchentlichen Verfallszyklus (~7 DTE) löst das Rolling-Options-Framework zwei Put-Beine auf (~5% und ~10% OTM); die Strategie ordnet sie anhand des Ausübungspreises einem Short-Bein (höherer Ausübungspreis, ~25-Delta) und einem Long-Bein (niedrigerer Ausübungspreis, ~10-Delta) zu, SELLS das Short-Bein und BUYS das Long-Bein mit identischer Kontraktzahl 1:1 und hält die Position bis zum Rollpuffer vor der europäischen Barausgleichszahlung. Der Einstieg ist an zwei Attraktivitätstests gebunden, die im Einstiegsfenster des Zyklus gemessen werden: Abwärts-Skew (Short-Put-IV >= Deribit DVOL ATM IV x (1 + skew_margin)) und Varianzrisikoprämie (ATM IV >= realisierte Volatilität der vorangegangenen 14 Tage x (1 + vrp_margin)). Die impliziten Volatilitäten der Beine werden anhand der jeweiligen USD-Prämienbalken mit Black-Scholes invertiert. Der maximale Verlust je Spread beträgt (Ausübungspreisbreite - Nettogutschrift) und wird beim Einstieg festgelegt; genau dieser Betrag wird bei der Positionsgröße zugrunde gelegt: Kontrakte = floor(Eigenkapital x risk_frac / max_loss), begrenzt, sodass die Bruttobreite des Spreads innerhalb von 50% des Eigenkapitals bleibt, und mindestens Deribits Mindestgröße von 1 ETH-Kontrakt. 3 veränderbare Parameter (skew_margin, vrp_margin, risk_frac); Hebelwirkung 1.0; kein Handelsweg über Perpetuals/Basiswert.

Verifizierungsergebnisse

Überprüfung fehlgeschlagen (Ebene 4 — Überprüfung QA) [Klasse=code_defect]: - [edge_concern] Sandbox avg_trade_return_pct ist bei 2 Trades mit metrics_reliable=false und data_days=1 -45.45% — dies ist kein Performance-Urteil (die Rendite je Nominalwert ist für Optionsbeine nicht aussagekräftig, da der Nominalwert der Prämie viel kleiner ist als der Nominalwert des Wings und die Sandbox ein 1-tägiger Kurztest ist). Dies wird nur als Kontext übernommen: Falls das unten beschriebene Loader-/Lookback-Problem behoben……Mehr anzeigenWeniger anzeigen

Überprüfung fehlgeschlagen (Ebene 4 — Überprüfung QA) [Klasse=code_defect]: - [edge_concern] Sandbox avg_trade_return_pct ist bei 2 Trades mit metrics_reliable=false und data_days=1 -45.45% — dies ist kein Performance-Urteil (die Rendite je Nominalwert ist für Optionsbeine nicht aussagekräftig, da der Nominalwert der Prämie viel kleiner ist als der Nominalwert des Wings und die Sandbox ein 1-tägiger Kurztest ist). Dies wird nur als Kontext übernommen: Falls das unten beschriebene Loader-/Lookback-Problem behoben wird und sich eine echte Wochenoptions-Stichprobe ansammelt, sollte der Analyst erneut prüfen, ob der vereinnahmte Nettokredit Deribits 0.03% je Seite für 4 Beine (Eröffnung+Schließung × Short+Long) zuzüglich etwaiger Zuteilungsslippage übersteigt, da der Edge eines Put-Credit-Spreads je Nominalwert strukturell gering ist. - [kritisch] rolling_options.lookback_days=49 beschränkt die ENTIRE auflösbare Optionskette des ANY-Backtests auf die etwa 49 Tage bis zum Ende bei „jetzt“ = etwa 7 Wochenzyklen / 14 Optionsbeine, unabhängig von Deribits 6.5-jähriger ETH-Optionshistorie. Die Strategie bleibt für den Rest des Zeitfensters inaktiv und handelt nur am Ende. Die Sandbox bestätigt dies empirisch: bars_processed=2400 (etwa 6.5 Jahre), dennoch data_days=1 und total_trades=2 (trades_count=4). Ein Varianzrisikoprämien- und Skew-Edge lässt sich anhand von etwa 7 Zyklen / 14 Beinen nicht vom Rauschen unterscheiden — deutlich weniger als die etwa 30-100 Trades, die für eine messbare Optionsstichprobe erforderlich sind. Dies ist genau der Zielkonflikt zwischen Loader-Kosten und Stichprobengröße-22, der dazu führte, dass das nahezu identische BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (gleicher Handelsplatz, gleiches lookback_days=49) vor 4 Tagen auf Ebene aufgegeben wurde. Die eigene Begründung des Entwicklers bestätigt die Begrenzung („lookback_days beträgt 49 (7 Zyklen, 14 Optionsbeine), weil der Katalog-Loader pro Balkentyp etwa 10s je Bein benötigt und eine größere Kette die Wanduhrzeitgrenze von Ebene -3 zu überschreiten droht“). In der aktuellen Konfiguration kann die Strategie niemals einen messbaren vollständigen Backtest erzeugen. — Behebung: Verzichte nicht auf etwa 7 Zyklen. Behebe den Zielkonflikt zwischen Loader-Kosten und Stichprobengröße-22, bevor du sie erneut einreichst: Lade die catalog.bars()-Daten je Bein über die Balken hinweg gebündelt oder parallel, oder speichere sie zwischen, damit lookback_days viele Jahre an Wochenzyklen (etwa 200-300 Zyklen) abdecken kann, ohne die Wanduhrzeitgrenze der Sandbox zu überschreiten; setze dann lookback_days so, dass das gesamte Testzeitfenster abgedeckt ist. Falls der Loader innerhalb des Zeitbudgets tatsächlich keine messbare Wochenoptionshistorie erschließen kann, lässt sich diese Strategiefamilie im aktuellen Harness bei wöchentlicher Frequenz nicht testen und sollte neu konzipiert werden (z. B. mit weniger, länger laufenden Monatszyklen über den gesamten Zeitraum) statt

Iterationsverlauf

Verifizierung fehlgeschlagen (Ebene 2 — synthetische Szenarien): Verwendete Parameter: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Prüfen Sie, ob __init__ alle Attribute aus self.parameters.get() festlegt. - steady_uptrend: TypeError:……Mehr anzeigenWeniger anzeigen

Verifizierung fehlgeschlagen (Ebene 2 — synthetische Szenarien): Verwendete Parameter: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Prüfen Sie, ob __init__ alle Attribute aus self.parameters.get() festlegt. - steady_uptrend: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000)

Verifizierung fehlgeschlagen (Ebene 2 — synthetische Szenarien): Verwendete Parameter: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Prüfen Sie, ob __init__ alle Attribute aus self.parameters.get() festlegt. - steady_uptrend: TypeError:……Mehr anzeigenWeniger anzeigen

Verifizierung fehlgeschlagen (Ebene 2 — synthetische Szenarien): Verwendete Parameter: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Prüfen Sie, ob __init__ alle Attribute aus self.parameters.get() festlegt. - steady_uptrend: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() erwartet 1 Positionsargument, aber es wurden 2 übergeben (Balkenzeitstempel: 1735691040000)

Verifizierung fehlgeschlagen (Ebene 3 — Sandbox-Backtest): Keine Trades erzeugt Verwendeter Balkentyp: ETH-PERPETUAL.DERIBIT-1-DAY-LAST-EXTERNAL, verarbeitete Balken: 2400 Diagnose: calculate_signal() wurde nie ausgewertet (0 ausgewertete Balken) -> kein primärer Balken erreichte den Signalpfad der Basisschablone -> wenn Sie on_bar() außer Kraft setzen, rufen Sie super().on_bar(bar) auf; prüfen Sie, ob bar_type zu den Daten des Instruments passt. NOT die Einstiegsschwellen lockern — die Einstiegslogik wurde nie ausgeführt. Stellen Sie sicher, dass Ihre Strategie mit den vorliegenden Daten und Parametern Trades erzeugt.

Verifizierung fehlgeschlagen (Layer 4 — QA-Prüfung) [class=hypothesis_mismatch]: - [edge_concern] Keine Grundlage für das Urteil — der Blocker betrifft die Wiedergabetreue, nicht die Performance. (Der Vollständigkeit halber ist auch das Sandbox-Ergebnis negativ: -2.9%, PF 0.13, Trefferquote 0.125, ein -$2,149-Endverlust bei einem angeblich gestoppten Buch — aber das ist das Ergebnis der falschen Strategie.) - WHOLE-STRATEGY SWAP / MISLINK. Die Hypothese ist ein ETH Deribit-Wochenoptions-PUT CREDIT SPREAD (Verkauf……Mehr anzeigenWeniger anzeigen

Verifizierung fehlgeschlagen (Layer 4 — QA-Prüfung) [class=hypothesis_mismatch]: - [edge_concern] Keine Grundlage für das Urteil — der Blocker betrifft die Wiedergabetreue, nicht die Performance. (Der Vollständigkeit halber ist auch das Sandbox-Ergebnis negativ: -2.9%, PF 0.13, Trefferquote 0.125, ein -$2,149-Endverlust bei einem angeblich gestoppten Buch — aber das ist das Ergebnis der falschen Strategie.) - WHOLE-STRATEGY SWAP / MISLINK. Die Hypothese ist ein ETH Deribit-Wochenoptions-PUT CREDIT SPREAD (Verkauf eines Puts mit ~25d, BUY eines Puts mit ~10d — Vertical mit definiertem Risiko). Der Code ist der BTC delta-neutrale Deribit-Wochenoptions-SHORT STRANGLE (Klassenname, Docstring, iter-3-Begründung und jeder Mechanismus entsprechen dem Strangle). Sowohl das Instrument als auch der Mechanismus AND voneinander ab → falsch erzeugtes/falsch verknüpftes Artefakt, nicht diese Hypothese. Den korrekten ETH Put-Credit-Spread neu erzeugen/verknüpfen. - Falsches Instrument: Die Hypothese ist ETH, aber instrument_id und bar_type sind BTC-PERPETUAL.DERIBIT, und rolling_options.underlying ist „BTC“. Nirgendwo ein ETH. - Falsche Struktur / kein definiertes Risiko: Die Hypothese begrenzt den maximalen Verlust mit einem Put-Wing von ~10d bei PURCHASED. Der Code übermittelt TWO SELL Legs ohne gekauften Wing NO; der Verlust am Rand wird nur durch einen weichen Prämienstopp für den nächsten Balken begrenzt (Sandbox largest_loss -$2,149 gegenüber avg_win ~$214 zeigt, dass der Verlust am Rand nicht begrenzt wird) — genau das ungedeckelte Profil, das die Hypothese vermeiden soll. - Zentrale Edge fehlt: Das Signal der Hypothese ist die Überbewertung des Abwärts-SKEW (25-d-Put-IV gegenüber ATM IV) plus IV>RV. Der Code berechnet keinen Skew — nur den mittleren Strangle-IV/RV VRP. Die Put-Skew-Ertragsquelle, die diese Hypothese auszeichnet, ist nicht implementiert.

Verwerfungsgrund

verification_loop: Verifizierung fehlgeschlagen (Layer 4 — QA-Prüfung) [class=code_defect]: - [edge_concern] Die Sandbox avg_trade_return_pct ist bei 2 Trades -45.45%, mit metrics_reliable=false und data_days=1 — dies ist kein Performance-Urteil (die Rendite pro Nominalwert ist bei Optionslegs nicht aussagekräftig, da der Prämiennominalwert << dem Nominalwert des Wings ist, und die Sandbox ein 1-tägiger Smoke-Test ist). Dies wird nur als Kontext weitergeführt: Wenn das unten genannte Loader-/Lookback-Problem……Mehr anzeigenWeniger anzeigen

verification_loop: Verifizierung fehlgeschlagen (Layer 4 — QA-Prüfung) [class=code_defect]: - [edge_concern] Die Sandbox avg_trade_return_pct ist bei 2 Trades -45.45%, mit metrics_reliable=false und data_days=1 — dies ist kein Performance-Urteil (die Rendite pro Nominalwert ist bei Optionslegs nicht aussagekräftig, da der Prämiennominalwert << dem Nominalwert des Wings ist, und die Sandbox ein 1-tägiger Smoke-Test ist). Dies wird nur als Kontext weitergeführt: Wenn das unten genannte Loader-/Lookback-Problem gelöst wird und eine echte Wochenoptions-Stichprobe zusammenkommt, sollte der Analyst erneut prüfen, ob die vereinnahmte Nettogutschrift die Round-Trip-Kosten von Deribit in Höhe von 0.03%/Seite über 4 Legs (Eröffnung+Schließung x Short+Long) zuzüglich etwaiger Zuteilungs-Slippage deckt, da der Vorteil eines Put-Credit-Spreads bezogen auf den Nominalwert strukturell gering ist. - [kritisch] rolling_options.lookback_days=49 begrenzt die ENTIRE auflösbare Optionskette des ANY-Backtests auf ungefähr 49 Tage bis „jetzt“ = etwa 7 Wochenzyklen / etwa 14 Optionslegs, unabhängig von Deribits 6.5-jähriger ETH-Optionshistorie. Die Strategie bleibt für den Rest des Fensters flat und handelt nur am Ende. Die Sandbox bestätigt dies empirisch: bars_processed=2400 (etwa 6.5 Jahre), aber data_days=1 und total_trades=2 (trades_count=4). Ein Varianzrisikoprämien- plus Skew-Vorteil lässt sich bei etwa 7 Zyklen / etwa 14 Legs nicht vom Rauschen unterscheiden — weit unter den etwa 30-100 Trades, die für eine messbare Optionsstichprobe nötig sind. Genau dieser Zielkonflikt zwischen Loader-Kosten und Stichprobengröße-22 führte dazu, dass die nahezu identische BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (gleiche Börse, gleiches lookback_days=49) vor 4 Tagen auf Layer aufgegeben wurde. Die eigene Begründung des Entwicklers räumt die Begrenzung ein („lookback_days ist 49 (7 Zyklen, 14 Optionslegs), weil der Kataloglader pro Balkentyp ~10s je Leg benötigt und eine größere Kette die Layer-3-Laufzeitgrenze gefährdet“). In der aktuellen Konfiguration kann die Strategie niemals einen messbaren vollständigen Backtest erzeugen. — Behebung: Nicht mit etwa 7 Zyklen fortfahren. Vor der erneuten Einreichung den Zielkonflikt zwischen Loader-Kosten und Stichprobengröße-22 lösen: die catalog.bars()-Ladevorgänge pro Leg über Balken hinweg bündeln/parallelisieren oder zwischenspeichern, sodass lookback_days viele Jahre an Wochenzyklen (etwa 200-300 Zyklen) erreichen kann, ohne die Laufzeitgrenze der Sandbox zu überschreiten, und dann lookback_days so setzen, dass das gesamte Testfenster abgedeckt wird. Falls der Loader innerhalb des Zeitbudgets tatsächlich keine messbare Wochenoptionshistorie auflösen kann, ist diese Familie im aktuellen Harness bei wöchentlicher Frequenz nicht testbar und sollte neu gestaltet werden (z. B. mit weniger, länger laufenden Monatszyklen über den gesamten Zeitraum) statt

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.