Strategi
Put-Write OTM Bercagaran-Tunai Mingguan Deribit ETH — Hanya Berpintu-Trend, ~25-Delta Tetap, NO Pintu IV Lookback Panjang (Penuaian VRP Satu-Kaki; Membetulkan Secara Langsung Dinding Lookback 4-Dagangan Yang Menggugurkan Sibling Mingguan ETH)
Hasil: Ditinggalkan
DeribitEthWeeklyPutWriteTrendGatedOnly
Put-Write OTM Bercagaran-Tunai Mingguan Deribit ETH — Hanya Berpintu-Trend, ~25-Delta Tetap, NO Pintu IV Lookback Panjang (Penuaian VRP Satu-Kaki; Membetulkan Secara Langsung Dinding Lookback 4-Dagangan Yang…
Hipotesis
Sebuah SINGLE-LEG, program PUT-WRITING mingguan bercagaran tunai sepenuhnya pada opsyen ETH Deribit — pendasar opsyen kripto kedua paling cair, menggunakan semula laluan pelaksanaan EXACT (pemilihan strike melalui greeks, penyelesaian tunai mingguan) daripada put-write mingguan Deribit-BTC yang dipromosi Sharpe-12.2 oleh factory. Ia direka secara sengaja untuk FIX satu sebab yang berulang kali didiagnosis mengapa sibling ETH-mingguan digugurkan merentasi 8 lelaran: dwi-pintu IV-rank + IV>RV memerlukannya……Tunjuk lagiTunjuk kurang
Sebuah SINGLE-LEG, program PUT-WRITING mingguan bercagaran tunai sepenuhnya pada opsyen ETH Deribit — pendasar opsyen kripto kedua paling cair, menggunakan semula laluan pelaksanaan EXACT (pemilihan strike melalui greeks, penyelesaian tunai mingguan) daripada put-write mingguan Deribit-BTC yang dipromosi Sharpe-12.2 oleh factory. Ia direka secara sengaja untuk FIX satu sebab yang berulang kali didiagnosis mengapa sibling ETH-mingguan digugurkan merentasi 8 lelaran: dwi-pintu IV-rank + IV>RV memerlukannya ~560-hari rolling lookback, yang mengurangkannya kepada hanya 4 dagangan / metrics_reliable=false — jalan buntu struktur yang tidak pernah dapat diselesaikan oleh pembangun. Versi ini DROPS pintu IV lookback panjang sepenuhnya dan mengekalkan ONLY penapis trend (pintu yang terbukti menanggung beban dalam pemenang BTC yang dipromosi), menulis put OTM ETH ~25-delta tetap setiap minggu yang layak. Tanpa kebergantungan IV-persentil berbilang tahun, ia mencetus ~40-52 kali/tahun sepanjang sejarah mingguan Deribit ETH yang tersedia → jumlah dagangan yang boleh dipercayai secara statistik, menghapuskan dinding 4-dagangan yang tepat. Ia mengisi venue paling kurang diwakili (opsyen: 5.5% Deribit + 0.1% Binance berbanding sasaran ≥15%) dan mempelbagaikan buku opsyen daripada BTC-sahaja kepada pendasar vol kedua yang tidak berkorelasi. Ia NOT struktur multi-leg (L2), NOT sel berdinding data (rantaian ETH mingguan + greeks dikatalogkan dan terbukti boleh dilaksanakan melalui sibling BTC), NOT berarah. Dengan sengaja 2 parameter (put delta, panjang penapis-trend) untuk menentang overfit.
Lelaran 3 membetulkan had masa dinding Layer-3 dengan perubahan konfigurasi sahaja; CODE strategi tidak berubah (ia telah pun lulus Layers 1-2, kerja setiap bar ialah O(1) melalui SMA jumlah berjalan inkremental, dan tiada imbasan sejarah/min()/sorted() setiap bar). Diagnosis: lelaran 2 memindahkan resolusi utama+kaki dengan betul ke 1-DAY, tetapi STILL tamat masa, yang membuktikan kesesakan bukan berpunca daripada bilangan bar. Pembacaan src/data/option_chain.py: discover_deribit_chain membuat probe rangkaian……Tunjuk lagiTunjuk kurang
Lelaran 3 membetulkan had masa dinding Layer-3 dengan perubahan konfigurasi sahaja; CODE strategi tidak berubah (ia telah pun lulus Layers 1-2, kerja setiap bar ialah O(1) melalui SMA jumlah berjalan inkremental, dan tiada imbasan sejarah/min()/sorted() setiap bar). Diagnosis: lelaran 2 memindahkan resolusi utama+kaki dengan betul ke 1-DAY, tetapi STILL tamat masa, yang membuktikan kesesakan bukan berpunca daripada bilangan bar. Pembacaan src/data/option_chain.py: discover_deribit_chain membuat probe rangkaian fetch_ohlcv bagi setiap harga laksana calon untuk luput mingguan EACH, dan kotak pasir Layer-3 meliputi lookback_days (expand_rolling_options / lalai saluran paip 365). Maka kos pengembangan meningkat mengikut bilangan luput mingguan = lookback_days, tanpa mengira jangka masa. Konfigurasi iter-2 membawa lookback_days kira-kira 730 (kira-kira 104 luput, menggandakan bilangan probe), yang melebihi bajet 300s. Mengembalikan lookback_days kepada 365 (kira-kira 52 luput) mengurangkan separuh probe luput dan muat turun kaki, sepadan dengan skala tepat yang membolehkan adik-beradik strategi jual-tulis put mingguan ETH/BTC yang terbukti melepasi Layer 3, sambil masih meliputi kira-kira 52 minggu yang layak supaya jumlah dagangan kekal boleh dipercayai secara statistik (kira-kira 30-52 jualan selepas penapisan arah aliran) dan jauh melebihi jalan buntu 4 dagangan. Segala-galanya yang lain dikekalkan dan terbukti: mewarisi terus daripada RollingOptionsStrategy (Layer-1 mengenalinya; cangkuk abstrak 4 tersedia secara fizikal), tiada laluan ujian asap (kaki opsyen sebenar didagangkan melalui jadual yang diperluas, memenuhi options_no_option_trades), satu-satunya gerbang arah aliran berasaskan harga dalam _enter_leg, resolusi utama 1-DAY ETH-PERPETUAL + resolusi kaki 1-DAY (resolusi yang digunakan oleh adik-beradik strategi jual-tulis put ETH yang lulus), saiz bercagar tunai (risk_frac 0.8, leveraj 1.0 mengikut had venue opsyen), dan reka bentuk 2 parameter (ofset put + sma_window).
backtest_failed: RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan dijalankan dengan jadual opsyen yang kosong Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 394, dalam handle_async_request resp = await self._pool.handle_async_request(req)……Tunjuk lagiTunjuk kurang
backtest_failed: RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan dijalankan dengan jadual opsyen yang kosong Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 394, dalam handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", baris 256, dalam handle_async_request raise exc from None Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", baris 236, dalam handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 101, dalam handle_async_request raise exc Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 78, dalam handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 156, dalam _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", baris 67, dalam start_tls with map_exceptions(exc_map): Fail "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", baris 14, dalam map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Pengecualian di atas ialah punca langsung bagi pengecualian berikut: Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 49, dalam expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/option_chain.py", baris 242, dalam expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/option_chain.py", baris 143, dalam discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/collectors/deribit_collector.py", baris 169, dalam fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/collectors/deribit_collector.py", baris 86, dalam _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1768, dalam get return await self.request( ^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1540, dalam request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1629, dalam send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1657, dalam _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1694, dalam _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1730, dalam _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 393, dalam handle_async_request with map_httpcore_exceptions(): Fail "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 118, dalam map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Pengecualian di atas ialah punca langsung bagi pengecualian berikut: Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 184, dalam _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 427, dalam _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 59, dalam expand_rolling_options_into_config raise RuntimeError( RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan dijalankan dengan jadual opsyen yang kosong
Pelaksanaan
Penulisan put OTM mingguan bercagaran tunai satu-kaki pada opsyen Eropah Deribit ETH, hanya berpintu-trend. Setiap minggu rangka kerja merungkai rantaian put mingguan Deribit ETH bersejarah (mensasarkan strike OTM ~25-delta melalui offset moneyness -6%) dan menggulungnya; strategi SELLS satu put ~7 hari sehingga luput dan menutupnya ~24j sebelum penyelesaian. Pintu ONLY ialah penapis trend harga-sahaja: ia menulis put hanya apabila spot ETH berada di atas SMA ~50-hari (bar harian), mengelak aliran menurun yang disahkan. Tanpa tetingkap IV-persentil berbilang tahun ia berdagang setiap minggu yang layak (~52/thn sepanjang tetingkap 365-hari) untuk jumlah dagangan yang boleh dipercayai secara statistik, menghapuskan secara langsung dinding lookback 4-dagangan yang menggugurkan sibling mingguan ETH berpintu IV. Primer = ETH-PERPETUAL.DERIBIT pada bar 1-DAY (jam roll sahaja, tidak pernah didagangkan). Saiz bercagaran tunai (risk_frac 0.8), tiada leveraj, 2 parameter ditala (put offset, sma_window).
Keputusan Pengesahan
CLEAN RESTART 2026-09-04 — sejarah verdict dan rekod pembelajaran larian ini telah dialih keluar dan ia dimulakan semula daripada pengesahan. Pengabaian sebelumnya berpunca daripada pipeline, bukan daripada pasaran: harness Layer-2 tersalah ikat pembantu @staticmethod (telah dibetulkan), QA mengeluarkan verdict prestasi muktamad ke atas ujian smoke yang tidak dioptimumkan (telah dialih keluar — QA kini menilai ketepatan sahaja), dan tamat masa sandbox berpunca daripada kebuluran slot backtest (telah dibetulkan). Hipotesis dan kod strategi tidak berubah. Sahkan kod berdasarkan meritnya; prestasi ditentukan kemudian oleh backtest penuh dan pengoptimum.
Tidak diperlukan.
Layer-1 menandakan self._win.append() sebagai tidak terhad, tetapi on_bar memang memangkas deque pada setiap bar (while len > sma_window: popleft()), jadi pertumbuhan dihadkan kepada sma_window. Positif palsu.
Sejarah Lelaran
Pengesahan gagal (Layer 3 — backtest sandbox): ujian smoke melebihi had masa wall-clock 300s. Ini hampir selalu bermakna kerja setiap-bar yang berskala dengan sejarah — cth. mengimbas semula keseluruhan siri funding/supplementary, atau membina semula senarai dan memanggil min()/sorted() di dalam calculate_signal()/on_bar() pada setiap bar. Prakira tatasusunan timestamp yang diisih ONCE dalam __init__ dan gunakan bisect, atau cache carian yang dikunci oleh timestamp, supaya kos setiap-bar ialah O(log n) bukan O(n).
RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan berjalan dengan jadual opsyen kosong Traceback (panggilan terakhir): 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……Tunjuk lagiTunjuk kurang
RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan berjalan dengan jadual opsyen kosong Traceback (panggilan terakhir): 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 Pengecualian di atas berpunca secara langsung daripada pengecualian berikut: Traceback (panggilan terakhir): 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 Pengecualian di atas berpunca secara langsung daripada pengecualian berikut: Traceback (panggilan terakhir): 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: pengembangan rolling_options gagal (ConnectError: ); enggan berjalan dengan jadual opsyen kosong
Sebab Ditinggalkan
backtest_failed: RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan dijalankan dengan jadual opsyen yang kosong Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 394, dalam handle_async_request resp = await self._pool.handle_async_request(req)……Tunjuk lagiTunjuk kurang
backtest_failed: RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan dijalankan dengan jadual opsyen yang kosong Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 394, dalam handle_async_request resp = await self._pool.handle_async_request(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", baris 256, dalam handle_async_request raise exc from None Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", baris 236, dalam handle_async_request response = await connection.handle_async_request( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 101, dalam handle_async_request raise exc Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 78, dalam handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 156, dalam _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", baris 67, dalam start_tls with map_exceptions(exc_map): Fail "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", baris 14, dalam map_exceptions raise to_exc(exc) from exc httpcore.ConnectError Pengecualian di atas ialah punca langsung bagi pengecualian berikut: Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 49, dalam expand_rolling_options_into_config extra_i, extra_bt, sched = await expand_rolling_options(collector, spec, start, end) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/option_chain.py", baris 242, dalam expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/option_chain.py", baris 143, dalam discover_deribit_chain perp_bars = await collector.fetch_ohlcv(perp, start_ms, end_ms, "1D") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/collectors/deribit_collector.py", baris 169, dalam fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/data/collectors/deribit_collector.py", baris 86, dalam _get response = await self._client.get(f"{DERIBIT_API_URL}{endpoint}", params=params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1768, dalam get return await self.request( ^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1540, dalam request return await self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1629, dalam send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1657, dalam _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1694, dalam _send_handling_redirects response = await self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1730, dalam _send_single_request response = await transport.handle_async_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 393, dalam handle_async_request with map_httpcore_exceptions(): Fail "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Fail "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 118, dalam map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError Pengecualian di atas ialah punca langsung bagi pengecualian berikut: Jejak balik (panggilan terkini terakhir): Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 184, dalam _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 427, dalam _maybe_expand_rolling_options config = await expand_rolling_options_into_config(config, catalog_path, self._logger) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Fail "/opt/strategy-factory/src/agents/backtest_agent.py", baris 59, dalam expand_rolling_options_into_config raise RuntimeError( RuntimeError: pengembangan rolling_options gagal (ConnectError: ); enggan dijalankan dengan jadual opsyen yang kosong
Stratmill ialah alat penyelidikan dan dagangan kertas, bukan nasihat kewangan atau broker. Keputusan ujian belakang dan dagangan kertas adalah bersifat hipotesis. Perdagangan melibatkan risiko kerugian.