Strategi
Deribit ETH Mingguan Put-Write OTM yang Dijamin Kas — Hanya Gerbang Tren, Delta Tetap ~25, Gerbang IV Lookback Panjang NO (Panen VRP Single-Leg; Memperbaiki Secara Langsung Tembok Lookback 4-Perdagangan yang Menghentikan Sibling Mingguan ETH)
Hasil: Ditinggalkan
DeribitEthWeeklyPutWriteTrendGatedOnly
Deribit ETH Mingguan Put-Write OTM yang Dijamin Kas — Hanya Gerbang Tren, Delta Tetap ~25, Gerbang IV Lookback Panjang NO (Panen VRP Single-Leg; Memperbaiki Secara Langsung Tembok Lookback 4-Perdagangan yang…
Hipotesis
Program SINGLE-LEG PUT-WRITING mingguan yang sepenuhnya dijamin kas pada opsi Deribit ETH — underlying opsi kripto paling likuid kedua, yang menggunakan kembali jalur eksekusi EXACT (pemilihan strike melalui greeks, penyelesaian tunai mingguan) dari put-write mingguan Deribit-BTC yang dipromosikan dengan Sharpe-12.2 milik factory. Program ini secara sengaja dirancang untuk FIX satu alasan yang berulang kali terdiagnosis yang menyebabkan sibling ETH-mingguan dihentikan lintas 8 iterasi: gerbang ganda IV-rank +……Tampilkan lebih banyakTampilkan lebih sedikit
Program SINGLE-LEG PUT-WRITING mingguan yang sepenuhnya dijamin kas pada opsi Deribit ETH — underlying opsi kripto paling likuid kedua, yang menggunakan kembali jalur eksekusi EXACT (pemilihan strike melalui greeks, penyelesaian tunai mingguan) dari put-write mingguan Deribit-BTC yang dipromosikan dengan Sharpe-12.2 milik factory. Program ini secara sengaja dirancang untuk FIX satu alasan yang berulang kali terdiagnosis yang menyebabkan sibling ETH-mingguan dihentikan lintas 8 iterasi: gerbang ganda IV-rank + IV>RV memerlukan lookback bergulir ~560 hari, yang memotongnya menjadi hanya 4 perdagangan / metrics_reliable=false — jalan buntu struktural yang tidak pernah bisa diatasi oleh developer. Versi ini DROPS gerbang lookback panjang IV sepenuhnya dan mempertahankan ONLY filter tren (gerbang yang terbukti memikul beban pada pemenang BTC yang dipromosikan), menulis satu put OTM ETH delta tetap ~25 setiap minggu yang memenuhi syarat. Tanpa dependensi persentil IV multi-tahun, program ini aktif ~40-52 kali/tahun sepanjang riwayat mingguan Deribit ETH yang tersedia → jumlah perdagangan yang andal secara statistik, yang menghilangkan tembok 4-perdagangan yang persis. Program ini mengisi venue yang paling kurang terwakili (opsi: 5.5% Deribit + 0.1% Binance vs target ≥15%) dan mendiversifikasi buku opsi dari hanya-BTC ke underlying kedua dengan volatilitas yang tidak berkorelasi. Program ini NOT struktur multi-leg (L2), NOT sel berdinding data (rantai ETH mingguan + greeks sudah dikatalogkan dan terbukti dapat dieksekusi melalui sibling BTC), NOT direksional. Parameter 2 secara sengaja (delta put, panjang filter tren) untuk menahan overfit.
Iterasi 3 memperbaiki timeout wall-clock Layer-3 dengan perubahan khusus konfigurasi; strategi CODE tidak berubah (ia sudah lulus Layer 1-2, pekerjaan per-bar adalah O(1) melalui running-sum inkremental SMA, dan tidak ada pemindaian min()/sorted()/riwayat per-bar). Diagnosis: iterasi 2 benar memindahkan resolusi primer+leg ke 1-DAY tetapi STILL mengalami timeout, yang membuktikan bottleneck bukanlah jumlah bar. Membaca src/data/option_chain.py: discover_deribit_chain mengeluarkan probe fetch_ohlcv jaringan untuk……Tampilkan lebih banyakTampilkan lebih sedikit
Iterasi 3 memperbaiki timeout wall-clock Layer-3 dengan perubahan khusus konfigurasi; strategi CODE tidak berubah (ia sudah lulus Layer 1-2, pekerjaan per-bar adalah O(1) melalui running-sum inkremental SMA, dan tidak ada pemindaian min()/sorted()/riwayat per-bar). Diagnosis: iterasi 2 benar memindahkan resolusi primer+leg ke 1-DAY tetapi STILL mengalami timeout, yang membuktikan bottleneck bukanlah jumlah bar. Membaca src/data/option_chain.py: discover_deribit_chain mengeluarkan probe fetch_ohlcv jaringan untuk setiap strike kandidat dari EACH jatuh tempo mingguan, dan sandbox Layer-3 mencakup lookback_days (expand_rolling_options / default pipeline 365). Jadi biaya ekspansi berskala mengikuti jumlah jatuh tempo mingguan = lookback_days, terlepas dari timeframe. Konfigurasi iter-2 membawa lookback_days ~730 (~104 jatuh tempo, menggandakan jumlah probe), yang melampaui anggaran 300 detik. Mengembalikan lookback_days ke 365 (~52 jatuh tempo) memotong setengah probe jatuh tempo dan unduhan leg, yang cocok dengan skala persis di mana sibling put-write mingguan ETH/BTC yang terbukti lulus Layer 3, sambil tetap mencakup ~52 minggu yang memenuhi syarat sehingga jumlah perdagangan tetap andal secara statistik (~30-52 penulisan setelah gerbang tren) dan jauh di atas jalan buntu 4-perdagangan. Segala hal lainnya terpelihara dan terbukti: subclassing RollingOptionsStrategy secara langsung (Layer-1 mengenalinya; hook abstrak 4 hadir secara fisik), tidak ada jalur smoke (leg opsi nyata berdagang melalui jadwal yang diperluas, memenuhi options_no_option_trades), satu gerbang tren berbasis harga saja di _enter_leg, resolusi primer 1-DAY ETH-PERPETUAL + leg 1-DAY (resolusi yang digunakan sibling put-write ETH yang lulus), ukuran yang dijamin kas (risk_frac 0.8, leverage 1.0 sesuai dengan batas venue opsi), dan desain 2-parameter (offset put + sma_window).
backtest_failed: RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak menjalankan dengan jadwal opsi kosong Jejak eksekusi (pemanggilan terakhir): Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Berkas "/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)……Tampilkan lebih banyakTampilkan lebih sedikit
backtest_failed: RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak menjalankan dengan jadwal opsi kosong Jejak eksekusi (pemanggilan terakhir): Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", baris 256, dalam handle_async_request raise exc from None Berkas "/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( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 101, dalam handle_async_request raise exc Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 78, dalam handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 156, dalam _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", baris 67, dalam start_tls with map_exceptions(exc_map): Berkas "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Berkas "/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 adalah penyebab langsung dari pengecualian berikut: Jejak eksekusi (pemanggilan terakhir): Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/src/data/option_chain.py", baris 242, dalam expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/src/data/collectors/deribit_collector.py", baris 169, dalam fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1768, dalam get return await self.request( ^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1629, dalam send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1657, dalam _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 393, dalam handle_async_request with map_httpcore_exceptions(): Berkas "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Berkas "/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 adalah penyebab langsung dari pengecualian berikut: Jejak eksekusi (pemanggilan terakhir): Berkas "/opt/strategy-factory/src/agents/backtest_agent.py", baris 184, dalam _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/src/agents/backtest_agent.py", baris 59, dalam expand_rolling_options_into_config raise RuntimeError( RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak menjalankan dengan jadwal opsi kosong
Implementasi
Penulisan put mingguan OTM single-leg yang dijamin kas pada opsi European Deribit ETH, hanya dengan gerbang tren. Setiap minggu framework menyelesaikan rantai put mingguan Deribit ETH historis (menargetkan strike OTM delta ~25 melalui offset moneyness -6%) dan menggulungnya; strategi SELLS satu put ~7 hari sebelum jatuh tempo dan menutupnya ~24 jam sebelum penyelesaian. Gerbang ONLY adalah filter tren berbasis harga saja: ia hanya menulis put ketika spot ETH berada di atas SMA-nya ~50 hari (bar harian), duduk di luar tren turun yang terkonfirmasi. Tanpa jendela persentil IV multi-tahun, strategi ini berdagang setiap minggu yang memenuhi syarat (~52/tahun sepanjang jendela 365 hari) untuk jumlah perdagangan yang andal secara statistik, yang secara langsung menghilangkan tembok lookback 4-perdagangan yang menghentikan sibling ETH-mingguan dengan gerbang IV. Primer = ETH-PERPETUAL.DERIBIT pada bar 1-DAY (hanya jam gulung, tidak pernah diperdagangkan). Ukuran yang dijamin kas (risk_frac 0.8), tanpa leverage, parameter yang 2 disetel (offset put, sma_window).
Hasil Verifikasi
CLEAN RESTART 2026-09-04 — riwayat putusan dan catatan pembelajaran untuk run ini dihapus dan dijalankan ulang dari verifikasi. Penghentian sebelumnya berasal dari pipeline, bukan dari pasar: harness Layer-2 salah mengikat helper @staticmethod (sudah diperbaiki), QA mengeluarkan putusan kinerja terminal pada smoke test yang belum dioptimasi (dihapus — QA sekarang hanya menilai kebenaran), dan timeout sandbox disebabkan oleh kehabisan slot backtest (sudah diperbaiki). Hipotesis dan kode strategi tidak berubah. Verifikasi kode berdasarkan kelebihannya; kinerja diputuskan kemudian oleh backtest penuh dan optimizer.
Tidak diperlukan.
Layer-1 menandai self._win.append() sebagai tidak terbatas, tetapi on_bar memangkas deque setiap bar (while len > sma_window: popleft()), sehingga pertumbuhan terbatas pada sma_window. Positif palsu.
Riwayat Iterasi
Verifikasi gagal (Layer 3 — sandbox backtest): smoke test melampaui batas waktu wall-clock 300 detik. Hal ini hampir selalu berarti pekerjaan per-bar yang berskala mengikuti riwayat — misalnya memindai ulang seluruh seri funding/supplementary secara penuh, atau membangun ulang sebuah list dan memanggil min()/sorted() di dalam calculate_signal()/on_bar() pada setiap bar. Hitung awal (precompute) array timestamp yang sudah diurutkan ONCE di __init__ dan gunakan bisect, atau cache lookup yang di-key oleh timestamp, sehingga biaya per-bar menjadi O(log n) bukan O(n).
RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak untuk berjalan dengan jadwal opsi kosong 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……Tampilkan lebih banyakTampilkan lebih sedikit
RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak untuk berjalan dengan jadwal opsi kosong 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 Pengecualian di atas adalah penyebab langsung dari pengecualian berikut: 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 Pengecualian di atas adalah penyebab langsung dari pengecualian berikut: 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: ekspansi rolling_options gagal (ConnectError: ); menolak untuk berjalan dengan jadwal opsi kosong
Alasan Dibatalkan
backtest_failed: RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak menjalankan dengan jadwal opsi kosong Jejak eksekusi (pemanggilan terakhir): Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Berkas "/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)……Tampilkan lebih banyakTampilkan lebih sedikit
backtest_failed: RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak menjalankan dengan jadwal opsi kosong Jejak eksekusi (pemanggilan terakhir): Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 101, dalam map_httpcore_exceptions yield Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", baris 256, dalam handle_async_request raise exc from None Berkas "/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( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 101, dalam handle_async_request raise exc Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 78, dalam handle_async_request stream = await self._connect(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", baris 156, dalam _connect stream = await stream.start_tls(**kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", baris 67, dalam start_tls with map_exceptions(exc_map): Berkas "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Berkas "/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 adalah penyebab langsung dari pengecualian berikut: Jejak eksekusi (pemanggilan terakhir): Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/src/data/option_chain.py", baris 242, dalam expand_rolling_options contracts = await discover_deribit_chain( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/src/data/collectors/deribit_collector.py", baris 169, dalam fetch_ohlcv result = await self._get("/public/get_tradingview_chart_data", { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1768, dalam get return await self.request( ^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1629, dalam send response = await self._send_handling_auth( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_client.py", baris 1657, dalam _send_handling_auth response = await self._send_handling_redirects( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", baris 393, dalam handle_async_request with map_httpcore_exceptions(): Berkas "/usr/lib/python3.12/contextlib.py", baris 158, dalam __exit__ self.gen.throw(value) Berkas "/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 adalah penyebab langsung dari pengecualian berikut: Jejak eksekusi (pemanggilan terakhir): Berkas "/opt/strategy-factory/src/agents/backtest_agent.py", baris 184, dalam _run_backtest config = await self._maybe_expand_rolling_options(config, catalog_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Berkas "/opt/strategy-factory/src/agents/backtest_agent.py", baris 59, dalam expand_rolling_options_into_config raise RuntimeError( RuntimeError: ekspansi rolling_options gagal (ConnectError: ); menolak menjalankan dengan jadwal opsi kosong
Stratmill adalah alat riset dan paper trading, bukan nasihat keuangan atau broker. Hasil backtest dan paper trading bersifat hipotetis. Trading mengandung risiko kerugian.