Zum Inhalt springen
Alle Strategien

Strategien

Deribit ETH wöchentlicher cashbesicherter OTM-Put-Write – ausschließlich trendgefiltert, festes Delta von etwa 25, NO Langzeit-Rückblicksfilter IV (Ertragsstrategie mit einem Bein VRP; behebt direkt die Rückblicksgrenze von 4 Trades, an der der ETH-Weekly-Zwilling aufgegeben wurde)

Ergebnis: Verworfen

DeribitEthWeeklyPutWriteTrendGatedOnly

Deribit ETH wöchentlicher cashbesicherter OTM-Put-Write – ausschließlich trendgefiltert, festes Delta von etwa 25, NO Langzeit-Rückblicksfilter IV (Ertragsstrategie mit einem Bein VRP; behebt direkt die…

Hypothese

Ein SINGLE-LEG, vollständig durch Barmittel besichertes wöchentliches PUT-WRITING-Programm auf Deribit-ETH-Optionen – dem Krypto-Optionsbasiswert mit der zweithöchsten Liquidität; es verwendet erneut den Ausführungspfad EXACT (Strike-Auswahl anhand der Greeks, wöchentliche Abrechnung in bar) des mit Sharpe-12.2 ausgezeichneten Deribit-BTC-Weekly-Put-Write der Factory. Es ist gezielt darauf ausgelegt, den wiederholt diagnostizierten Grund zu FIX, aus dem der ETH-Weekly-Ableger über 8 Iterationen hinweg aufgegeben……Mehr anzeigenWeniger anzeigen

Ein SINGLE-LEG, vollständig durch Barmittel besichertes wöchentliches PUT-WRITING-Programm auf Deribit-ETH-Optionen – dem Krypto-Optionsbasiswert mit der zweithöchsten Liquidität; es verwendet erneut den Ausführungspfad EXACT (Strike-Auswahl anhand der Greeks, wöchentliche Abrechnung in bar) des mit Sharpe-12.2 ausgezeichneten Deribit-BTC-Weekly-Put-Write der Factory. Es ist gezielt darauf ausgelegt, den wiederholt diagnostizierten Grund zu FIX, aus dem der ETH-Weekly-Ableger über 8 Iterationen hinweg aufgegeben wurde: Sein doppeltes Gate aus Rang IV und IV>RV erforderte einen rollierenden Rückblick von etwa 560 Tagen. Dadurch kam es auf nur 4 Trades / metrics_reliable=false – eine strukturelle Sackgasse, die der Entwickler nie überwinden konnte. Diese Version DROPS das Gate IV mit langem Rückblick vollständig und behält ONLY den Trendfilter bei (das Gate, dessen tragende Bedeutung für den ausgezeichneten BTC-Gewinner erwiesen ist); sie schreibt jede geeignete Woche einen Put mit festem Delta von etwa 25 auf OTM ETH. Ohne Abhängigkeit von einem mehrjährigen IV-Perzentil kommt die Strategie während der verfügbaren wöchentlichen Deribit-Historie ETH etwa 40-52 Mal pro Jahr zum Einsatz → eine statistisch zuverlässige Zahl von Trades; damit entfällt die konkrete Wand bei 4 Trades. Sie schließt die größte Unterrepräsentation nach Handelsplatz (Optionen: 5.5% Deribit + 0.1% Binance gegenüber einem Ziel von ≥15%) und diversifiziert das Optionsbuch von ausschließlich BTC hin zu einem zweiten Basiswert mit unkorrelierter Volatilität. Es ist NOT eine Multi-Leg-Struktur (L2), NOT eine durch Daten eingeschränkte Zelle (die wöchentliche ETH-Kette samt Greeks ist katalogisiert und anhand des Ablegers BTC als ausführbar nachgewiesen), NOT gerichtet. Die Parameter (Put-Delta, Länge des Trendfilters) sind bewusst 2, um Überanpassung entgegenzuwirken.

Iteration 3 behebt die Wall-Clock-Zeitüberschreitung in Layer-3 durch eine reine Konfigurationsänderung; die Strategie CODE ist unverändert (sie hat Layer 1-2 bereits bestanden, der Aufwand pro Balken ist dank einer inkrementellen laufenden Summe SMA O(1), und es gibt keine min()/sorted()-Aufrufe oder Historien-Scans pro Balken). Diagnose: Iteration 2 verlagerte die Auflösung von Primärkontrakt und Position korrekt auf 1-DAY, aber STILL lief in eine Zeitüberschreitung. Das beweist, dass die Anzahl der Balken……Mehr anzeigenWeniger anzeigen

Iteration 3 behebt die Wall-Clock-Zeitüberschreitung in Layer-3 durch eine reine Konfigurationsänderung; die Strategie CODE ist unverändert (sie hat Layer 1-2 bereits bestanden, der Aufwand pro Balken ist dank einer inkrementellen laufenden Summe SMA O(1), und es gibt keine min()/sorted()-Aufrufe oder Historien-Scans pro Balken). Diagnose: Iteration 2 verlagerte die Auflösung von Primärkontrakt und Position korrekt auf 1-DAY, aber STILL lief in eine Zeitüberschreitung. Das beweist, dass die Anzahl der Balken nicht der Engpass ist. Laut src/data/option_chain.py führt discover_deribit_chain für jeden möglichen Strike jedes wöchentlichen Verfalls von EACH eine Netzwerk-fetch_ohlcv-Prüfung aus, und die Layer-3-Sandbox umfasst lookback_days (expand_rolling_options / Pipeline-Standardwert 365). Die Erweiterungskosten skalieren daher mit der Zahl der wöchentlichen Verfälle = lookback_days, unabhängig vom Zeitrahmen. Die Konfiguration von iter-2 enthielt lookback_days etwa 730 (etwa 104 Verfälle, wodurch sich die Zahl der Prüfungen verdoppelte), womit das Zeitbudget von 300s überschritten wurde. Die Rücksetzung von lookback_days auf 365 (etwa 52 Verfälle) halbiert die Prüfungen der Verfälle und die Positionsdaten-Downloads. Damit entspricht sie genau dem Umfang, bei dem die nachweislich erfolgreichen ETH/BTC Weekly-Put-Write-Geschwister Layer 3 bestehen, und deckt weiterhin etwa 52 zulässige Wochen ab, sodass die Anzahl der Trades statistisch verlässlich bleibt (etwa 30-52 Writes nach Anwendung des Trendfilters) und deutlich über der Sackgasse mit 4 Trades liegt. Alles Weitere bleibt erhalten und ist nachgewiesen: direktes Erben von RollingOptionsStrategy (Layer-1 erkennt dies; die abstrakten Hooks 4 sind tatsächlich vorhanden), kein Smoke-Pfad (echte Optionspositionen werden über den erweiterten Plan gehandelt und erfüllen damit options_no_option_trades), der einzelne rein preisbasierte Trendfilter in _enter_leg, Auflösung von Primärkontrakt über 1-DAY ETH-PERPETUAL und der Position über 1-DAY (dieselbe Auflösung wie beim erfolgreichen ETH-Put-Write-Geschwister), Besicherung der Positionsgröße durch Barmittel (risk_frac 0.8, Leverage 1.0 gemäß Obergrenze des Optionshandelsplatzes) und das Design mit 2 Parametern (Put-Abstand + sma_window).

backtest_failed: RuntimeError: Fehler bei der Erweiterung von rolling_options (ConnectError: ); Ausführung mit einem leeren Optionszeitplan wird verweigert Traceback (most recent call last): File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request resp = await self._pool.handle_async_request(req)……Mehr anzeigenWeniger anzeigen

backtest_failed: RuntimeError: Fehler bei der Erweiterung von rolling_options (ConnectError: ); Ausführung mit einem leeren Optionszeitplan wird verweigert Traceback (most recent call last): File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request raise exc from None File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request raise exc File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 156, in _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 67, in start_tls with map_exceptions(exc_map): File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__ self.gen.throw(value) File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Die obige Ausnahme war die direkte Ursache der folgenden Ausnahme: Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 49, in expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/option_chain.py", line 242, in expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/option_chain.py", line 143, in discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/collectors/deribit_collector.py", line 169, in fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/collectors/deribit_collector.py", line 86, in _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get return await self.request( ^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_single_request response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 393, in handle_async_request with map_httpcore_exceptions(): File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__ self.gen.throw(value) File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Die obige Ausnahme war die direkte Ursache der folgenden Ausnahme: Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 184, in _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/agents/backtest_agent.py", line 427, in _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/agents/backtest_agent.py", line 59, in expand_rolling_options_into_config raise RuntimeError( RuntimeError: Fehler bei der Erweiterung von rolling_options (ConnectError: ); Ausführung mit einem leeren Optionszeitplan wird verweigert

Umsetzung

Wöchentliches Schreiben von OTM-Puts mit Besicherung durch Barmittel, als Single-Leg-Strategie auf europäischen Deribit-Optionen ETH, ausschließlich durch einen Trendfilter gesteuert. Jede Woche löst das Framework die historische wöchentliche Deribit-Put-Kette ETH auf (Ziel: ein Strike OTM mit etwa 25 Delta über einen Moneyness-Abstand von -6%) und rollt sie weiter; die Strategie SELLS einen Put etwa 7 Tage vor Verfall und schließt ihn etwa 24 Stunden vor Abrechnung. Das ONLY-Gate ist ein reiner……Mehr anzeigenWeniger anzeigen

Wöchentliches Schreiben von OTM-Puts mit Besicherung durch Barmittel, als Single-Leg-Strategie auf europäischen Deribit-Optionen ETH, ausschließlich durch einen Trendfilter gesteuert. Jede Woche löst das Framework die historische wöchentliche Deribit-Put-Kette ETH auf (Ziel: ein Strike OTM mit etwa 25 Delta über einen Moneyness-Abstand von -6%) und rollt sie weiter; die Strategie SELLS einen Put etwa 7 Tage vor Verfall und schließt ihn etwa 24 Stunden vor Abrechnung. Das ONLY-Gate ist ein reiner Preis-Trendfilter: Der Put wird nur geschrieben, wenn der Spot von ETH über seinem etwa 50-tägigen SMA (Tagesbalken) liegt; bestätigte Abwärtstrends werden ausgelassen. Ohne ein mehrjähriges IV-Perzentil-Fenster handelt die Strategie in jeder geeigneten Woche (etwa 52 Mal pro Jahr während des 365-Tage-Fensters) und erreicht so eine statistisch zuverlässige Zahl von Trades. Damit entfällt direkt die Rückblick-Wand bei 4 Trades, an der der durch IV gefilterte ETH-Weekly-Ableger gescheitert ist. Primärer Basiswert = ETH-PERPETUAL.DERIBIT auf Balken von 1–DAY (nur Rolltakt, wird nie gehandelt). Positionsgröße durch Barmittel besichert (risk_frac 0.8), ohne Hebel, 2 abgestimmte Parameter (Put-Abstand, sma_window).

Verifizierungsergebnisse

CLEAN RESTART 2026-09-04 — der Urteilsverlauf und die Lernaufzeichnungen dieses Laufs wurden entfernt, und er wurde mit der Verifizierung neu gestartet. Der vorherige Abbruch ging auf die Pipeline zurück, nicht auf den Markt: Der Layer-2-Harness band @staticmethod-Hilfsfunktionen falsch (behoben), QA fällte endgültige Performance-Urteile auf Grundlage eines nicht optimierten Smoke-Tests (entfernt — QA beurteilt jetzt nur noch die Korrektheit), und die Sandbox-Zeitüberschreitungen waren auf eine Verknappung der Backtest-Slots zurückzuführen (behoben). Die Hypothese und der Strategiecode sind unverändert. Bewerte den Code nach seinen eigenen Maßstäben; die Performance wird später durch den vollständigen Backtest und den Optimierer bestimmt.

Nicht erforderlich.

Layer-1 kennzeichnete self._win.append() als unbegrenzt, aber on_bar kürzt die Deque bei jedem Balken (while len > sma_window: popleft()), sodass ihr Wachstum auf sma_window begrenzt ist. Falschmeldung.

Iterationsverlauf

Verifizierung fehlgeschlagen (Layer 3 — Backtest in der Sandbox): Der Smoke-Test überschritt das Wall-Clock-Limit von 300s. Das bedeutet fast immer, dass der Aufwand pro Balken mit der Historienlänge skaliert — z. B. durch erneutes Durchsuchen der gesamten Funding-/Zusatzdatenreihe oder durch den Neuaufbau einer Liste und den Aufruf von min()/sorted() innerhalb von calculate_signal()/on_bar() bei jedem Balken. Sortierte Zeitstempel-Arrays ONCE in __init__ vorberechnen und bisect verwenden oder Lookups nach Zeitstempel zwischenspeichern, damit die Kosten pro Balken O(log n) statt O(n) betragen.

RuntimeError: Erweiterung von rolling_options fehlgeschlagen (ConnectError: ); Ausführung mit leerem Optionsplan wird verweigert Traceback (most recent call last): File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request resp = await self._pool.handle_async_request(req)……Mehr anzeigenWeniger anzeigen

RuntimeError: Erweiterung von rolling_options fehlgeschlagen (ConnectError: ); Ausführung mit leerem Optionsplan wird verweigert Traceback (most recent call last): File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request raise exc from None File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request raise exc File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 156, in _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 67, in start_tls with map_exceptions(exc_map): File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__ self.gen.throw(value) File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions raise to_exc(exc) from exc httpcore.ConnectError The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 49, in expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/option_chain.py", line 242, in expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/option_chain.py", line 143, in discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/collectors/deribit_collector.py", line 169, in fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/collectors/deribit_collector.py", line 86, in _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get return await self.request( ^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 393, in handle_async_request with map_httpcore_exceptions(): File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__ self.gen.throw(value) File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 184, in _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/agents/backtest_agent.py", line 427, in _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/agents/backtest_agent.py", line 59, in expand_rolling_options_into_config raise RuntimeError( RuntimeError: Erweiterung von rolling_options fehlgeschlagen (ConnectError: ); Ausführung mit leerem Optionsplan wird verweigert

Verwerfungsgrund

backtest_failed: RuntimeError: Fehler bei der Erweiterung von rolling_options (ConnectError: ); Ausführung mit einem leeren Optionszeitplan wird verweigert Traceback (most recent call last): File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request resp = await self._pool.handle_async_request(req)……Mehr anzeigenWeniger anzeigen

backtest_failed: RuntimeError: Fehler bei der Erweiterung von rolling_options (ConnectError: ); Ausführung mit einem leeren Optionszeitplan wird verweigert Traceback (most recent call last): File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions yield File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request raise exc from None File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request raise exc File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 156, in _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 67, in start_tls with map_exceptions(exc_map): File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__ self.gen.throw(value) File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Die obige Ausnahme war die direkte Ursache der folgenden Ausnahme: Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 49, in expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/option_chain.py", line 242, in expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/option_chain.py", line 143, in discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/collectors/deribit_collector.py", line 169, in fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/data/collectors/deribit_collector.py", line 86, in _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get return await self.request( ^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_single_request response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 393, in handle_async_request with map_httpcore_exceptions(): File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__ self.gen.throw(value) File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 118, in map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Die obige Ausnahme war die direkte Ursache der folgenden Ausnahme: Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 184, in _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/agents/backtest_agent.py", line 427, in _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/strategy-factory/src/agents/backtest_agent.py", line 59, in expand_rolling_options_into_config raise RuntimeError( RuntimeError: Fehler bei der Erweiterung von rolling_options (ConnectError: ); Ausführung mit einem leeren Optionszeitplan wird verweigert

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.