Přeskočit na obsah

Zobrazit originál

DeribitEthWeeklyPutWriteTrendGatedOnly

Hypotézy

Deribit ETH Weekly Cash-Secured OTM Put-Write — pouze trendová brána, pevná ~25-delta, NO dlouhé zpětné okno brány IV (Single-Leg VRP Harvest; přímo řeší zeď 4 obchodů zpětného okna, která vedla k opuštění sourozence ETH-weekly)

Hypotézy

SINGLE-LEG, plně hotovostně kolateralizovaný týdenní PUT-WRITING program na opcích Deribit ETH — druhé nejlikvidnější podkladové aktivum pro kryptoopce, znovu využívající exekuční cestu EXACT (výběr strike přes greeks, týdenní hotovostní vypořádání) z faktory Sharpe-12.2 povýšeného Deribit-BTC-weekly put-write. Je záměrně navržena tak, aby FIX jediný, opakovaně diagnostikovaný důvod, proč byl ETH-weekly sourozenec opuštěn napříč 8 iteracemi: jeho dvojitá brána IV-rank + IV>RV vyžadovala ~560denní klouzavé okno zpětného pohledu, což ji omezilo na pouhých 4 obchodů / metrics_reliable=false — strukturální slepou uličku, kterou vývojář nikdy nedokázal vyřešit. Tato verze DROPS zcela vyřazuje dlouhodobou bránu IV se zpětným okny a zachovává ONLY trendový filtr (bránu, která se v povýšeném vítězi BTC prokázala jako nosná), a píše pevný ~25-delta OTM ETH put každý způsobilý týden. Bez víceleté závislosti na percentilu IV se aktivuje ~40-52krát ročně v dostupné historii Deribit ETH weekly → statisticky spolehlivý počet obchodů, čímž eliminuje přesně tu zeď 4 obchodů. Vyplňuje nejvíce nedostatečně zastoupené místo obchodování (opce: 5.5% Deribit + 0.1% Binance vůči cíli ≥15%) a diverzifikuje portfolio opcí z BTC-only na druhé nekorelované podkladové aktivum volatility. Je NOT vícenohou strukturou (L2), NOT datově uzavřenou buňkou (týdenní řetězec ETH + greeks jsou katalogizovány a prokazatelně proveditelné prostřednictvím sourozence BTC), NOT směrová. Záměrně 2 parametry (delta putu, délka trendového filtru) pro odolnost vůči overfittingu.

Hypotézy

Iterace 3 opravuje časový limit reálného času Layer-3 pouze změnou konfigurace; kód strategie CODE zůstává beze změny (již prošel vrstvami 1-2, práce na jeden bar je O(1) prostřednictvím inkrementálního běžícího součtu SMA a neexistují žádné skeny min()/sorted()/historie na jeden bar). Diagnóza: iterace 2 správně přesunula rozlišení primárního + leg na 1-DAY, ale STILL přesto vypršel časový limit, což dokazuje, že úzkým hrdlem není počet barů. Při čtení src/data/option_chain.py: discover_deribit_chain vydává síťový fetch_ohlcv probe pro každý kandidátský strike každé EACH týdenní expirace, a sandbox Layer-3 pokrývá lookback_days (expand_rolling_options / výchozí hodnota pipeline 365). Náklady na expanzi se tedy škálují s počtem týdenních expirací = lookback_days, bez ohledu na časový rámec. Konfigurace iterace -2 nesla lookback_days ~730 (~104 expirací, což zdvojnásobilo počet probe), což překročilo rozpočet 300s. Návrat lookback_days na 365 (~52 expirací) sníží na polovinu počet probe expirací a stahování legů, což odpovídá přesně té škále, při které osvědčení sourozenci ETH/BTC weekly put-write projdou Layer 3, přičemž stále pokrývá ~52 způsobilých týdnů, takže počet obchodů zůstává statisticky spolehlivý (~30-52 zápisů po trendové bráně) a daleko nad slepou uličkou 4 obchodů. Vše ostatní je zachováno a osvědčeno: přímé podtřídění RollingOptionsStrategy (Layer-1 jej rozpoznává; abstraktní hooky 4 jsou fyzicky přítomné), žádná smoke cesta (skutečné opční nohy se obchodují prostřednictvím rozšířeného rozvrhu, což splňuje options_no_option_trades), jediná cenová trendová brána v _enter_leg, rozlišení primárního + legu 1-DAY ETH-PERPETUAL + 1-DAY (rozlišení, které používá procházející sourozenec ETH put-write), hotovostně zajištěná velikost pozice (risk_frac 0.8, páka 1.0 dle limitu opčního obchodního místa), a design s 2 parametry (offset putu + sma_window).

