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
„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.