DeribitEthWeeklyPutWriteTrendGatedOnly
परिकल्पनाएँ
Deribit ETH साप्ताहिक नकद-प्रतिभूतित OTM पुट-राइट — केवल ट्रेंड-गेटेड, निश्चित ~25-डेल्टा, NO लंबी-लुकबैक IV गेट (सिंगल-लेग VRP हार्वेस्ट; सीधे 4-ट्रेडों की लुकबैक दीवार को ठीक करता है जिसने ETH-साप्ताहिक सहोदर को परित्यक्त किया था)
परिकल्पनाएँ
Deribit ETH ऑप्शंस पर एक SINGLE-LEG, पूर्णतः नकद-संपार्श्वित साप्ताहिक PUT-WRITING कार्यक्रम — दूसरा सबसे तरल क्रिप्टो ऑप्शंस अंतर्निहित, फैक्ट्री के Sharpe-12.2 प्रमोटित Deribit-BTC-साप्ताहिक पुट-राइट के EXACT निष्पादन पथ का पुनः उपयोग करते हुए (ग्रीक्स के माध्यम से स्ट्राइक चयन, साप्ताहिक नकद निपटान)। इसे जानबूझकर FIX के लिए डिज़ाइन किया गया है, वह एक, बार-बार निदान किया गया कारण जिसके लिए ETH-साप्ताहिक सहोदर को 8 पुनरावृत्तियों में परित्यक्त किया गया था: इसके IV-रैंक + IV>RV डबल-गेट के लिए एक ~560-दिन की रोलिंग लुकबैक आवश्यक थी, जिसने इसे केवल 4 ट्रेडों / metrics_reliable=false तक काट दिया — एक संरचनात्मक गतिरोध जिसे डेवलपर कभी हल नहीं कर सका। यह संस्करण DROPS लंबी-लुकबैक IV गेट को पूरी तरह से हटा देता है और ONLY ट्रेंड फ़िल्टर रखता है (प्रमोटित BTC विजेता में सिद्ध लोड-बेयरिंग गेट), हर पात्र सप्ताह एक निश्चित ~25-डेल्टा OTM ETH पुट लिखता है। बिना किसी बहु-वर्षीय IV-पर्सेंटाइल निर्भरता के, यह उपलब्ध Deribit ETH साप्ताहिक इतिहास पर ~40-52 बार/वर्ष फायर करता है → एक सांख्यिकीय रूप से विश्वसनीय ट्रेड गणती, जो ठीक उसी 4-ट्रेडों की दीवार को समाप्त करती है। यह सबसे कम प्रतिनिधित्व वाले वेन्यू को भरता है (ऑप्शंस: 5.5% Deribit + 0.1% Binance बनाम ≥15% लक्ष्य) और ऑप्शंस बुक को BTC-केवल से एक दूसरे असंबद्ध-वोल अंतर्निहित में विविधीकृत करता है। यह NOT एक मल्टी-लेग संरचना (L2), NOT एक डेटा-वॉल्ड सेल (साप्ताहिक ETH चेन + ग्रीक्स कैटलॉग किए गए हैं और BTC सहोदर के माध्यम से सिद्ध-निष्पादनीय हैं), NOT दिशात्मक है। जानबूझकर 2 पैरामीटर्स (पुट डेल्टा, ट्रेंड-फ़िल्टर लंबाई) ओवरफ़िट का विरोध करने के लिए।
परिकल्पनाएँ
Iteration 3 कॉन्फ़िगरेशन-केवल परिवर्तन के साथ Layer-3 वॉल-क्लॉक टाइमआउट ठीक करता है; रणनीति CODE अपरिवर्तित है (इसने पहले ही Layers 1-2 पास कर लिए हैं, प्रति-बार कार्य O(1) है एक वृद्धिशील रनिंग-सम SMA के माध्यम से, और कोई प्रति-बार min()/sorted()/इतिहास स्कैन नहीं हैं)। निदान: iteration 2 ने सही ढंग से प्राइमरी+लेग रिज़ॉल्यूशन को 1-DAY पर ले जाया लेकिन STILL ने टाइमआउट किया, जो साबित करता है कि बाधा बार गणती नहीं है। src/data/option_chain.py पढ़ना: discover_deribit_chain EACH साप्ताहिक समाप्ति के प्रत्येक उम्मीदवार स्ट्राइक के लिए एक नेटवर्क fetch_ohlcv जांच जारी करता है, और Layer-3 सैंडबॉक्स lookback_days (expand_rolling_options / पाइपलाइन डिफ़ॉल्ट 365) तक फैला है। तो विस्तार लागत साप्ताहिक समाप्तियों की संख्या के साथ स्केल करती है = lookback_days, टाइमफ्रेम की परवाह किए बिना। iter-2 का कॉन्फ़िगरेशन lookback_days ~730 (~104 समाप्तियाँ, जांच गणती को दोगुना करते हुए) ले गया, जिसने 300सेकंड के बजट को उड़ा दिया। lookback_days को 365 पर वापस लाना (~52 समाप्तियाँ) समाप्ति जांचों और लेग डाउनलोड्स को आधा कर देता है, उस सटीक पैमाने से मेल खाता है जिस पर सिद्ध ETH/BTC साप्ताहिक पुट-राइट सहोदर Layer 3 पास करते हैं, जबकि अभी भी ~52 पात्र सप्ताहों को कवर करता है ताकि ट्रेड गणती सांख्यिकीय रूप से विश्वसनीय रहे (ट्रेंड गेटिंग के बाद ~30-52 राइट) और 4-ट्रेड गतिरोध से बहुत ऊपर। बाकी सब कुछ संरक्षित और सिद्ध है: RollingOptionsStrategy को सीधे सबक्लास करना (Layer-1 इसे पहचानता है; 4 सार हुक भौतिक रूप से मौजूद हैं), कोई स्मोक पथ नहीं (वास्तविक ऑप्शन लेग विस्तारित शेड्यूल के माध्यम से ट्रेड करते हैं, options_no_option_trades को संतुष्ट करते हुए), _enter_leg में सिंगल मूल्य-केवल ट्रेंड गेट, 1-DAY ETH-PERPETUAL प्राइमरी + 1-DAY लेग रिज़ॉल्यूशन (वह रिज़ॉल्यूशन जो पासिंग ETH पुट-राइट सहोदर उपयोग करता है), नकद-प्रतिभूतित साइज़िंग (risk_frac 0.8, लीवरेज 1.0 ऑप्शंस वेन्यू कैप के अनुसार), और 2-पैरामीटर डिज़ाइन (पुट ऑफ़सेट + sma_window)।
परिकल्पनाएँ
backtest_failed: RuntimeError: rolling_options विस्तार विफल हुआ (ConnectError: ); खाली विकल्प शेड्यूल के साथ चलाने से इनकार
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 विस्तार विफल हुआ (ConnectError: ); खाली विकल्प शेड्यूल के साथ चलाने से इनकार
कार्यान्वयन
ETH Deribit यूरोपियन ऑप्शंस पर सिंगल-लेग, नकद-प्रतिभूतित साप्ताहिक OTM पुट-राइटिंग, केवल ट्रेंड-गेटेड। हर सप्ताह फ्रेमवर्क ऐतिहासिक Deribit ETH साप्ताहिक पुट चेन को हल करता है (-6% मनीनेस ऑफ़सेट के माध्यम से एक ~25-डेल्टा OTM स्ट्राइक को लक्षित करते हुए) और इसे रोल करता है; रणनीति SELLS एक पुट ~7 दिनों की समाप्ति तक और निपटान से ~24घंटे पहले इसे बंद कर देती है। ONLY गेट एक मूल्य-केवल ट्रेंड फ़िल्टर है: यह पुट केवल तब लिखती है जब ETH स्पॉट अपनी ~50-दिन की SMA (दैनिक बार) से ऊपर होती है, पुष्ट डाउनट्रेंड से बाहर बैठती है। बिना किसी बहु-वर्षीय IV-पर्सेंटाइल विंडो के यह हर पात्र सप्ताह (~52/वर्ष 365-दिन विंडो पर) ट्रेड करती है ताकि सांख्यिकीय रूप से विश्वसनीय ट्रेड गणती हो, सीधे 4-ट्रेडों की लुकबैक दीवार को समाप्त करती है जिसने IV-गेटेड ETH-साप्ताहिक सहोदर को परित्यक्त किया था। प्राइमरी = ETH-PERPETUAL.DERIBIT पर 1-DAY बार (केवल रोल क्लॉक, कभी ट्रेड नहीं किया गया)। नकद-प्रतिभूतित साइज़िंग (risk_frac 0.8), कोई लीवरेज नहीं, 2 ट्यून्ड पैरामीटर्स (पुट ऑफ़सेट, sma_window)।
सत्यापन परिणाम
CLEAN RESTART 2026-09-04 — इस रन का निर्णय इतिहास और सीखने के रिकॉर्ड हटा दिए गए और इसे सत्यापन से फिर से शुरू किया गया। इसका पिछला परित्याग पाइपलाइन से आया था, बाज़ार से नहीं: Layer-2 हार्नेस ने @staticmethod हेल्पर्स को गलत तरीके से बाइंड किया (ठीक किया गया), QA ने एक अनऑप्टिमाइज़्ड स्मोक टेस्ट पर टर्मिनल प्रदर्शन निर्णय जारी किए (हटा दिए गए — QA अब केवल शुद्धता का मूल्यांकन करता है), और सैंडबॉक्स टाइमआउट बैकटेस्ट-स्लॉट स्टार्वेशन से आए (ठीक किए गए)। परिकल्पना और रणनीति कोड अपरिवर्तित हैं। कोड का गुण-दोष के आधार पर सत्यापन करें; प्रदर्शन का निर्णय बाद में पूर्ण बैकटेस्ट और ऑप्टिमाइज़र द्वारा किया जाएगा।
सत्यापन परिणाम
किसी की आवश्यकता नहीं।
सत्यापन परिणाम
Layer-1 ने self._win.append() को अनबाउंडेड के रूप में फ़्लैग किया, लेकिन on_bar हर बार डेक को ट्रिम करता है (जब len > sma_window: popleft()), इसलिए वृद्धि sma_window तक बाउंडेड है। गलत सकारात्मक।
Iteration History
सत्यापन विफल (Layer 3 — सैंडबॉक्स बैकटेस्ट): स्मोक टेस्ट ने 300सेकंड की वॉल-क्लॉक सीमा पार कर ली। यह लगभग हमेशा इतिहास के साथ स्केल करने वाले प्रति-बार कार्य का मतलब है — जैसे पूर्ण फंडिंग/पूरक श्रृंखला को फिर से स्कैन करना, या हर बार पर calculate_signal()/on_bar() के अंदर एक सूची का पुनर्निर्माण करना और min()/sorted() को कॉल करना। __init__ में ONCE को सॉर्ट किए गए टाइमस्टैम्प ऐरे प्रीकंप्यूट करें और बाइसेक्ट का उपयोग करें, या टाइमस्टैम्प के आधार पर कुंजीबद्ध लुकअप कैश करें, ताकि प्रति-बार लागत O(log n) हो O(n) नहीं।
Iteration History
RuntimeError: rolling_options विस्तार विफल (ConnectError: ); खाली ऑप्शन शेड्यूल के साथ चलने से इनकार
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
उपरोक्त अपवाद निम्नलिखित अपवाद का प्रत्यक्ष कारण था:
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
उपरोक्त अपवाद निम्नलिखित अपवाद का प्रत्यक्ष कारण था:
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 विस्तार विफल (ConnectError: ); खाली ऑप्शन शेड्यूल के साथ चलने से इनकार
छोड़ने का कारण
backtest_failed: RuntimeError: rolling_options विस्तार विफल हुआ (ConnectError: ); खाली विकल्प शेड्यूल के साथ चलाने से इनकार
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 विस्तार विफल हुआ (ConnectError: ); खाली विकल्प शेड्यूल के साथ चलाने से इनकार
Stratmill एक रिसर्च और पेपर-ट्रेडिंग टूल है, वित्तीय सलाह या ब्रोकर नहीं। बैकटेस्ट और पेपर परिणाम काल्पनिक हैं। ट्रेडिंग में नुकसान का जोखिम होता है।