Files
2026-05-30 10:35:25 +08:00

45 lines
1014 B
Python

"""K 线周期常量与每周期 bar 数 / 缓存 TTL。"""
CHART_INTERVALS: tuple[str, ...] = ("5m", "15m", "30m", "1h", "4h", "1d", "1w")
LONG_INTERVALS: frozenset[str] = frozenset({"1d", "1w"})
# 1d 及以上 500 根;以下 1000 根
INTERVAL_LIMITS: dict[str, int] = {
"5m": 1000,
"15m": 1000,
"30m": 1000,
"1h": 1000,
"4h": 1000,
"1d": 500,
"1w": 500,
}
# 预取 / 本地 freshness(分钟)
INTERVAL_CACHE_MINUTES: dict[str, int] = {
"5m": 5,
"15m": 15,
"30m": 15,
"1h": 30,
"4h": 30,
"1d": 60,
"1w": 60,
}
def validate_interval(interval: str) -> str:
iv = interval.lower().strip()
if iv not in CHART_INTERVALS:
raise ValueError(f"unsupported interval: {interval}")
return iv
def limit_for_interval(interval: str) -> int:
iv = validate_interval(interval)
return INTERVAL_LIMITS[iv]
def cache_minutes_for_interval(interval: str) -> int:
iv = validate_interval(interval)
return INTERVAL_CACHE_MINUTES[iv]