Hypotézy

backtest_failed: RuntimeError: rozšíření rolling_options selhalo (ConnectError: ); odmítám spustit s prázdným harmonogramem opcí 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 Výše uvedená výjimka byla přímou příčinou následující výjimky: 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 Výše uvedená výjimka byla přímou příčinou následující výjimky: 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 expansion failed (ConnectError: ); refusing to run with an empty option schedule

Implementace

Jednonohý, hotovostně zajištěný týdenní OTM put-writing na evropských opcích ETH Deribit, pouze s trendovou branou. Každý týden framework vyhodnotí historický týdenní put řetězec Deribit ETH (cílí na ~25-delta OTM strike prostřednictvím offsetu moneyness -6%) a rolluje jej; strategie SELLS jeden put ~7 dní před expirací a uzavírá jej ~24h před vypořádáním. Brána ONLY je cenový trendový filtr: put píše pouze tehdy, když je spot ETH nad svým ~50denním SMA (denní bary), a vynechává potvrzené downtrendy. Bez víceletého okna percentilu IV obchoduje každý způsobilý týden (~52/rok v okně 365 dní) pro statisticky spolehlivý počet obchodů, čímž přímo eliminuje zeď 4 obchodů zpětného okna, která vedla k opuštění sourozence IV-gated ETH-weekly. Primární = ETH-PERPETUAL.DERIBIT na barech 1-DAY (pouze hodiny rollu, nikdy se neobchoduje). Hotovostně zajištěná velikost pozice (risk_frac 0.8), bez pákového efektu, 2 vyladěné parametry (offset putu, sma_window).

Výsledky ověření

CLEAN RESTART 2026-09-04 — historie verdiktů a záznamy učení tohoto běhu byly odstraněny a byl restartován od ověřování. Jeho předchozí opuštění bylo způsobeno pipeline, nikoli trhem: harness Layer-2 nesprávně napojil pomocné funkce @staticmethod (opraveno), QA vydával konečné verdikty o výkonnosti na neoptimalizovaném smoke testu (odstraněno — QA nyní posuzuje pouze správnost), a časové limity v sandboxu byly způsobeny hladověním backtest slotů (opraveno). Hypotéza a kód strategie zůstávají beze změny. Ověřte kód na základě jeho vlastních kvalit; výkonnost bude rozhodnuta později pomocí plného backtestu a optimalizátoru.

Výsledky ověření

Není potřeba.

Výsledky ověření

Layer-1 označil self._win.append() jako neomezený, ale on_bar ořezává deque na každém baru (while len > sma_window: popleft()), takže růst je omezen na sma_window. Falešně pozitivní nález.

Iteration History

Ověření selhalo (Layer 3 — sandboxový backtest): smoke test překročil limit reálného času 300s. To téměř vždy znamená práci na jeden bar, která se škáluje s historií — např. opětovné prohledávání celé řady funding/doplňkových dat, nebo znovuvytváření seznamu a volání min()/sorted() uvnitř calculate_signal()/on_bar() na každém baru. Předpočítejte seřazená pole časových značek ONCE v __init__ a použijte bisect, nebo cachujte vyhledávání klíčovaná časovou značkou, aby náklady na jeden bar byly O(log n), nikoli O(n).

Iteration History

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

Důvod zavržení

backtest_failed: RuntimeError: rozšíření rolling_options selhalo (ConnectError: ); odmítám spustit s prázdným harmonogramem opcí 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 Výše uvedená výjimka byla přímou příčinou následující výjimky: 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 Výše uvedená výjimka byla přímou příčinou následující výjimky: 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 expansion failed (ConnectError: ); refusing to run with an empty option schedule
Zpráva o strategii

Stratmill je nástroj pro výzkum a paper trading, nikoli finanční poradenství ani broker. Výsledky backtestů a paper tradingu jsou hypotetické. Obchodování je spojeno s rizikem ztráty.