From 032d46ec1d6facfaa277c423086a0898a7012a99 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Mon, 25 May 2026 02:44:45 +0800 Subject: [PATCH] =?UTF-8?q?Polymarket=20=E5=B8=82=E5=9C=BA=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=E6=96=B0=E5=A2=9E=20SCAN=5FDEBUG=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=8E=92=E6=9F=A5=E7=BB=88=E7=AB=AF=E6=97=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 _build_distribution_scan_pack / _row_from_entry 关键路径 添加 logger.info 跟踪 related_markets 数量、批量报价结果、 行过滤原因和最终结果,便于定位 scan_rows 始终为空的原因。 --- src/data_collection/polymarket_readonly.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/data_collection/polymarket_readonly.py b/src/data_collection/polymarket_readonly.py index a520b0c8..b7161111 100644 --- a/src/data_collection/polymarket_readonly.py +++ b/src/data_collection/polymarket_readonly.py @@ -2964,6 +2964,7 @@ class PolymarketReadOnlyLayer: target_date=target_date, primary_market=primary_market, ) + logger.info("SCAN_DEBUG city={} date={} related_markets={}", city_key, target_date, len(related_markets)) if not related_markets: return { "rows": [], @@ -3038,6 +3039,10 @@ class PolymarketReadOnlyLayer: ) broad_quotes = self._batch_get_token_market_data(token_ids, include_books=False) + logger.info( + "SCAN_DEBUG city={} date={} token_ids={} broad_quotes={} entries={}", + city_key, target_date, len(token_ids), len(broad_quotes), len(market_entries), + ) bias_inputs: List[Tuple[float, float]] = [] for entry in market_entries: yes_quote = self._merge_market_quote_fallback( @@ -3295,6 +3300,14 @@ class PolymarketReadOnlyLayer: ask = _clamp_probability(_safe_float(entry.get("yes_ask") if side == "yes" else entry.get("no_ask"))) bid = _clamp_probability(_safe_float(entry.get("yes_bid") if side == "yes" else entry.get("no_bid"))) if model_event_probability is None or ask is None: + logger.info( + "SCAN_DEBUG row_skip city={} date={} side={} model_p={} ask={} bid={} " + "yes_ask={} no_ask={} slug={}", + city_key, target_date, side, + model_event_probability, ask, bid, + entry.get("yes_ask"), entry.get("no_ask"), + str(entry.get("market", {}).get("slug") or "")[:60], + ) return None market = entry["market"] @@ -3681,6 +3694,10 @@ class PolymarketReadOnlyLayer: primary_signal = filtered_rows[0] if filtered_rows else None signal_status = "ready" if primary_signal else "no_signal" + logger.info( + "SCAN_DEBUG result city={} date={} preliminary={} final={} filtered={} signal={}", + city_key, target_date, len(preliminary_rows), len(final_rows), len(filtered_rows), signal_status, + ) return { "rows": filtered_rows[: filters["limit"]], "distribution_bias": distribution_bias,