mirror of
https://ghfast.top/https://github.com/aeroxw/tick-stock-panel.git
synced 2026-09-12 22:34:18 +08:00
feat(market): 交易日探针——工作日休市剔除行情轮询与分钟增量
- 探测链: fuyao 交易日历(权威) → tickflow 行情时间戳(5只篮子 OR 判定, 9:40 开盘缓冲窗) → None 未知回退周几近似 - 周末零成本直判; 结论分档 TTL 缓存 (交易日 1h / 休市 30min 自愈 / 未知 5min 防重试风暴), 纯读不落盘 - 实时行情: 休市日跳过轮询/盘前预热/定版, fuyao 周五数据误归属从源头消除 - 分钟增量: gate_reason 新增 holiday; 探针未知时空轮升级机制仍为第二道防线 - 实测(周六): 三层链路真实验证, fuyao 日历连调休周一均正确判休市
This commit is contained in:
@@ -207,6 +207,16 @@ class FuyaoClient:
|
||||
rows = data.get("item")
|
||||
return rows if isinstance(rows, list) else []
|
||||
|
||||
def trading_days(self) -> list[dict]:
|
||||
"""近一年 A 股交易日序列 (固定窗口 [今日-1年, 今日], 无入参)。
|
||||
|
||||
返回 data.item 原始行: {date_ms(上海零点), date(yyyyMMdd)}。
|
||||
供交易日探针判定「今天在列表内 ⇔ 交易日」。
|
||||
"""
|
||||
data = self._get("/api/a-share/calendar/trading-days", {})
|
||||
rows = data.get("item")
|
||||
return rows if isinstance(rows, list) else []
|
||||
|
||||
# ---- 市场 dump ----
|
||||
def dump_download_url(self, dump_kind: str) -> dict:
|
||||
"""获取 dump 预签名下载信息(约 300s 有效)。
|
||||
|
||||
@@ -878,6 +878,15 @@ class FuyaoProvider:
|
||||
rows_out.append(row)
|
||||
return pl.DataFrame(rows_out) if rows_out else pl.DataFrame()
|
||||
|
||||
def trading_days(self) -> set:
|
||||
"""近一年交易日集合 (供交易日探针)。失败抛 FuyaoError, 由探针兜为未知。"""
|
||||
rows = self._get_client().trading_days()
|
||||
return {
|
||||
d
|
||||
for d in (_date_of_ms(r.get("date_ms")) for r in rows)
|
||||
if d is not None
|
||||
}
|
||||
|
||||
def _derive_bps(self, symbols: list[str]) -> dict[str, float]:
|
||||
"""估值快照 pb_mrq 与行情快照最新价同源同刻 → bps = price / pb_mrq。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user