fix: UTC+8 market chart times and archive full history K-line load
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -29,10 +29,10 @@ ARCHIVE_DEFAULT_TIMEFRAME = "15m"
|
||||
ARCHIVE_SEED_LOOKBACK_DAYS = 30
|
||||
ARCHIVE_VISIBLE_BARS_DEFAULT = 200
|
||||
ARCHIVE_MAX_CANDLES: dict[str, int] = {
|
||||
"5m": 4000,
|
||||
"15m": 2500,
|
||||
"1h": 1200,
|
||||
"4h": 600,
|
||||
"5m": 9000,
|
||||
"15m": 15000,
|
||||
"1h": 4000,
|
||||
"4h": 2000,
|
||||
}
|
||||
ARCHIVE_SYNC_INTERVAL_SEC = int(os.getenv("HUB_ARCHIVE_SYNC_INTERVAL_SEC", str(4 * 3600)))
|
||||
ARCHIVE_TRADE_DAYS = int(os.getenv("HUB_ARCHIVE_TRADE_DAYS", "365"))
|
||||
@@ -159,6 +159,9 @@ def parse_wall_clock_ms(raw: Any, *, tz: ZoneInfo = CHART_DISPLAY_TZ) -> int | N
|
||||
s = str(raw).strip().replace("Z", "").replace("T", " ")
|
||||
if not s:
|
||||
return None
|
||||
if s.isdigit():
|
||||
v = int(s)
|
||||
return v if v > 1_000_000_000_000 else v * 1000
|
||||
for fmt, ln in (("%Y-%m-%d %H:%M:%S", 19), ("%Y-%m-%d %H:%M", 16), ("%Y-%m-%d", 10)):
|
||||
try:
|
||||
dt = datetime.strptime(s[:ln], fmt)
|
||||
@@ -873,8 +876,8 @@ def resolve_archive_chart(
|
||||
merged = [b for b in agg if start_ms <= int(b["open_time_ms"]) <= end_ms]
|
||||
|
||||
max_n = ARCHIVE_MAX_CANDLES.get(tf, 2000)
|
||||
if rm == "history" and merged:
|
||||
merged = _trim_bars_for_cap(merged, end_ms=end_ms, max_n=max_n)
|
||||
if rm == "history" and merged and len(merged) > max_n:
|
||||
merged = merged[:max_n]
|
||||
|
||||
candles = _to_candles(merged)
|
||||
if not candles:
|
||||
|
||||
Reference in New Issue
Block a user