İçeriğe geç

Orijinali görüntüle

DeribitEthWeeklyPutWriteTrendGatedOnly

Hipotezler

Deribit ETH Haftalık Nakit Teminatlı OTM Put-Write — Yalnızca Trend Kapılı, Sabit ~25-Delta, NO Uzun-Lookback IV Kapısı (Tek Bacaklı VRP Hasadı; ETH-Haftalık Kardeşi Terk Ettiren 4-İşlem Lookback Duvarını Doğrudan Düzeltir)

Hipotezler

Deribit ETH opsiyonları üzerinde SINGLE-LEG, tamamen nakit teminatlı haftalık PUT-WRITING programı — en likit ikinci kripto opsiyon dayanak varlığı; factory'nin Sharpe-12.2 ile terfi ettirdiği Deribit-BTC-haftalık put-write'ın EXACT işlem yolunu (greeks üzerinden strike seçimi, haftalık nakit uzlaşma) yeniden kullanıyor. ETH-haftalık kardeşin 8 iterasyon boyunca terk edilmesine yol açan, tekrar tekrar teşhis edilmiş tek nedeni FIX için kasıtlı olarak tasarlandı: IV-sıra + IV>RV çift kapısı ~560 günlük hareketli bir lookback gerektiriyordu, bu da onu yalnızca 4 işleme / metrics_reliable=false düzeyine indiriyordu — geliştiricinin asla çözemediği yapısal bir çıkmaz. Bu sürüm uzun-lookback IV kapısını DROPS tamamen ortadan kaldırıyor ve trend filtresini (BTC kazananında yük taşıdığı kanıtlanmış kapı) ONLY koruyarak, uygun her hafta sabit ~25-delta OTM ETH put yazıyor. Çok yıllı IV-yüzdelik bağımlılığı olmadan, mevcut Deribit ETH haftalık geçmişi boyunca yılda ~40-52 kez tetikleniyor → istatistiksel olarak güvenilir bir işlem sayısı sağlıyor ve tam olarak 4-işlem duvarını ortadan kaldırıyor. En az temsil edilen venue'yu (opsiyonlar: 5.5% Deribit + 0.1% Binance, ≥15% hedefine karşı) dolduruyor ve opsiyon defterini yalnızca BTC'dan, korelasyonsuz ikinci bir volatilite dayanak varlığına çeşitlendiriyor. NOT çok bacaklı bir yapıdır (L2), NOT veri açısından duvarlı bir hücredir (haftalık ETH zinciri + greeks kataloglanmış ve BTC kardeş strateji üzerinden çalıştırılabilirliği kanıtlanmış), NOT yönlüdür. Aşırı uyumu önlemek için parametreler (put deltası, trend-filtresi uzunluğu) kasıtlı olarak 2.

Hipotezler

