Sări la conținut
Toate strategiile

Strategii

Deribit ETH — strategie săptămânală de vânzare a put-urilor garantate cu numerar OTM — doar cu filtru de trend, delta fixă de aproximativ 25, fără filtrul IV cu fereastră lungă NO (captarea primelor cu o singură componentă VRP; remediază direct plafonul de fereastră de 4 tranzacții care a dus la abandonarea strategiei surori ETH-Weekly)

Rezultat: Abandonată

DeribitEthWeeklyPutWriteTrendGatedOnly

Deribit ETH — strategie săptămânală de vânzare a put-urilor garantate cu numerar OTM — doar cu filtru de trend, delta fixă de aproximativ 25, fără filtrul IV cu fereastră lungă NO (captarea primelor cu o singură…

Ipoteza

Un program SINGLE-LEG săptămânal, garantat integral cu numerar PUT-WRITING, pe opțiuni ETH Deribit — activul suport pentru opțiuni cripto cu a doua cea mai mare lichiditate, reutilizând calea de execuție EXACT (selectarea strike-ului prin greeks, decontare săptămânală în numerar) a strategiei de vânzare de put-uri săptămânale Deribit-BTC, promovată de fabrică pentru Sharpe-12.2. Este proiectat în mod deliberat să FIX singurul motiv diagnosticat în mod repetat pentru care strategia soră săptămânală ETH a fost……Afișează mai multeAfișează mai puțin

Un program SINGLE-LEG săptămânal, garantat integral cu numerar PUT-WRITING, pe opțiuni ETH Deribit — activul suport pentru opțiuni cripto cu a doua cea mai mare lichiditate, reutilizând calea de execuție EXACT (selectarea strike-ului prin greeks, decontare săptămânală în numerar) a strategiei de vânzare de put-uri săptămânale Deribit-BTC, promovată de fabrică pentru Sharpe-12.2. Este proiectat în mod deliberat să FIX singurul motiv diagnosticat în mod repetat pentru care strategia soră săptămânală ETH a fost abandonată după 8 iterații: poarta dublă IV-rank + IV>RV necesita o fereastră retrospectivă rulantă de ~560 zile, reducând-o la doar 4 tranzacții / metrics_reliable=false — un impas structural pe care dezvoltatorul nu l-a putut depăși. Această versiune DROPS complet poarta IV cu fereastră retrospectivă lungă și păstrează filtrul de trend ONLY (poarta demonstrată ca esențială în strategia câștigătoare BTC promovată), vânzând un put OTM ETH cu delta fixă de ~25 în fiecare săptămână eligibilă. Fără dependența de percentila IV multianuală, se activează de ~40-52 ori pe an în istoricul săptămânal Deribit ETH disponibil → un număr de tranzacții fiabil statistic, eliminând exact blocajul de 4 tranzacții. Acoperă locul cel mai slab reprezentat (opțiuni: 5.5% Deribit + 0.1% Binance față de o țintă de ≥15%) și diversifică portofoliul de opțiuni, trecând de la expunere exclusivă la BTC la un al doilea activ suport cu volatilitate necorelată. Nu este NOT o structură cu mai multe componente (L2), nici NOT o celulă cu date inaccesibile (lanțul săptămânal de ETH și greeks sunt catalogate și s-a demonstrat că pot fi executate prin strategia soră BTC); nu este NOT direcțională. Parametrii sunt în mod deliberat 2 (delta put-ului, lungimea filtrului de trend) pentru a rezista supraoptimizării.

Iterația 3 remediază timeout-ul wall-clock Layer-3 cu o modificare doar de configurație; strategia CODE este neschimbată (a trecut deja de Layers 1-2, munca per-bar este O(1) printr-un SMA cu sumă curentă incrementală, și nu există scanări per-bar min()/sorted()/history). Diagnostic: iterația 2 a mutat corect rezoluția primary+leg la 1-DAY, dar STILL a dat timeout, ceea ce dovedește că blocajul nu este numărul de bare. Citind src/data/option_chain.py: discover_deribit_chain emite o sondă de rețea fetch_ohlcv……Afișează mai multeAfișează mai puțin

Iterația 3 remediază timeout-ul wall-clock Layer-3 cu o modificare doar de configurație; strategia CODE este neschimbată (a trecut deja de Layers 1-2, munca per-bar este O(1) printr-un SMA cu sumă curentă incrementală, și nu există scanări per-bar min()/sorted()/history). Diagnostic: iterația 2 a mutat corect rezoluția primary+leg la 1-DAY, dar STILL a dat timeout, ceea ce dovedește că blocajul nu este numărul de bare. Citind src/data/option_chain.py: discover_deribit_chain emite o sondă de rețea fetch_ohlcv pentru fiecare strike candidat al EACH expirare săptămânală, iar sandbox-ul Layer-3 acoperă lookback_days (expand_rolling_options / default-ul pipeline-ului 365). Astfel, costul de expansiune scalează cu numărul de expirări săptămânale = lookback_days, indiferent de timeframe. Configurația iter-2 conținea lookback_days ~730 (~104 expirări, dublând numărul de sonde), ceea ce a depășit bugetul de 300s. Revenirea lookback_days la 365 (~52 expirări) înjumătățește sondele de expirare și descărcările de legs, potrivindu-se exact cu scara la care frații dovediți ETH/BTC weekly put-write trec de Layer 3, acoperind în același timp ~52 săptămâni eligibile, astfel încât numărul de tranzacții rămâne fiabil statistic (~30-52 writes după filtrarea de trend) și mult peste fundătura de 4 tranzacții. Tot restul este păstrat și dovedit: subclasarea directă a RollingOptionsStrategy (Layer-1 o recunoaște; hook-urile abstracte 4 sunt fizic prezente), fără cale smoke (legs reale de opțiuni se tranzacționează via programul extins, satisfăcând options_no_option_trades), singura poartă de trend bazată doar pe preț în _enter_leg, rezoluția 1-DAY ETH-PERPETUAL primary + 1-DAY leg (rezoluția folosită de fratele ETH put-write care trece), dimensionarea cash-secured (risk_frac 0.8, levier 1.0 conform plafonului venue-ului de opțiuni), și designul cu 2 parametri (put offset + sma_window).

backtest_failed: RuntimeError: extinderea rolling_options a eșuat (ConnectError: ); refuz rularea cu un calendar de opțiuni gol Trasarea stivei (ultimul apel cel mai recent): 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)……Afișează mai multeAfișează mai puțin

