DeribitEthWeeklyPutWriteTrendGatedOnly
השערות
Deribit ETH שבועי עם ביטחון מזומן (Cash-Secured) OTM Put-Write — שער מגמה בלבד (Trend-Gated Only), דלתא קבועה ~25, NO שער חלון תצפית ארוך IV (קציר רגל-בודדת (Single-Leg) VRP; מתקן ישירות את חומת חלון התצפית של 4 עסקאות שגרמה לנטישת האחות ה-ETH-שבועית)
השערות
SINGLE-LEG, תוכנית שבועית PUT-WRITING עם ביטחונות מזומן מלאים (fully cash-collateralized) על אופציות ETH ב-Deribit — נכס הבסיס השני בנזילותו בשוק אופציות הקריפטו, תוך שימוש חוזר במסלול הביצוע EXACT (בחירת סטרייק באמצעות יוונים, סילוק מזומן שבועי) של ה-Deribit-BTC-weekly put-write המקודם עם Sharpe-12.2 של המפעל. היא מתוכננת במכוון כדי FIX את הסיבה היחידה, שאובחנה שוב ושוב, לכך שהאחות ה-ETH-שבועית ננטשה לאורך 8 איטרציות: השער הכפול שלה IV-rank + IV>RV דרש חלון תצפית מתגלגל (rolling lookback) של כ-560 ימים, מה שצמצם אותה לכ-4 עסקאות בלבד / metrics_reliable=false — מבוי סתום מבני שהמפתח מעולם לא הצליח לפתור. גרסה זו DROPS לחלוטין את שער חלון התצפית הארוך IV ושומרת ONLY על מסנן המגמה (השער שהוכח כנושא-מבנה באסטרטגיה המנצחת המקודמת BTC), תוך כתיבת OTM ETH put קבוע בדלתא של כ-25 בכל שבוע כשיר. ללא תלות רב-שנתית באחוזון IV, היא נורית כ-40-52 פעמים בשנה על פני היסטוריית האופציות השבועיות הזמינה של Deribit ETH → מספר עסקאות אמין סטטיסטית, המבטל את חומת 4 העסקאות בדיוק. היא ממלאת את הזירה הכי לא-מיוצגת (אופציות: 5.5% ב-Deribit + 0.1% ב-Binance לעומת יעד של ≥15%) ומגוונת את תיק האופציות מ-BTC בלבד לנכס בסיס שני של תנודתיות לא-מתואמת. היא NOT מבנה רב-רגליים (L2), NOT תא חסום-נתונים (שרשרת ETH שבועית + יוונים מקוטלגים ומוכחים כבני-ביצוע דרך האחות BTC), NOT כיוונית. במכוון 2 פרמטרים (דלתת put, אורך מסנן מגמה) כדי לעמוד בפני התאמת יתר.
השערות
איטרציה 3 מתקנת את חריגת הזמן הריאלי (wall-clock timeout) של Layer-3 באמצעות שינוי תצורה (config) בלבד; קוד האסטרטגיה CODE ללא שינוי (הוא כבר עבר את Layers 1-2, העבודה לכל בר היא O(1) באמצעות SMA מצטבר (incremental running-sum), ואין סריקות min()/sorted()/היסטוריה לכל בר). אבחון: איטרציה 2 העבירה כראוי את פתרון (resolution) ה-primary+leg אל 1-DAY אך STILL חרג בזמן, מה שמוכיח שהצוואר בקבוק (bottleneck) אינו מספר הברים. בקריאת src/data/option_chain.py: discover_deribit_chain שולח בדיקת רשת (network probe) fetch_ohlcv עבור כל סטרייק מועמד של פקיעה שבועית EACH, וסביבת החול (sandbox) של Layer-3 משתרעת על פני lookback_days (expand_rolling_options / ברירת מחדל של הצינור (pipeline default) 365). כך שעלות ההרחבה (expansion) מתעצמת עם מספר הפקיעות השבועיות = lookback_days, ללא קשר לפריים-טיים (timeframe). תצורת iter-2 נשאה lookback_days ~730 (~104 פקיעות, הכפלת מספר הבדיקות), מה שחרג מתקציב ה-300 שניות. חזרה (reverting) של lookback_days אל 365 (~52 פקיעות) מחצה את בדיקות הפקיעה והורדות הרגליים (legs), ותואמת בדיוק את הסקאלה שבה האחיות המוכחות של ETH/BTC put-write שבועי עוברות את Layer 3, תוך כיסוי של כ-52 שבועות כשירים כך שמספר העסקאות נותר אמין סטטיסטית (~30-52 כתיבות לאחר שער המגמה) והרבה מעל למבוי הסתום של 4 עסקאות. כל השאר נשמר ומוכח: תת-מחלקה (subclassing) ישירה של RollingOptionsStrategy (Layer-1 מזהה אותה; הווים (hooks) האבסטרקטיים 4 קיימים פיזית), ללא נתיב עשן (smoke path) (רגלי אופציות אמיתיות נסחרות דרך לוח הזמנים המורחב, מה שמספק (satisfying) options_no_option_trades), שער המגמה המבוסס-מחיר היחיד ב-_enter_leg, פתרון primary 1-DAY ETH-PERPETUAL + פתרון רגל (leg) 1-DAY (הפתרון שבו משתמשת האחות ETH העוברת בק-טסט put-write), גודל פוזיציה מבוטח-מזומן (cash-secured sizing) (risk_frac 0.8, מינוף 1.0 לפי תקרת הזירה (venue cap) של האופציות), ועיצוב עם 2 פרמטרים (היסט put + sma_window).
השערות
backtest_failed: RuntimeError: הרחבת rolling_options נכשלה (ConnectError: ); מסרב לרוץ עם לוח זמנים ריק של אופציות (empty option schedule)
Traceback (most recent call last):
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
yield
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request
resp = await self._pool.handle_async_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
raise exc from None
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
response = await connection.handle_async_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request
raise exc
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request
stream = await self._connect(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 156, in _connect
stream = await stream.start_tls(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 67, in start_tls
with map_exceptions(exc_map):
File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError
החריגה הנ"ל הייתה הגורם הישיר לחריגה הבאה:
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: ); מסרב לרוץ עם לוח זמנים ריק של אופציות (empty option schedule)
מימוש
כתיבת פוזיציית put שבועית בודדת (single-leg), מובטחת במזומן (cash-secured), על אופציות אירופיות ETH של Deribit (OTM), עם שער מגמה (trend-gated) בלבד. בכל שבוע המסגרת פותרת את שרשרת ה-put השבועית ההיסטורית של Deribit ETH (בכוונה למחיר מימוש (strike) בדלתא (delta) של כ-~25 OTM דרך היסט מוניינס (moneyness offset) של -6%) ומגלגלת אותה; האסטרטגיה SELLS put אחד עם כ-~7 ימים לפקיעה וסוגרת אותו כ-~24 שעות לפני ההתחשבנות. השער ONLY הוא מסנן מגמה מבוסס-מחיר בלבד: הוא כותב את ה-put רק כאשר ספוט ETH נמצא מעל ה-SMA שלו לכ-~50 ימים (נרות יומיים), ונשאר מחוץ למגמות ירידה מאושרות. ללא חלון פרצנטיל IV רב-שנתי, האסטרטגיה סוחרת בכל שבוע כשיר (כ-~52 לשנה על פני חלון של 365 ימים) לשם מספר עסקאות אמין סטטיסטית, תוך חיסול ישיר של קיר ה-lookback של 4 עסקאות שגרם לנטישת האחות ETH-שבועית עם שער IV. עיקרי = ETH-PERPETUAL.DERIBIT על נרות 1-DAY (שעון גלגול בלבד, לעולם לא נסחר). גודל פוזיציה מובטח במזומן (risk_frac 0.8), ללא מינוף, פרמטרים מכוונים 2 (היסט put, sma_window).
תוצאות אימות
CLEAN RESTART 2026-09-04 — היסטוריית פסיקות ורשומות הלמידה של ריצה זו הוסרו והיא הופעלה מחדש מאימות. הנטישה הקודמת שלה נבעה מהצינור (pipeline), לא מהשוק: רתמת ה-Layer-2 קשרה בצורה שגויה עוזרי @staticmethod (תוקן), QA הוציא פסיקות ביצועים סופיות על מבחן עשן (smoke test) לא ממוטב (הוסר — QA כעת שופט נכונות בלבד), וזמני קצוב (timeouts) בסביבת החול (sandbox) נבעו מהרעבת חריצי בק-טסט (backtest-slot starvation) (תוקן). ההשערה וקוד האסטרטגיה ללא שינוי. יש לאמת את הקוד לגופו; הביצועים ייקבעו בהמשך על ידי הבק-טסט המלא והאופטימייזר.
תוצאות אימות
לא נדרש דבר.
תוצאות אימות
Layer-1 סימן את self._win.append() כבלתי חסום (unbounded), אך on_bar מקצץ את ה-deque בכל בר (while len > sma_window: popleft()), כך שהגידול חסום ל-sma_window. חיובי שגוי (false positive).
Iteration History
האימות נכשל (Layer 3 — בק-טסט בסביבת חול (sandbox)): מבחן העשן (smoke test) חרג ממגבלת הזמן הריאלי (wall-clock) של 300 שניות. כמעט תמיד המשמעות היא עבודה לכל בר (per-bar) שמתרחבת עם היסטוריית הנתונים — לדוגמה, סריקה מחדש של סדרת המימון/הנתונים המשלימים המלאה, או בנייה מחדש של רשימה וקריאה ל-min()/sorted() בתוך calculate_signal()/on_bar() בכל בר. יש לחשב מראש (precompute) מערכי חותמות זמן ממוינים ONCE ב-__init__ ולהשתמש ב-bisect, או לשמור תוצאות בזיכרון מטמון (cache) לפי חותמת זמן, כך שהעלות לכל בר תהיה O(log n) ולא O(n).
Iteration History
RuntimeError: הרחבת rolling_options נכשלה (ConnectError: ); מסרב לפעול עם לוח זמנים ריק של אופציות (empty option schedule)
Traceback (most recent call last):
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 101, in map_httpcore_exceptions
yield
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 394, in handle_async_request
resp = await self._pool.handle_async_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
raise exc from None
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
response = await connection.handle_async_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request
raise exc
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request
stream = await self._connect(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 156, in _connect
stream = await stream.start_tls(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 67, in start_tls
with map_exceptions(exc_map):
File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/opt/strategy-factory/.venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError
החריגה (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
החריגה (exception) הנ״ל הייתה הגורם הישיר לחריגה הבאה:
Traceback (most recent call last):
File "/opt/strategy-factory/src/agents/backtest_agent.py", line 184, in _run_backtest
config = await self._maybe_expand_rolling_options(config, catalog_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/src/agents/backtest_agent.py", line 427, in _maybe_expand_rolling_options
config = await expand_rolling_options_into_config(config, catalog_path, self._logger)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/strategy-factory/src/agents/backtest_agent.py", line 59, in expand_rolling_options_into_config
raise RuntimeError(
RuntimeError: rolling_options expansion failed (ConnectError: ); refusing to run with an empty option schedule
סיבת נטישה
backtest_failed: RuntimeError: הרחבת rolling_options נכשלה (ConnectError: ); מסרב להריץ עם לוח אפשרויות ריק
עקבה (הקריאה האחרונה מופיעה בסוף):
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
החריגה שלמעלה הייתה הגורם הישיר לחריגה הבאה:
עקבה (הקריאה האחרונה מופיעה בסוף):
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
החריגה שלמעלה הייתה הגורם הישיר לחריגה הבאה:
עקבה (הקריאה האחרונה מופיעה בסוף):
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 הוא כלי למחקר ולמסחר נייר (Paper Trading), ואינו ייעוץ פיננסי או ברוקר. תוצאות בדיקה לאחור ומסחר נייר הן היפותטיות. מסחר טומן בחובו סיכון להפסד.