Pāriet uz saturu

Skatīt oriģinālu

DeribitEthWeeklyPutWriteTrendGatedOnly

Hipotēzes

Deribit ETH Nedēļas Ar Skaidru Naudu Nodrošināta OTM Pārdošanas Opcijas Rakstīšana — Tikai Ar Tendencies Filtrēta, Fiksēta ~25-Delta, NO Garais Retrospektīvais IV Filtrs (Viena Kāja VRP Ieņēmumu Novākšana; Tieši Novērš 4-Darījumu Retrospektīvā Loga Sienu, Kas Pārtrauca ETH-Nedēļas Radniecīgo)

Hipotēzes

A SINGLE-LEG, pilnībā ar skaidru naudu nodrošināta nedēļas PUT-WRITING programma uz Deribit ETH opcijām — otrs vislikvīdākais kripto opciju bāzes aktīvs, atkārtoti izmantojot EXACT izpildes ceļu (strike izvēle caur grieķiem, nedēļas norēķins skaidrā naudā) no fabrikas Sharpe-12.2 paaugstinātā Deribit-BTC-nedēļas pārdošanas opcijas rakstīšanas risinājuma. Tas ir tīši izstrādāts, lai FIX vienu, atkārtoti diagnosticētu iemeslu, kāpēc ETH-nedēļas radniecīgais risinājums tika pārtraukts 8 iterācijās: tā IV-ranga + IV>RV dubultais filtrs pieprasīja ~560-dienu retrospektīvo logu, kas to samazināja līdz tikai 4 darījumiem / metrics_reliable=false — strukturāls strupceļš, ko izstrādātājs nekad nevarēja atrisināt. Šī versija DROPS garā retrospektīvā loga IV filtru pilnībā un patur ONLY tikai tendences filtru (filtrs, kas ir pierādīts kā nesošais paaugstinātajā BTC uzvarētājā), rakstot fiksētu ~25-delta OTM ETH pārdošanas opciju katrā atbilstošā nedēļā. Bez vairāku gadu IV-procentiles atkarības tas nostrādā ~40-52 reizes/gadā pieejamajā Deribit ETH nedēļas vēsturē → statistiski uzticams darījumu skaits, novēršot tieši 4-darījumu sienu. Tas aizpilda visnepieteicamāk pārstāvēto platformu (opcijas: 5.5% Deribit + 0.1% Binance pret ≥15% mērķi) un diversificē opciju portfeli no BTC-tikai uz otru nesakārīgas volatilitātes bāzes aktīvu. Tas NOT ir daudzkāju struktūra (L2), NOT ir datu norobežota šūna (nedēļas ETH ķēde + grieķi ir katalogizēti un pierādīti izpildāmi caur BTC radniecīgo), NOT virziena. Apzināti 2 parametri (pārdošanas opcijas delta, tendences filtra garums), lai izturētu pārmērīgu pielāgošanu.

Hipotēzes

Iterācija 3 labo Layer-3 sienas pulksteņa noildzi ar tikai konfigurācijas izmaiņu; stratēģija CODE ir nemainīga (tā jau izturēja Slāņus 1-2, darbs pa joslām ir O(1) caur inkrementālu skrejošo summu SMA, un nav katras joslas min()/sorted()/vēstures skenējumu). Diagnoze: iterācija 2 pareizi pārvietoja primāro+kājas izšķirtspēju uz 1-DAY, bet STILL noildzēja, kas pierāda, ka šaurā vieta nav joslu skaits. Lasot src/data/option_chain.py: discover_deribit_chain izdod tīkla fetch_ohlcv pieprasījumu katram kandidāta strikam no EACH nedēļas termiņa beigām, un Layer-3 smilškaste aptver lookback_days (expand_rolling_options / konveijera noklusējums 365). Tātad izvēršanas izmaksas mērogojas atkarībā no nedēļas termiņa beigu skaita = lookback_days, neatkarīgi no laika ietvara. Iter-2's konfigurācija nesa lookback_days ~730 (~104 termiņa beigas, dubultojot pieprasījumu skaitu), kas pārsniedza 300s budžetu. Atgriežot lookback_days uz 365 (~52 termiņa beigas), tiek uz pusi samazināti termiņa beigu pieprasījumi un kāju lejupielādes, atbilstot precīzi tādam mērogam, kādā pierādītie ETH/BTC nedēļas pārdošanas opcijas rakstīšanas radniecīgie iztur Slāni 3, vienlaikus joprojām nosedzot ~52 atbilstošas nedēļas, lai darījumu skaits paliek statistiski uzticams (~30-52 rakstīšanas pēc tendences filtrēšanas) un tālu virs 4-darījumu strupceļa. Viss pārējais ir saglabāts un pierādīts: tieša RollingOptionsStrategy apakšklase (Layer-1 to atpazīst; 4 abstraktie āķi ir fiziski klāt), bez ātrtesta ceļa (īstās opciju kājas tirgojas caur izvērsto grafiku, apmierinot options_no_option_trades), vienīgais cenu tendences filtrs _enter_leg, 1-DAY ETH-PERPETUAL primārais + 1-DAY kājas izšķirtspēja (tā izšķirtspēja, ko izmanto izturošais ETH pārdošanas opcijas rakstīšanas radniecīgais), ar skaidru naudu nodrošināta izmēru noteikšana (risk_frac 0.8, svira 1.0 saskaņā ar opciju platformas ierobežojumu), un 2-parametru dizains (pārdošanas opcijas nobīde + sma_window).

