Praleisti ir pereiti prie turinio

Peržiūrėti originalą

DeribitEthWeeklyPutWriteTrendGatedOnly

Hipotezės

Deribit ETH Savaitinis Grynaisiais Užtikrintas OTM Put-Write — Tik Tendencija Grįstas Vartas (Trend-Gated Only), Fiksuotas ~25-Delta, NO Ilgo Atgalinio Periodo IV Vartas (Vienkojis (Single-Leg) VRP Derliaus Rinkimas (Harvest); Tiesiogiai Išsprendžia 4-Sandorių Atgalinio Periodo Sieną, Dėl Kurios Buvo Atsisakyta ETH-Savaitinio Giminaičio)

Hipotezės

SINGLE-LEG, pilnai grynaisiais pinigais užtikrinta (cash-collateralized) savaitinė PUT-WRITING programa, veikianti Deribit ETH opcionuose — tai antras pagal likvidumą kriptovaliutų opcionų bazinis turtas (underlying), pakartotinai naudojanti EXACT vykdymo kelią (execution path) (strike'o pasirinkimas pagal graikus (greeks), savaitinis atsiskaitymas grynaisiais) iš gamyklos (factory) Sharpe-12.2 paaukštintos Deribit-BTC-savaitinės put-write strategijos. Ji sąmoningai suprojektuota taip, kad FIX vienintelę, pakartotinai diagnozuotą priežastį, dėl kurios ETH-savaitinis giminaitis (sibling) buvo atsisakytas per 8 iteracijas: jo IV-rango + IV>RV dvigubas vartas (double-gate) reikalavo ~560 dienų slenkančio atgalinio periodo (rolling lookback), kuris sumažino jį iki vos 4 sandorių / metrics_reliable=false — struktūrinė aklavietė, kurios kūrėjas niekada negalėjo išspręsti. Ši versija DROPS ilgo atgalinio periodo IV vartus visiškai ir palieka ONLY tendencijos filtrą (vartus, įrodytus kaip esminius (load-bearing) paaukštintame BTC nugalėtojuje), rašydama fiksuotą ~25-delta OTM ETH put opcioną kiekvieną tinkamą savaitę. Kadangi nėra kelerių metų IV-procentilio priklausomybės, ji suveikia ~40-52 kartų per metus per turimą Deribit ETH savaitinę istoriją → statistiškai patikimas sandorių skaičius, pašalinantis būtent 4-sandorių sieną. Ji užpildo labiausiai nepakankamai atstovaujamą prekybos vietą (venue) (opcionai: 5.5% Deribit + 0.1% Binance, palyginti su ≥15% tikslu) ir diversifikuoja opcionų portfelį nuo vien tik BTC iki antro, nekoreliuoto kintamumo (uncorrelated-vol) bazinio turto. Tai NOT daugiakojė (multi-leg) struktūra (L2), NOT duomenimis apribota (data-walled) celė (savaitinė ETH grandinė + graikai yra sukataloguoti ir įrodytai vykdomi per BTC giminaitį), NOT kryptinė (directional). Sąmoningai 2 parametrus (put delta, tendencijos filtro ilgis), kad atsispirtų perpritaikymui (overfit).

Hipotezės

Iteracija 3 ištaiso Layer-3 realaus laiko (wall-clock) skirtojo laiko pabaigą tik konfigūracijos pakeitimu; strategijos CODE nepakito (ji jau praėjo Layers 1-2, darbas kiekvienam barui (per-bar) yra O(1) per prieaugines (incremental) bėgančios sumos (running-sum) SMA, ir nėra jokių min()/sorted()/istorijos skenavimų kiekvienam barui). Diagnozė: iteracija 2 teisingai perkėlė pirminio (primary) + kojos (leg) sprendimą (resolution) į 1-DAY, tačiau STILL baigėsi skirtasis laikas, o tai įrodo, kad kliūtis (bottleneck) yra ne barų skaičius. Skaitant src/data/option_chain.py: discover_deribit_chain siunčia tinklo fetch_ohlcv zondą (probe) kiekvienam kandidatiniam strike'ui EACH savaitinio galiojimo pabaigos, o Layer-3 smėlio dėžė (sandbox) apima lookback_days (expand_rolling_options / konvejerio (pipeline) numatytoji reikšmė 365). Taigi išplėtimo (expansion) kaina auga proporcingai savaitinių galiojimo pabaigų skaičiui = lookback_days, nepriklausomai nuo laiko rėmo (timeframe). iter-2 konfigūracijoje buvo lookback_days ~730 (~104 galiojimo pabaigos, dvigubinant zondų skaičių), dėl ko buvo viršytas 300s biudžetas. Grąžinus lookback_days į 365 (~52 galiojimo pabaigos) zondų ir kojos (leg) atsisiuntimų skaičius sumažinamas per pusę, atitinkant tiksliai tokį mastą, kuriuo įrodyti ETH/BTC savaitiniai put-write giminaičiai sėkmingai praeina Layer 3, tuo pačiu vis dar apimant ~52 tinkamas savaites, todėl sandorių skaičius išlieka statistiškai patikimas (~30-52 įrašai po tendencijos vartų) ir gerokai viršija 4-sandorių aklavietę. Visa kita išlaikyta ir įrodyta: tiesioginis paveldėjimas (subclassing) iš RollingOptionsStrategy (Layer-1 tai atpažįsta; 4 abstrakčios kabliukų (hooks) funkcijos fiziškai yra), nėra „smoke“ kelio (realios opcionų kojos prekiaujamos per išplėstą tvarkaraštį, tenkinant options_no_option_trades), vienintelis vien kaina grįstas tendencijos vartas _enter_leg funkcijoje, 1-DAY ETH-PERPETUAL pirminio + 1-DAY kojos sprendimas (resolution) (sprendimas, kurį naudoja praeinantis ETH put-write giminaitis), grynaisiais užtikrintas dydžio nustatymas (risk_frac 0.8, svertas (leverage) 1.0 pagal opcionų prekybos vietos (venue) ribą), ir 2-parametrų dizainas (put poslinkis + sma_window).

Hipotezės

backtest_failed: RuntimeError: rolling_options išplėtimas nepavyko (ConnectError: ); atsisakoma vykdyti su tuščiu opcionų grafiku Atgalinis sekimas (paskutinis skambutis): Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 101, funkcijoje map_httpcore_exceptions yield Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 394, funkcijoje handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", eilutė 256, funkcijoje handle_async_request raise exc from None Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", eilutė 236, funkcijoje handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", eilutė 101, funkcijoje handle_async_request raise exc Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", eilutė 78, funkcijoje handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", eilutė 156, funkcijoje _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", eilutė 67, funkcijoje start_tls with map_exceptions(exc_map): Failas "/usr/lib/python3.12/contextlib.py", eilutė 158, funkcijoje __exit__ self.gen.throw(value) Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", eilutė 14, funkcijoje map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Aukščiau pateikta išimtis buvo tiesioginė šios išimties priežastis: Atgalinis sekimas (paskutinis skambutis): Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 49, funkcijoje expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/option_chain.py", eilutė 242, funkcijoje expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/option_chain.py", eilutė 143, funkcijoje discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/collectors/deribit_collector.py", eilutė 169, funkcijoje fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/collectors/deribit_collector.py", eilutė 86, funkcijoje _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1768, funkcijoje get return await self.request( ^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1540, funkcijoje request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1629, funkcijoje send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1657, funkcijoje _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1694, funkcijoje _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1730, funkcijoje _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 393, funkcijoje handle_async_request with map_httpcore_exceptions(): Failas "/usr/lib/python3.12/contextlib.py", eilutė 158, funkcijoje __exit__ self.gen.throw(value) Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 118, funkcijoje map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Aukščiau pateikta išimtis buvo tiesioginė šios išimties priežastis: Atgalinis sekimas (paskutinis skambutis): Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 184, funkcijoje _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 427, funkcijoje _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 59, funkcijoje expand_rolling_options_into_config raise RuntimeError( RuntimeError: rolling_options išplėtimas nepavyko (ConnectError: ); atsisakoma vykdyti su tuščiu opcionų grafiku

Įgyvendinimas

Vienkojis (single-leg), grynaisiais užtikrintas savaitinis OTM put opcionų rašymas (put-writing) ETH Deribit europietiškuose opcionuose, tik tendencija grįstas (trend-gated). Kiekvieną savaitę sistema (framework) nustato istorinę Deribit ETH savaitinę put grandinę (chain) (siekiant ~25-delta OTM strike'o per -6% moneyness poslinkį) ir ją perriedina (rolls); strategija SELLS vieną put opcioną likus ~7 dienoms iki galiojimo pabaigos ir uždaro jį ~24h prieš atsiskaitymą. ONLY vartas yra vien kaina grįstas tendencijos filtras: jis rašo put opcioną tik tada, kai ETH spot kaina yra virš savo ~50 dienų SMA (dienos barai), praleisdama patvirtintas mažėjimo tendencijas (downtrends). Kadangi nėra kelerių metų IV-procentilio lango, ji prekiauja kiekvieną tinkamą savaitę (~52/metus per 365 dienų langą), užtikrinant statistiškai patikimą sandorių skaičių ir tiesiogiai pašalinant 4-sandorių atgalinio periodo sieną, dėl kurios buvo atsisakyta IV-vartais grįsto ETH-savaitinio giminaičio. Pirminis (primary) = ETH-PERPETUAL.DERIBIT ant 1-DAY barų (tik perriedinimo laikrodis (roll clock), niekada neprekiaujama). Grynaisiais užtikrintas dydžio nustatymas (risk_frac 0.8), be sverto (leverage), 2 suderinti parametrai (put poslinkis, sma_window).

Patikros rezultatai

CLEAN RESTART 2026-09-04 — šio paleidimo verdiktų istorija ir mokymosi įrašai buvo pašalinti, ir jis buvo iš naujo paleistas nuo patikrinimo (verification) etapo. Ankstesnis atsisakymas kilo dėl konvejerio (pipeline), o ne dėl rinkos: Layer-2 sistema (harness) neteisingai susiejo @staticmethod pagalbines funkcijas (ištaisyta), QA išdavė galutinius našumo verdiktus neoptimizuotam „smoke“ testui (pašalinta — QA dabar vertina tik korektiškumą), o smėlio dėžės (sandbox) skirtojo laiko pabaigos kildavo dėl backtest'o vietų (slots) trūkumo (starvation) (ištaisyta). Hipotezė ir strategijos kodas nepakito. Patikrinkite kodą pagal jo nuopelnus; našumas bus nuspręstas vėliau, atlikus pilną backtest'ą ir optimizatorių.

Patikros rezultatai

Nereikia.

Patikros rezultatai

Layer-1 pažymėjo self._win.append() kaip neribotą (unbounded), tačiau on_bar kiekvieną barą apkarpo deque (while len > sma_window: popleft()), todėl augimas yra apribotas iki sma_window. Klaidingai teigiamas (false positive) rezultatas.

Iteration History

Patikrinimas nepavyko (Layer 3 — smėlio dėžės (sandbox) backtest'as): „smoke“ testas viršijo 300s realaus laiko (wall-clock) limitą. Tai beveik visada reiškia darbą kiekvienam barui (per-bar), kuris auga proporcingai istorijai — pvz., perskenuojant visą finansavimo (funding) / papildomą seriją arba iš naujo sudarant sąrašą ir kviečiant min()/sorted() viduje calculate_signal()/on_bar() kiekvienam barui. Iš anksto apskaičiuokite surūšiuotus laiko žymų (timestamp) masyvus ONCE __init__ metode ir naudokite bisect, arba talpinkite paieškas į talpyklą (cache) pagal laiko žymą, kad kaina kiekvienam barui būtų O(log n), o ne O(n).

Iteration History

RuntimeError: rolling_options išplėtimas (expansion) nepavyko (ConnectError: ); atsisakoma vykdyti su tuščiu opcionų tvarkaraščiu 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 Aukščiau pateikta išimtis buvo tiesioginė šios išimties priežastis: 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 Aukščiau pateikta išimtis buvo tiesioginė šios išimties priežastis: 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: rolling_options išplėtimas (expansion) nepavyko (ConnectError: ); atsisakoma vykdyti su tuščiu opcionų tvarkaraščiu

Atmetimo priežastis

backtest_failed: RuntimeError: rolling_options išplėtimas nepavyko (ConnectError: ); atsisakoma vykdyti su tuščiu opcionų grafiku Atgalinis sekimas (paskutinis skambutis): Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 101, funkcijoje map_httpcore_exceptions yield Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 394, funkcijoje handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", eilutė 256, funkcijoje handle_async_request raise exc from None Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", eilutė 236, funkcijoje handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", eilutė 101, funkcijoje handle_async_request raise exc Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", eilutė 78, funkcijoje handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", eilutė 156, funkcijoje _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", eilutė 67, funkcijoje start_tls with map_exceptions(exc_map): Failas "/usr/lib/python3.12/contextlib.py", eilutė 158, funkcijoje __exit__ self.gen.throw(value) Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", eilutė 14, funkcijoje map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Aukščiau pateikta išimtis buvo tiesioginė šios išimties priežastis: Atgalinis sekimas (paskutinis skambutis): Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 49, funkcijoje expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/option_chain.py", eilutė 242, funkcijoje expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/option_chain.py", eilutė 143, funkcijoje discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/collectors/deribit_collector.py", eilutė 169, funkcijoje fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/data/collectors/deribit_collector.py", eilutė 86, funkcijoje _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1768, funkcijoje get return await self.request( ^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1540, funkcijoje request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1629, funkcijoje send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1657, funkcijoje _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1694, funkcijoje _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", eilutė 1730, funkcijoje _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 393, funkcijoje handle_async_request with map_httpcore_exceptions(): Failas "/usr/lib/python3.12/contextlib.py", eilutė 158, funkcijoje __exit__ self.gen.throw(value) Failas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", eilutė 118, funkcijoje map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Aukščiau pateikta išimtis buvo tiesioginė šios išimties priežastis: Atgalinis sekimas (paskutinis skambutis): Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 184, funkcijoje _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 427, funkcijoje _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failas "/opt/strategy-factory/src/agents/backtest_agent.py", eilutė 59, funkcijoje expand_rolling_options_into_config raise RuntimeError( RuntimeError: rolling_options išplėtimas nepavyko (ConnectError: ); atsisakoma vykdyti su tuščiu opcionų grafiku
Strategijos ataskaita

„Stratmill“ yra tyrimų ir popierinės prekybos įrankis, o ne finansų konsultantas ar brokeris. Testavimo ir popierinės prekybos rezultatai yra hipotetiniai. Prekyba susijusi su nuostolio rizika.