İterasyon 3, Layer-3 gerçek zamanlı (wall-clock) zaman aşımını yalnızca konfigürasyon değişikliğiyle düzeltir; strateji CODE değişmemiştir (zaten Layer 1-2'ü geçmişti, bar-başına iş artımlı bir running-sum SMA üzerinden O(1)'dır ve bar-başına min()/sorted()/geçmiş taraması yoktur). Teşhis: iterasyon 2, primary+leg çözümlemesini doğru şekilde 1-DAY'e taşıdı ancak STILL zaman aşımına uğradı; bu da darboğazın bar sayısı olmadığını kanıtlar. src/data/option_chain.py dosyasını okuduğumuzda: discover_deribit_chain, EACH haftalık vadenin her aday strike'ı için bir ağ fetch_ohlcv sorgusu (probe) gönderiyor ve Layer-3 sandbox'ı lookback_days'i (expand_rolling_options / pipeline varsayılanı 365) kapsıyor. Yani genişletme maliyeti, zaman diliminden bağımsız olarak haftalık vade sayısı = lookback_days ile ölçekleniyor. iter-2'un konfigürasyonu lookback_days ~730 taşıyordu (~104 vade, sorgu sayısını ikiye katlıyordu), bu da 300s bütçesini aştı. lookback_days'ü 365'e geri döndürmek (~52 vade) vade sorgularını ve leg indirmelerini yarıya indiriyor; bu da kanıtlanmış ETH/BTC haftalık put-write kardeşlerinin Layer 3'i geçtiği tam ölçekle eşleşiyor, aynı zamanda hâlâ ~52 uygun haftayı kapsayarak işlem sayısının istatistiksel olarak güvenilir kalmasını (trend kapısından sonra ~30-52 yazım) ve 4-işlem çıkmazının çok üzerinde kalmasını sağlıyor. Geri kalan her şey korunmuş ve kanıtlanmıştır: RollingOptionsStrategy'den doğrudan alt sınıflama (Layer-1 bunu tanıyor; 4 soyut hook'ları fiziksel olarak mevcut), smoke yolu yok (gerçek opsiyon legleri genişletilmiş program üzerinden işlem görüyor, options_no_option_trades'ü karşılıyor), _enter_leg içindeki tek fiyata dayalı trend kapısı, 1-DAY ETH-PERPETUAL primary + 1-DAY leg çözümlemesi (geçen ETH put-write kardeşinin kullandığı çözümleme), nakit teminatlı boyutlandırma (risk_frac 0.8, kaldıraç 1.0, opsiyon venue üst sınırına göre) ve 2-parametreli tasarım (put ofseti + sma_window).

Hipotezler

backtest_failed: RuntimeError: rolling_options genişletme işlemi başarısız oldu (ConnectError: ); boş bir opsiyon programıyla çalıştırma reddediliyor 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 Yukarıdaki istisna, aşağıdaki istisnanın doğrudan nedeniydi: 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 Yukarıdaki istisna, aşağıdaki istisnanın doğrudan nedeniydi: 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 genişletme işlemi başarısız oldu (ConnectError: ); boş bir opsiyon programıyla çalıştırma reddediliyor

Uygulama

ETH Deribit Avrupa tipi opsiyonlar üzerinde tek bacaklı, nakit teminatlı haftalık OTM put yazımı, yalnızca trend kapılı. Framework her hafta geçmiş Deribit ETH haftalık put zincirini çözümler (-6% moneyness ofseti üzerinden ~25-delta OTM strike'ı hedefleyerek) ve onu yuvarlar (roll); strateji vadeye ~7 gün kala bir put SELLS ve uzlaşmadan ~24 saat önce kapatır. ONLY kapısı yalnızca fiyata dayalı bir trend filtresidir: put'u yalnızca ETH spot fiyatı ~50 günlük SMA üzerindeyken (günlük barlar) yazar; doğrulanmış düşüş trendlerinde işlem yapmaz. Çok yıllı IV-yüzdelik penceresi olmadığından, uygun her hafta işlem yapar (365 günlük pencerede yılda ~52), bu da istatistiksel olarak güvenilir bir işlem sayısı sağlayarak IV-kapılı ETH-haftalık kardeşi terk ettiren 4-işlem lookback duvarını doğrudan ortadan kaldırır. Primary = 1-DAY barlarda ETH-PERPETUAL.DERIBIT (yalnızca roll saati, asla işlem görmez). Nakit teminatlı boyutlandırma (risk_frac 0.8), kaldıraç yok, 2 ayarlanmış parametreler (put ofseti, sma_window).

Doğrulama Sonuçları

CLEAN RESTART 2026-09-04 — bu çalıştırmanın karar geçmişi ve öğrenme kayıtları kaldırıldı ve doğrulama aşamasından yeniden başlatıldı. Önceki terk edilişi piyasadan değil, pipeline'dan kaynaklandı: Layer-2 test düzeneği @staticmethod yardımcı fonksiyonlarını yanlış bağlıyordu (düzeltildi), QA optimize edilmemiş bir smoke testinde nihai performans kararları veriyordu (kaldırıldı — QA artık yalnızca doğruluğu değerlendiriyor) ve sandbox zaman aşımları backtest-slot açlığından kaynaklanıyordu (düzeltildi). Hipotez ve strateji kodu değişmedi. Kodu kendi esasına göre doğrulayın; performans daha sonra tam backtest ve optimizer tarafından belirlenecek.

Doğrulama Sonuçları

Gerekli değil.

Doğrulama Sonuçları

Layer-1, self._win.append()'i sınırsız (unbounded) olarak işaretledi, ancak on_bar her barda deque'yi kırpıyor (while len > sma_window: popleft()), bu yüzden büyüme sma_window ile sınırlıdır. Yanlış pozitif.

Iteration History

Doğrulama başarısız oldu (Layer 3 — sandbox backtest): smoke test 300s gerçek zamanlı (wall-clock) sınırını aştı. Bu neredeyse her zaman geçmişle ölçeklenen bar-başına iş anlamına gelir — örneğin tam funding/ek seriyi yeniden taramak veya her barda calculate_signal()/on_bar() içinde bir liste yeniden oluşturup min()/sorted() çağırmak. Sıralanmış zaman damgası dizilerini ONCE __init__ içinde önceden hesaplayın ve bisect kullanın, ya da zaman damgasına göre anahtarlanmış lookup'ları önbelleğe alın; böylece bar-başına maliyet O(n) değil O(log n) olur.

Iteration History

RuntimeError: rolling_options genişletme işlemi başarısız oldu (ConnectError: ); boş bir opsiyon programıyla çalıştırma reddediliyor 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 genişletme işlemi başarısız oldu (ConnectError: ); boş bir opsiyon programıyla çalıştırma reddediliyor

Vazgeçme Nedeni

backtest_failed: RuntimeError: rolling_options genişletme işlemi başarısız oldu (ConnectError: ); boş bir opsiyon programıyla çalıştırma reddediliyor 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 Yukarıdaki istisna, aşağıdaki istisnanın doğrudan nedeniydi: 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 Yukarıdaki istisna, aşağıdaki istisnanın doğrudan nedeniydi: 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 genişletme işlemi başarısız oldu (ConnectError: ); boş bir opsiyon programıyla çalıştırma reddediliyor
Strateji raporu

Stratmill bir araştırma ve kağıt üzerinde işlem (paper trading) aracıdır; finansal danışmanlık veya aracı kurum değildir. Geriye dönük test ve kağıt üzerinde işlem sonuçları varsayımsaldır. İşlem yapmak kayıp riski taşır.