Chiến lược
Put-Write OTM Cash-Secured Hàng tuần Deribit ETH — Chỉ Trend-Gated, Delta Cố định ~25, NO Gate IV Lookback Dài (Thu hoạch VRP Single-Leg; Khắc phục Trực tiếp Bức tường Lookback 4-Lệnh Đã Khiến Sibling ETH-Hàng tuần Bị Bỏ)
Kết quả: Đã hủy bỏ
DeribitEthWeeklyPutWriteTrendGatedOnly
Put-Write OTM Cash-Secured Hàng tuần Deribit ETH — Chỉ Trend-Gated, Delta Cố định ~25, NO Gate IV Lookback Dài (Thu hoạch VRP Single-Leg; Khắc phục Trực tiếp Bức tường Lookback 4-Lệnh Đã Khiến Sibling ETH-Hàng tuần Bị…
Giả thuyết
Một SINGLE-LEG, chương trình PUT-WRITING hàng tuần được thế chấp hoàn toàn bằng tiền mặt trên quyền chọn Deribit ETH — tài sản cơ sở quyền chọn crypto thanh khoản thứ hai, tái sử dụng đường thực thi EXACT (lựa chọn strike qua greeks, thanh toán tiền mặt hàng tuần) của chiến lược put-write Deribit-BTC-hàng tuần đã được promoted với Sharpe-12.2 của factory. Nó được thiết kế có chủ đích để FIX lý do duy nhất, đã được chẩn đoán lặp đi lặp lại khiến sibling ETH-hàng tuần bị từ bỏ qua 8 vòng lặp: double-gate IV-rank +……Xem thêmThu gọn
Một SINGLE-LEG, chương trình PUT-WRITING hàng tuần được thế chấp hoàn toàn bằng tiền mặt trên quyền chọn Deribit ETH — tài sản cơ sở quyền chọn crypto thanh khoản thứ hai, tái sử dụng đường thực thi EXACT (lựa chọn strike qua greeks, thanh toán tiền mặt hàng tuần) của chiến lược put-write Deribit-BTC-hàng tuần đã được promoted với Sharpe-12.2 của factory. Nó được thiết kế có chủ đích để FIX lý do duy nhất, đã được chẩn đoán lặp đi lặp lại khiến sibling ETH-hàng tuần bị từ bỏ qua 8 vòng lặp: double-gate IV-rank + IV>RV của nó yêu cầu rolling lookback ~560 ngày, khiến nó chỉ còn 4 giao dịch / metrics_reliable=false — một ngõ cụt cấu trúc mà developer không bao giờ có thể giải quyết. Phiên bản này DROPS hoàn toàn gate IV lookback dài và ONLY giữ lại trend filter (gate đã được chứng minh là chịu tải trong winner BTC đã promoted), viết một put OTM ETH delta cố định ~25 mỗi tuần đủ điều kiện. Không còn phụ thuộc IV-percentile đa năm, nó kích hoạt ~40-52 lần/năm trên lịch sử hàng tuần Deribit ETH hiện có → số lượng giao dịch đáng tin cậy về mặt thống kê, loại bỏ chính xác bức tường 4-lệnh. Nó lấp đầy venue ít được đại diện nhất (options: 5.5% Deribit + 0.1% Binance so với mục tiêu ≥15%) và đa dạng hóa sổ options từ chỉ BTC sang tài sản cơ sở vol thứ hai không tương quan. Nó NOT là cấu trúc multi-leg (L2), NOT là ô data-walled (chain ETH hàng tuần + greeks đã được catalogued và chứng minh có thể thực thi qua sibling BTC), NOT theo hướng. 2 một cách có chủ đích các tham số (put delta, độ dài trend-filter) để chống overfit.
Vòng lặp 3 khắc phục timeout wall-clock Layer-3 bằng thay đổi chỉ ở config; chiến lược CODE không thay đổi (nó đã vượt qua Layers 1-2, công việc mỗi bar là O(1) qua SMA running-sum tăng dần, và không có quét min()/sorted()/history mỗi bar). Chẩn đoán: vòng lặp 2 đã chuyển đúng resolution primary+leg sang 1-DAY nhưng STILL bị timeout, điều này chứng minh nút thắt không phải là số lượng bar. Đọc src/data/option_chain.py: discover_deribit_chain phát một probe fetch_ohlcv mạng cho mỗi strike ứng viên của expiry hàng……Xem thêmThu gọn
Vòng lặp 3 khắc phục timeout wall-clock Layer-3 bằng thay đổi chỉ ở config; chiến lược CODE không thay đổi (nó đã vượt qua Layers 1-2, công việc mỗi bar là O(1) qua SMA running-sum tăng dần, và không có quét min()/sorted()/history mỗi bar). Chẩn đoán: vòng lặp 2 đã chuyển đúng resolution primary+leg sang 1-DAY nhưng STILL bị timeout, điều này chứng minh nút thắt không phải là số lượng bar. Đọc src/data/option_chain.py: discover_deribit_chain phát một probe fetch_ohlcv mạng cho mỗi strike ứng viên của expiry hàng tuần EACH, và sandbox Layer-3 trải dài lookback_days (expand_rolling_options / pipeline mặc định 365). Vì vậy chi phí expansion tăng theo số lượng expiry hàng tuần = lookback_days, bất kể timeframe. Config của iter-2 mang lookback_days ~730 (~104 expiry, gấp đôi số lượng probe), điều này đã làm vỡ ngân sách 300s. Việc revert lookback_days về 365 (~52 expiry) giảm một nửa probe expiry và leg download, khớp chính xác quy mô mà tại đó các sibling put-write hàng tuần ETH/BTC đã được chứng minh vượt qua Layer 3, trong khi vẫn bao phủ ~52 tuần đủ điều kiện để số lượng giao dịch vẫn đáng tin cậy về mặt thống kê (~30-52 lệnh write sau khi lọc xu hướng) và cao hơn nhiều so với ngõ cụt 4-lệnh. Mọi thứ khác được giữ nguyên và đã được chứng minh: subclass RollingOptionsStrategy trực tiếp (Layer-1 nhận diện nó; các hook trừu tượng 4 hiện diện vật lý), không có đường smoke (leg quyền chọn thật giao dịch qua schedule đã mở rộng, thỏa mãn options_no_option_trades), gate xu hướng đơn chỉ theo giá trong _enter_leg, resolution primary 1-DAY ETH-PERPETUAL + leg 1-DAY (resolution mà sibling put-write ETH đã pass sử dụng), định cỡ cash-secured (risk_frac 0.8, leverage 1.0 theo cap venue options), và thiết kế 2-tham số (put offset + sma_window).
backtest_failed: RuntimeError: rolling_options mở rộng thất bại (ConnectError: ); từ chối chạy với lịch trình quyền chọn trống 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)……Xem thêmThu gọn
backtest_failed: RuntimeError: rolling_options mở rộng thất bại (ConnectError: ); từ chối chạy với lịch trình quyền chọn trống 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 Ngoại lệ trên là nguyên nhân trực tiếp gây ra ngoại lệ sau đây: 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 Ngoại lệ trên là nguyên nhân trực tiếp gây ra ngoại lệ sau đây: 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 mở rộng thất bại (ConnectError: ); từ chối chạy với lịch trình quyền chọn trống
Triển khai
Viết put OTM hàng tuần single-leg, cash-secured trên quyền chọn European Deribit ETH, chỉ trend-gated. Mỗi tuần framework resolve chuỗi put hàng tuần Deribit ETH lịch sử (nhắm tới strike ~25-delta OTM qua offset moneyness -6%) và roll nó; chiến lược SELLS một put ~7 ngày tới expiry và đóng nó ~24h trước settlement. Gate ONLY là bộ lọc xu hướng chỉ theo giá: nó chỉ viết put khi spot ETH nằm trên ~50-ngày SMA (bar daily), đứng ngoài các downtrend đã xác nhận. Không có cửa sổ IV-percentile đa năm, nó giao dịch mọi tuần đủ điều kiện (~52/năm trên cửa sổ 365 ngày) để có số lượng giao dịch đáng tin cậy về mặt thống kê, loại bỏ trực tiếp bức tường lookback 4-lệnh đã khiến sibling được IV-gated ETH-hàng tuần bị bỏ. Primary = ETH-PERPETUAL.DERIBIT trên bar 1-DAY (chỉ làm đồng hồ roll, không bao giờ giao dịch). Định cỡ cash-secured (risk_frac 0.8), không đòn bẩy, 2 tham số được tinh chỉnh (put offset, sma_window).
Kết quả xác minh
CLEAN RESTART 2026-09-04 — lịch sử verdict và hồ sơ học tập của lần chạy này đã bị xóa và nó được khởi động lại từ verification. Việc từ bỏ trước đây đến từ pipeline, không phải từ thị trường: harness Layer-2 đã liên kết sai các helper @staticmethod (đã sửa), QA đã đưa ra verdict hiệu suất mang tính kết thúc trên một smoke test chưa tối ưu (đã gỡ bỏ — QA hiện chỉ đánh giá tính đúng đắn), và timeout sandbox đến từ tình trạng thiếu backtest-slot (đã sửa). Giả thuyết và mã chiến lược không thay đổi. Hãy xác minh mã dựa trên giá trị của nó; hiệu suất sẽ được quyết định sau bởi full backtest và optimizer.
Không cần thiết.
Layer-1 đánh dấu self._win.append() là không bị giới hạn, nhưng on_bar cắt ngắn deque mỗi thanh (while len > sma_window: popleft()), nên tăng trưởng được giới hạn ở sma_window. Dương tính giả.
Lịch sử vòng lặp
Xác minh thất bại (Layer 3 — backtest sandbox): smoke test vượt quá giới hạn thời gian thực 300s. Điều này hầu như luôn có nghĩa là công việc trên mỗi thanh tăng theo độ dài lịch sử — ví dụ: quét lại toàn bộ chuỗi funding/bổ sung, hoặc dựng lại danh sách rồi gọi min()/sorted() bên trong calculate_signal()/on_bar() trên mỗi thanh. Hãy tiền xử lý các mảng timestamp đã sắp xếp ONCE trong __init__ và dùng bisect, hoặc lưu đệm các lần tra cứu theo timestamp, để chi phí trên mỗi thanh là O(log n) thay vì O(n).
RuntimeError: mở rộng rolling_options thất bại (ConnectError: ); từ chối chạy với lịch quyền chọn trống 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……Xem thêmThu gọn
RuntimeError: mở rộng rolling_options thất bại (ConnectError: ); từ chối chạy với lịch quyền chọn trống 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 Ngoại lệ trực tiếp gây ra lỗi trên: 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 Ngoại lệ trực tiếp gây ra lỗi trên: 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: mở rộng rolling_options thất bại (ConnectError: ); từ chối chạy với lịch quyền chọn trống
Lý do hủy bỏ
backtest_failed: RuntimeError: rolling_options mở rộng thất bại (ConnectError: ); từ chối chạy với lịch trình quyền chọn trống 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)……Xem thêmThu gọn
backtest_failed: RuntimeError: rolling_options mở rộng thất bại (ConnectError: ); từ chối chạy với lịch trình quyền chọn trống 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 Ngoại lệ trên là nguyên nhân trực tiếp gây ra ngoại lệ sau đây: 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 Ngoại lệ trên là nguyên nhân trực tiếp gây ra ngoại lệ sau đây: 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 mở rộng thất bại (ConnectError: ); từ chối chạy với lịch trình quyền chọn trống
Stratmill là công cụ nghiên cứu và giao dịch thử nghiệm (paper trading), không phải lời khuyên tài chính hay một nhà môi giới. Kết quả kiểm thử ngược và giao dịch thử nghiệm chỉ mang tính giả định. Giao dịch tiềm ẩn rủi ro thua lỗ.