from __future__ import annotations import argparse import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) from okx_codex_trader.okx_client import OkxClient from scripts.explore_ultrashort import CANDLE_CACHE_DIR, get_candles_cached def main() -> int: parser = argparse.ArgumentParser(description="Update local OKX candle cache using recent candles.") parser.add_argument("--cache-dir", type=Path, default=CANDLE_CACHE_DIR) parser.add_argument("--bar", default="15m") parser.add_argument("--limit", type=int, default=300_000) parser.add_argument("--symbols", nargs="+", default=["ETH-USDT-SWAP", "BTC-USDT-SWAP"]) args = parser.parse_args() client = OkxClient() for symbol in args.symbols: candles = get_candles_cached(client, symbol, args.bar, args.limit, args.cache_dir) first = candles[0].ts if candles else None last = candles[-1].ts if candles else None print(f"{symbol} {args.bar} rows={len(candles)} first_ts={first} last_ts={last}") return 0 if __name__ == "__main__": raise SystemExit(main())