backtest_failed: RuntimeError: extinderea rolling_options a eșuat (ConnectError: ); refuz rularea cu un calendar de opțiuni gol Trasarea stivei (ultimul apel cel mai recent): 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 Excepția de mai sus a fost cauza directă a următoarei excepții: Trasarea stivei (ultimul apel cel mai recent): 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 Excepția de mai sus a fost cauza directă a următoarei excepții: Trasarea stivei (ultimul apel cel mai recent): 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: extinderea rolling_options a eșuat (ConnectError: ); refuz rularea cu un calendar de opțiuni gol

Implementare

Scriere săptămânală de put-uri OTM cu un singur picior, garantată cu numerar, pe opțiuni europene ETH Deribit, doar cu filtru de trend. În fiecare săptămână, cadrul de lucru rezolvă lanțul istoric săptămânal de put-uri Deribit ETH (vizând un strike OTM cu delta de aproximativ 25 printr-un decalaj de moneyness de -6%) și îl rulează înainte. Strategia SELLS un put cu aproximativ 7 zile până la expirare și îl închide cu aproximativ 24 ore înainte de decontare. Condiția ONLY este un filtru de trend bazat doar pe……Afișează mai multeAfișează mai puțin

Scriere săptămânală de put-uri OTM cu un singur picior, garantată cu numerar, pe opțiuni europene ETH Deribit, doar cu filtru de trend. În fiecare săptămână, cadrul de lucru rezolvă lanțul istoric săptămânal de put-uri Deribit ETH (vizând un strike OTM cu delta de aproximativ 25 printr-un decalaj de moneyness de -6%) și îl rulează înainte. Strategia SELLS un put cu aproximativ 7 zile până la expirare și îl închide cu aproximativ 24 ore înainte de decontare. Condiția ONLY este un filtru de trend bazat doar pe preț: put-ul este vândut numai când ETH spot se află peste media sa SMA pe aproximativ 50 zile (bare zilnice), evitând perioadele de trend descendent confirmat. Fără o fereastră pe mai mulți ani pentru percentila IV, strategia tranzacționează în fiecare săptămână eligibilă (aproximativ 52 ori pe an în fereastra de 365 zile) pentru un număr de tranzacții fiabil statistic, eliminând direct plafonul de 4 tranzacții care a dus la abandonarea strategiei surori ETH-weekly cu condiția IV. Activul principal = ETH-PERPETUAL.DERIBIT pe bare de 1-DAY (doar pentru ceasul de rulare, niciodată tranzacționat). Dimensionare garantată cu numerar (risk_frac 0.8), fără levier, 2 parametri ajustați (decalajul put-ului, sma_window).

