Files
crypto_news/config/settings.py
2026-03-20 07:49:42 +09:00

55 lines
1.3 KiB
Python

"""Global application settings loaded from environment variables."""
from typing import List
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""Application configuration powered by pydantic-settings.
Values are loaded from environment variables or a .env file.
"""
# -- Exchange --
EXCHANGE_ID: str = "binance"
API_KEY: str = ""
API_SECRET: str = ""
SANDBOX_MODE: bool = True
# -- Trading --
TRADING_PAIRS: List[str] = ["BTC/USDT", "ETH/USDT"]
DEFAULT_LEVERAGE: int = 1
MAX_LEVERAGE: int = 3
# -- ICT Parameters --
SWING_LENGTH: int = 50
FVG_JOIN_CONSECUTIVE: bool = False
OB_CLOSE_MITIGATION: bool = False
LIQUIDITY_RANGE_PERCENT: float = 0.01
MIN_CONFLUENCE_SCORE: int = 3
# -- Timeframes --
HTF_TIMEFRAME: str = "4h"
MTF_TIMEFRAME: str = "1h"
LTF_TIMEFRAME: str = "15m"
# -- Risk Management --
MAX_RISK_PER_TRADE: float = 0.02
MAX_DAILY_LOSS: float = 0.05
MAX_CONCURRENT_POSITIONS: int = 3
MAX_DRAWDOWN: float = 0.15
# -- Notification --
TELEGRAM_BOT_TOKEN: str = ""
TELEGRAM_CHAT_ID: str = ""
# -- Database --
DB_PATH: str = "data/trading.db"
# -- Logging --
LOG_LEVEL: str = "INFO"
LOG_FILE: str = "logs/bot.log"
model_config = {"env_file": ".env", "env_file_encoding": "utf-8"}