config.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import os
  2. from dotenv import load_dotenv
  3. load_dotenv()
  4. # Cache TTLs (seconds)
  5. PRICE_TTL = int(os.getenv("PRICE_TTL", 10))
  6. OHLCV_TTL = {
  7. "1m": int(os.getenv("OHLCV_TTL_1M", 30)),
  8. "5m": int(os.getenv("OHLCV_TTL_5M", 60)),
  9. "1h": int(os.getenv("OHLCV_TTL_1H", 300)),
  10. "4h": int(os.getenv("OHLCV_TTL_4H", 600)),
  11. "1d": int(os.getenv("OHLCV_TTL_1D", 3600)),
  12. }
  13. # Providers
  14. COINGECKO_BASE_URL = "https://api.coingecko.com/api/v3"
  15. BINANCE_BASE_URL = "https://api.binance.com/api/v3"
  16. # Symbol normalization map (add more as needed)
  17. SYMBOL_TO_COINGECKO_ID = {
  18. "BTC": "bitcoin",
  19. "ETH": "ethereum",
  20. "SOL": "solana",
  21. "BNB": "binancecoin",
  22. "XRP": "ripple",
  23. "ADA": "cardano",
  24. "DOGE": "dogecoin",
  25. "AVAX": "avalanche-2",
  26. "DOT": "polkadot",
  27. "MATIC": "matic-network",
  28. "LINK": "chainlink",
  29. "UNI": "uniswap",
  30. "LTC": "litecoin",
  31. "ATOM": "cosmos",
  32. "XLM": "stellar",
  33. }
  34. # Timeframe → Binance interval mapping
  35. TIMEFRAME_TO_BINANCE = {
  36. "1m": "1m",
  37. "5m": "5m",
  38. "15m": "15m",
  39. "1h": "1h",
  40. "4h": "4h",
  41. "1d": "1d",
  42. }
  43. # Default OHLCV limit
  44. DEFAULT_OHLCV_LIMIT = 100
  45. MAX_OHLCV_LIMIT = 500