Rezultate verificare

CLEAN RESTART 2026-09-04 — istoricul verdictelor și înregistrările de învățare ale acestei rulări au fost eliminate și a fost repornită de la verificare. Abandonarea sa anterioară a provenit din pipeline, nu din piață: harness-ul Layer-2 a legat greșit helper-ii @staticmethod (remediat), QA a emis verdicte terminale de performanță pe un smoke test neoptimizat (eliminat — QA evaluează acum doar corectitudinea), iar timeout-urile de sandbox au provenit din înfometarea sloturilor de backtest (remediat). Ipoteza și codul strategiei sunt neschimbate. Verificați codul pe meritele sale; performanța este decisă ulterior de backtest-ul complet și de optimizator.

Nu este necesar nimic.

Layer-1 a semnalat self._win.append() ca fiind nelimitat, dar on_bar scurtează deque-ul la fiecare bară (while len > sma_window: popleft()), astfel încât creșterea este limitată la sma_window. Fals pozitiv.

Istoric iterații

Verificarea a eșuat (Layer 3 — backtest în sandbox): testul smoke a depășit limita de 300 s de timp de execuție. Aproape întotdeauna, asta indică operații per bară care se scalează odată cu istoricul — de exemplu, rescana completă a seriei de funding/suplimentare sau reconstruirea unei liste și apelarea lui min()/sorted() în interiorul lui calculate_signal()/on_bar() la fiecare bară. Precalculați array-uri de marcaje temporale sortate ONCE în __init__ și folosiți bisect sau stocați în cache căutările indexate după marcajul temporal, astfel încât costul per bară să fie O(log n), nu O(n).

RuntimeError: extinderea rolling_options a eșuat (ConnectError: ); se refuză rularea cu un program de opțiuni gol 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……Afișează mai multeAfișează mai puțin

RuntimeError: extinderea rolling_options a eșuat (ConnectError: ); se refuză rularea cu un program de opțiuni gol 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 Excepția de mai sus a fost cauza directă a următoarei excepții: 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 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 Excepția de mai sus a fost cauza directă a următoarei excepții: 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: extinderea rolling_options a eșuat (ConnectError: ); se refuză rularea cu un program de opțiuni gol

Motiv Abandonare

backtest_failed: RuntimeError: extinderea rolling_options a eșuat (ConnectError: ); refuz să rulez cu un program de opțiuni gol 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)……Afișează mai multeAfișează mai puțin

backtest_failed: RuntimeError: extinderea rolling_options a eșuat (ConnectError: ); refuz să rulez cu un program de opțiuni gol 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_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: extinderea rolling_options a eșuat (ConnectError: ); refuz să rulez cu un program de opțiuni gol

Stratmill este un instrument de cercetare și paper-trading, nu consultanță financiară sau broker. Rezultatele de backtest și paper trading sunt ipotetice. Tranzacționarea implică riscul de pierdere.