Hipotēzes

backtest_failed: RuntimeError: rolling_options izvēršana neizdevās (ConnectError: ); atsakās darbināt ar tukšu opciju grafiku Izsekošana (pēdējais izsaukums pēdējais): Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 101, funkcijā map_httpcore_exceptions yield Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 394, funkcijā handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", rinda 256, funkcijā handle_async_request raise exc from None Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", rinda 236, funkcijā handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", rinda 101, funkcijā handle_async_request raise exc Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", rinda 78, funkcijā handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", rinda 156, funkcijā _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", rinda 67, funkcijā start_tls with map_exceptions(exc_map): Datne "/usr/lib/python3.12/contextlib.py", rinda 158, funkcijā __exit__ self.gen.throw(value) Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", rinda 14, funkcijā map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Iepriekš minētais izņēmums bija tiešais nākamā izņēmuma cēlonis: Izsekošana (pēdējais izsaukums pēdējais): Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 49, funkcijā expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/option_chain.py", rinda 242, funkcijā expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/option_chain.py", rinda 143, funkcijā discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/collectors/deribit_collector.py", rinda 169, funkcijā fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/collectors/deribit_collector.py", rinda 86, funkcijā _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1768, funkcijā get return await self.request( ^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1540, funkcijā request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1629, funkcijā send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1657, funkcijā _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1694, funkcijā _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1730, funkcijā _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 393, funkcijā handle_async_request with map_httpcore_exceptions(): Datne "/usr/lib/python3.12/contextlib.py", rinda 158, funkcijā __exit__ self.gen.throw(value) Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 118, funkcijā map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Iepriekš minētais izņēmums bija tiešais nākamā izņēmuma cēlonis: Izsekošana (pēdējais izsaukums pēdējais): Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 184, funkcijā _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 427, funkcijā _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 59, funkcijā expand_rolling_options_into_config raise RuntimeError( RuntimeError: rolling_options izvēršana neizdevās (ConnectError: ); atsakās darbināt ar tukšu opciju grafiku

Implementācija

Viena kāja, ar skaidru naudu nodrošināta nedēļas OTM pārdošanas opciju rakstīšana uz ETH Deribit Eiropas opcijām, filtrēta tikai ar tendenci. Katru nedēļu ietvars atrisina vēsturisko Deribit ETH nedēļas pārdošanas opciju ķēdi (mērķējot uz ~25-delta OTM strike, izmantojot -6% cenas nobīdi) un to atjauno; stratēģija SELLS vienu pārdošanas opciju ~7 dienas līdz termiņa beigām un aizver to ~24h pirms norēķina. ONLY filtrs ir tikai cenu tendences filtrs: tā raksta pārdošanas opciju tikai tad, kad ETH spot cena ir virs tās ~50-dienu SMA (dienas joslas), izlaižot apstiprinātus lejupslīdes periodus. Bez vairāku gadu IV-procentiles loga tā tirgo katru atbilstošu nedēļu (~52/gadā pār 365-dienu logu) statistiski uzticamam darījumu skaitam, tieši novēršot 4-darījumu retrospektīvā loga sienu, kas pārtrauca IV-filtrēto ETH-nedēļas radniecīgo. Primārais = ETH-PERPETUAL.DERIBIT uz 1-DAY joslām (tikai atjaunošanas pulkstenis, nekad netirgo). Ar skaidru naudu nodrošināta izmēru noteikšana (risk_frac 0.8), bez sviras, 2 noregulēti parametri (pārdošanas opcijas nobīde, sma_window).

Verifikācijas rezultāti

