update_candle_cache_recent.py 1.1 KB

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