CLEAN RESTART 2026-09-04 — šīs palaišanas slēdzienu vēsture un mācīšanās ieraksti tika noņemti, un tā tika restartēta no verifikācijas. Tās iepriekšējā pārtraukšana nāca no konveijera, nevis no tirgus: Layer-2 ietvars nepareizi sasaistīja @staticmethod palīgfunkcijas (labots), QA izdeva galīgos veiktspējas slēdzienus par neoptimizētu ārrtestu (noņemts — QA tagad vērtē tikai pareizību), un smilškastes noildzes nāca no atpakaļtestēšanas slotu resursu trūkuma (labots). Hipotēze un stratēģijas kods nav mainīti. Pārbaudiet kodu pēc nopelniem; veiktspēju vēlāk noteiks pilnā atpakaļtestēšana un optimizētājs.

Verifikācijas rezultāti

Nav nepieciešams.

Verifikācijas rezultāti

Layer-1 atzīmēja self._win.append() kā neierobežotu, bet on_bar apgriež deque katrā joslā (kamēr len > sma_window: popleft()), tāpēc pieaugums ir ierobežots līdz sma_window. Nepareizs pozitīvs rezultāts.

Iteration History

Verifikācija neizdevās (Slānis 3 — smilškastes atpakaļtestēšana): ātrtests pārsniedza 300s sienas pulksteņa limitu. Tas gandrīz vienmēr nozīmē darbu pa joslām, kas mērogojas atkarībā no vēstures — piemēram, atkārtota visas finansēšanas/papildu sērijas skenēšana, vai saraksta atjaunošana un min()/sorted() izsaukšana calculate_signal()/on_bar() iekšienē katrā joslā. Iepriekš aprēķiniet sakārtotas laika zīmogu masīvus ONCE __init__ un izmantojiet bisect, vai kešojiet meklēšanu pēc laika zīmoga, lai katras joslas izmaksas būtu O(log n), nevis O(n).

Iteration History

RuntimeError: rolling_options izvēršana neizdevās (ConnectError: ); atsakās darbināt ar tukšu opciju grafiku 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 Iepriekš minētā kļūda bija tiešais iemesls šādai kļūdai: 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 Iepriekš minētā kļūda bija tiešais iemesls šādai kļūdai: 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 izvēršana neizdevās (ConnectError: ); atsakās darbināt ar tukšu opciju grafiku

Atmešanas iemesls

backtest_failed: RuntimeError: rolling_options izvēršana neizdevās (ConnectError: ); atsakās darbināt ar tukšu opciju grafiku Izsekošana (pēdējais izsaukums pēdējais): Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 101, funkcijā map_httpcore_exceptions yield Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 394, funkcijā handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", rinda 256, funkcijā handle_async_request raise exc from None Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", rinda 236, funkcijā handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", rinda 101, funkcijā handle_async_request raise exc Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", rinda 78, funkcijā handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", rinda 156, funkcijā _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", rinda 67, funkcijā start_tls with map_exceptions(exc_map): Datne "/usr/lib/python3.12/contextlib.py", rinda 158, funkcijā __exit__ self.gen.throw(value) Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", rinda 14, funkcijā map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Iepriekš minētais izņēmums bija tiešais nākamā izņēmuma cēlonis: Izsekošana (pēdējais izsaukums pēdējais): Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 49, funkcijā expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/option_chain.py", rinda 242, funkcijā expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/option_chain.py", rinda 143, funkcijā discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/collectors/deribit_collector.py", rinda 169, funkcijā fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/data/collectors/deribit_collector.py", rinda 86, funkcijā _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1768, funkcijā get return await self.request( ^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1540, funkcijā request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1629, funkcijā send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1657, funkcijā _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1694, funkcijā _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", rinda 1730, funkcijā _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 393, funkcijā handle_async_request with map_httpcore_exceptions(): Datne "/usr/lib/python3.12/contextlib.py", rinda 158, funkcijā __exit__ self.gen.throw(value) Datne "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", rinda 118, funkcijā map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Iepriekš minētais izņēmums bija tiešais nākamā izņēmuma cēlonis: Izsekošana (pēdējais izsaukums pēdējais): Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 184, funkcijā _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 427, funkcijā _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Datne "/opt/strategy-factory/src/agents/backtest_agent.py", rinda 59, funkcijā expand_rolling_options_into_config raise RuntimeError( RuntimeError: rolling_options izvēršana neizdevās (ConnectError: ); atsakās darbināt ar tukšu opciju grafiku
Stratēģijas pārskats

Stratmill ir izpētes un papīra tirdzniecības rīks, nevis finanšu konsultācija vai brokeris. Atpakaļejošās testēšanas un papīra tirdzniecības rezultāti ir hipotētiski. Tirdzniecība ir saistīta ar zaudējumu risku.