1 line
25 KiB
JSON
1 line
25 KiB
JSON
{"repo": "catman77/atlas", "files": {"config/settings.py": {"6765abdc63981a3b865dbb1c8264330b475e8cbc": {"t": 1785745419.2766747, "n": 6730, "h": "5bb9f9d6647bca1e", "c": "\"\"\"\nConfiguration settings for the LangGraph Trading System.\n\"\"\"\n\nfrom typing import Dict, List, Optional\nfrom pydantic import Field\nfrom pydantic_settings import BaseSettings\n\n\nclass DatabaseSettings(BaseSettings):\n \"\"\"Database configuration settings.\"\"\"\n\n host: str = Field(default=\"localhost\", alias=\"DB_HOST\")\n port: int = Field(default=5432, alias=\"DB_PORT\")\n database: str = Field(default=\"trading_system\", alias=\"DB_NAME\")\n username: str = Field(default=\"postgres\", alias=\"DB_USER\")\n password: str = Field(default=\"\", alias=\"DB_PASSWORD\")\n\n @property\n def url(self) -> str:\n \"\"\"Get database connection URL.\"\"\"\n return f\"postgresql://{self.username}:{self.password}@{self.host}:{self.port}/{self.database}\"\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass RedisSettings(BaseSettings):\n \"\"\"Redis configuration settings.\"\"\"\n\n host: str = Field(default=\"localhost\", alias=\"REDIS_HOST\")\n port: int = Field(default=6379, alias=\"REDIS_PORT\")\n password: Optional[str] = Field(default=None, alias=\"REDIS_PASSWORD\")\n db: int = Field(default=0, alias=\"REDIS_DB\")\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass BrokerSettings(BaseSettings):\n \"\"\"Broker API configuration settings.\"\"\"\n\n # Alpaca\n alpaca_api_key: str = Field(default=\"\", alias=\"ALPACA_API_KEY\")\n alpaca_secret_key: str = Field(default=\"\", alias=\"ALPACA_SECRET_KEY\")\n alpaca_paper_base_url: str = Field(\n default=\"https://paper-api.alpaca.markets\", alias=\"ALPACA_PAPER_BASE_URL\"\n )\n alpaca_live_base_url: str = Field(\n default=\"https://api.alpaca.markets\", alias=\"ALPACA_LIVE_BASE_URL\"\n )\n\n # Polygon\n polygon_api_key: str = Field(default=\"\", alias=\"POLYGON_API_KEY\")\n\n # Satellite Data Provider\n satellite_api_key: str = Field(default=\"\", alias=\"SATELLITE_API_KEY\")\n satellite_api_base_url: str = Field(\n default=\"https://api.satellite-data.com/v1\", alias=\"SATELLITE_API_BASE_URL\"\n )\n\n # Interactive Brokers\n ib_host: str = Field(default=\"localhost\", alias=\"IB_HOST\")\n ib_port: int = Field(default=7497, alias=\"IB_PORT\")\n ib_client_id: int = Field(default=1, alias=\"IB_CLIENT_ID\")\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass AISettings(BaseSettings):\n \"\"\"AI/ML model configuration settings.\"\"\"\n\n # OpenAI\n openai_api_key: str = Field(default=\"\", alias=\"OPENAI_API_KEY\")\n openai_model: str = Field(default=\"gpt-4\", alias=\"OPENAI_MODEL\")\n\n # Google Gemini\n google_api_key: str = Field(default=\"\", alias=\"GOOGLE_API_KEY\")\n gemini_model: str = Field(default=\"gemini-pro\", alias=\"GEMINI_MODEL\")\n\n # DeepSeek\n deepseek_api_key: str = Field(default=\"\", alias=\"DEEPSEEK_API_KEY\")\n deepseek_model: str = Field(default=\"deepseek-chat\", alias=\"DEEPSEEK_MODEL\")\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass RiskSettings(BaseSettings):\n \"\"\"Risk management configuration settings.\"\"\"\n\n max_daily_loss_pct: float = Field(\n default=0.10, description=\"Maximum daily loss percentage\"\n )\n max_position_size_pct: float = Field(\n default=0.05, description=\"Maximum position size percentage\"\n )\n max_portfolio_leverage: float = Field(\n default=2.0, description=\"Maximum portfolio leverage\"\n )\n var_confidence_level: float = Field(\n default=0.95, description=\"VaR confidence level\"\n )\n emergency_stop_loss_pct: float = Field(\n default=0.15, description=\"Emergency stop loss percentage\"\n )\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass TradingSettings(BaseSettings):\n \"\"\"Trading system configuration settings.\"\"\"\n\n # Trading modes\n paper_trading: bool = Field(default=True, alias=\"PAPER_TRADING\")\n live_trading: bool = Field(default=False, alias=\"LIVE_TRADING\")\n\n # Portfolio settings\n initial_capital: float = Field(default=10000.0, alias=\"INITIAL_CAPITAL\")\n target_symbols: List[str] = Field(default_factory=lambda: [\"SPY\", \"QQQ\", \"IWM\"])\n\n # Strategy settings\n momentum_weight: float = Field(default=0.25, description=\"Momentum strategy weight\")\n mean_reversion_weight: float = Field(\n default=0.25, description=\"Mean reversion strategy weight\"\n )\n sentiment_weight: float = Field(\n default=0.20, description=\"Sentiment strategy weight\"\n )\n options_weight: float = Field(default=0.15, description=\"Options strategy weight\")\n short_selling_weight: float = Field(\n default=0.10, description=\"Short selling strategy weight\"\n )\n long_term_weight: float = Field(\n default=0.05, description=\"Long term strategy weight\"\n )\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass Settings(BaseSettings):\n \"\"\"Main application settings.\"\"\"\n\n # Application info\n app_name: str = \"LangGraph Trading System\"\n app_version: str = \"0.1.0\"\n debug: bool = Field(default=False, alias=\"DEBUG\")\n\n # Component settings\n database: DatabaseSettings = Field(default_factory=DatabaseSettings)\n redis: RedisSettings = Field(default_factory=RedisSettings)\n brokers: BrokerSettings = Field(default_factory=BrokerSettings)\n ai: AISettings = Field(default_factory=AISettings)\n risk: RiskSettings = Field(default_factory=RiskSettings)\n trading: TradingSettings = Field(default_factory=TradingSettings)\n\n # Logging\n log_level: str = Field(default=\"INFO\", alias=\"LOG_LEVEL\")\n log_file: Optional[str] = Field(default=None, alias=\"LOG_FILE\")\n\n # Convenience properties for broker access\n @property\n def ALPACA_API_KEY(self) -> str:\n return self.brokers.alpaca_api_key\n \n @property\n def ALPACA_SECRET_KEY(self) -> str:\n return self.brokers.alpaca_secret_key\n \n @property\n def ALPACA_PAPER_BASE_URL(self) -> str:\n return self.brokers.alpaca_paper_base_url\n \n @property\n def ALPACA_LIVE_BASE_URL(self) -> str:\n return self.brokers.alpaca_live_base_url\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\n# Global settings instance\nsettings = Settings()\n\n\ndef get_settings() -> Settings:\n \"\"\"Get the global settings instance.\"\"\"\n return settings\n"}, "f1623eb52afaba1a1e1861fef15e8fd0739af856": {"t": 1785752985.8044906, "n": 6730, "h": "5bb9f9d6647bca1e", "c": "\"\"\"\nConfiguration settings for the LangGraph Trading System.\n\"\"\"\n\nfrom typing import Dict, List, Optional\nfrom pydantic import Field\nfrom pydantic_settings import BaseSettings\n\n\nclass DatabaseSettings(BaseSettings):\n \"\"\"Database configuration settings.\"\"\"\n\n host: str = Field(default=\"localhost\", alias=\"DB_HOST\")\n port: int = Field(default=5432, alias=\"DB_PORT\")\n database: str = Field(default=\"trading_system\", alias=\"DB_NAME\")\n username: str = Field(default=\"postgres\", alias=\"DB_USER\")\n password: str = Field(default=\"\", alias=\"DB_PASSWORD\")\n\n @property\n def url(self) -> str:\n \"\"\"Get database connection URL.\"\"\"\n return f\"postgresql://{self.username}:{self.password}@{self.host}:{self.port}/{self.database}\"\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass RedisSettings(BaseSettings):\n \"\"\"Redis configuration settings.\"\"\"\n\n host: str = Field(default=\"localhost\", alias=\"REDIS_HOST\")\n port: int = Field(default=6379, alias=\"REDIS_PORT\")\n password: Optional[str] = Field(default=None, alias=\"REDIS_PASSWORD\")\n db: int = Field(default=0, alias=\"REDIS_DB\")\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass BrokerSettings(BaseSettings):\n \"\"\"Broker API configuration settings.\"\"\"\n\n # Alpaca\n alpaca_api_key: str = Field(default=\"\", alias=\"ALPACA_API_KEY\")\n alpaca_secret_key: str = Field(default=\"\", alias=\"ALPACA_SECRET_KEY\")\n alpaca_paper_base_url: str = Field(\n default=\"https://paper-api.alpaca.markets\", alias=\"ALPACA_PAPER_BASE_URL\"\n )\n alpaca_live_base_url: str = Field(\n default=\"https://api.alpaca.markets\", alias=\"ALPACA_LIVE_BASE_URL\"\n )\n\n # Polygon\n polygon_api_key: str = Field(default=\"\", alias=\"POLYGON_API_KEY\")\n\n # Satellite Data Provider\n satellite_api_key: str = Field(default=\"\", alias=\"SATELLITE_API_KEY\")\n satellite_api_base_url: str = Field(\n default=\"https://api.satellite-data.com/v1\", alias=\"SATELLITE_API_BASE_URL\"\n )\n\n # Interactive Brokers\n ib_host: str = Field(default=\"localhost\", alias=\"IB_HOST\")\n ib_port: int = Field(default=7497, alias=\"IB_PORT\")\n ib_client_id: int = Field(default=1, alias=\"IB_CLIENT_ID\")\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass AISettings(BaseSettings):\n \"\"\"AI/ML model configuration settings.\"\"\"\n\n # OpenAI\n openai_api_key: str = Field(default=\"\", alias=\"OPENAI_API_KEY\")\n openai_model: str = Field(default=\"gpt-4\", alias=\"OPENAI_MODEL\")\n\n # Google Gemini\n google_api_key: str = Field(default=\"\", alias=\"GOOGLE_API_KEY\")\n gemini_model: str = Field(default=\"gemini-pro\", alias=\"GEMINI_MODEL\")\n\n # DeepSeek\n deepseek_api_key: str = Field(default=\"\", alias=\"DEEPSEEK_API_KEY\")\n deepseek_model: str = Field(default=\"deepseek-chat\", alias=\"DEEPSEEK_MODEL\")\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass RiskSettings(BaseSettings):\n \"\"\"Risk management configuration settings.\"\"\"\n\n max_daily_loss_pct: float = Field(\n default=0.10, description=\"Maximum daily loss percentage\"\n )\n max_position_size_pct: float = Field(\n default=0.05, description=\"Maximum position size percentage\"\n )\n max_portfolio_leverage: float = Field(\n default=2.0, description=\"Maximum portfolio leverage\"\n )\n var_confidence_level: float = Field(\n default=0.95, description=\"VaR confidence level\"\n )\n emergency_stop_loss_pct: float = Field(\n default=0.15, description=\"Emergency stop loss percentage\"\n )\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass TradingSettings(BaseSettings):\n \"\"\"Trading system configuration settings.\"\"\"\n\n # Trading modes\n paper_trading: bool = Field(default=True, alias=\"PAPER_TRADING\")\n live_trading: bool = Field(default=False, alias=\"LIVE_TRADING\")\n\n # Portfolio settings\n initial_capital: float = Field(default=10000.0, alias=\"INITIAL_CAPITAL\")\n target_symbols: List[str] = Field(default_factory=lambda: [\"SPY\", \"QQQ\", \"IWM\"])\n\n # Strategy settings\n momentum_weight: float = Field(default=0.25, description=\"Momentum strategy weight\")\n mean_reversion_weight: float = Field(\n default=0.25, description=\"Mean reversion strategy weight\"\n )\n sentiment_weight: float = Field(\n default=0.20, description=\"Sentiment strategy weight\"\n )\n options_weight: float = Field(default=0.15, description=\"Options strategy weight\")\n short_selling_weight: float = Field(\n default=0.10, description=\"Short selling strategy weight\"\n )\n long_term_weight: float = Field(\n default=0.05, description=\"Long term strategy weight\"\n )\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\nclass Settings(BaseSettings):\n \"\"\"Main application settings.\"\"\"\n\n # Application info\n app_name: str = \"LangGraph Trading System\"\n app_version: str = \"0.1.0\"\n debug: bool = Field(default=False, alias=\"DEBUG\")\n\n # Component settings\n database: DatabaseSettings = Field(default_factory=DatabaseSettings)\n redis: RedisSettings = Field(default_factory=RedisSettings)\n brokers: BrokerSettings = Field(default_factory=BrokerSettings)\n ai: AISettings = Field(default_factory=AISettings)\n risk: RiskSettings = Field(default_factory=RiskSettings)\n trading: TradingSettings = Field(default_factory=TradingSettings)\n\n # Logging\n log_level: str = Field(default=\"INFO\", alias=\"LOG_LEVEL\")\n log_file: Optional[str] = Field(default=None, alias=\"LOG_FILE\")\n\n # Convenience properties for broker access\n @property\n def ALPACA_API_KEY(self) -> str:\n return self.brokers.alpaca_api_key\n \n @property\n def ALPACA_SECRET_KEY(self) -> str:\n return self.brokers.alpaca_secret_key\n \n @property\n def ALPACA_PAPER_BASE_URL(self) -> str:\n return self.brokers.alpaca_paper_base_url\n \n @property\n def ALPACA_LIVE_BASE_URL(self) -> str:\n return self.brokers.alpaca_live_base_url\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n extra = \"allow\"\n\n\n# Global settings instance\nsettings = Settings()\n\n\ndef get_settings() -> Settings:\n \"\"\"Get the global settings instance.\"\"\"\n return settings\n"}, "b4cd02d92e73f65a9de66aea8be9b277f9a32d59": {"t": 1785752987.6366782, "n": 4897, "h": "d57a7845ee6c0692", "c": "\"\"\"\nConfiguration settings for the LangGraph Trading System.\n\"\"\"\n\nfrom typing import Dict, List, Optional\nfrom pydantic import Field\nfrom pydantic_settings import BaseSettings\n\n\nclass DatabaseSettings(BaseSettings):\n \"\"\"Database configuration settings.\"\"\"\n\n host: str = Field(default=\"localhost\", env=\"DB_HOST\")\n port: int = Field(default=5432, env=\"DB_PORT\")\n database: str = Field(default=\"trading_system\", env=\"DB_NAME\")\n username: str = Field(default=\"postgres\", env=\"DB_USER\")\n password: str = Field(default=\"\", env=\"DB_PASSWORD\")\n\n @property\n def url(self) -> str:\n \"\"\"Get database connection URL.\"\"\"\n return f\"postgresql://{self.username}:{self.password}@{self.host}:{self.port}/{self.database}\"\n\n\nclass RedisSettings(BaseSettings):\n \"\"\"Redis configuration settings.\"\"\"\n\n host: str = Field(default=\"localhost\", env=\"REDIS_HOST\")\n port: int = Field(default=6379, env=\"REDIS_PORT\")\n password: Optional[str] = Field(default=None, env=\"REDIS_PASSWORD\")\n db: int = Field(default=0, env=\"REDIS_DB\")\n\n\nclass BrokerSettings(BaseSettings):\n \"\"\"Broker API configuration settings.\"\"\"\n\n # Alpaca\n alpaca_api_key: str = Field(default=\"\", env=\"ALPACA_API_KEY\")\n alpaca_secret_key: str = Field(default=\"\", env=\"ALPACA_SECRET_KEY\")\n alpaca_base_url: str = Field(\n default=\"https://paper-api.alpaca.markets\", env=\"ALPACA_BASE_URL\"\n )\n\n # Polygon\n polygon_api_key: str = Field(default=\"\", env=\"POLYGON_API_KEY\")\n\n # Interactive Brokers\n ib_host: str = Field(default=\"localhost\", env=\"IB_HOST\")\n ib_port: int = Field(default=7497, env=\"IB_PORT\")\n ib_client_id: int = Field(default=1, env=\"IB_CLIENT_ID\")\n\n\nclass AISettings(BaseSettings):\n \"\"\"AI/ML model configuration settings.\"\"\"\n\n # OpenAI\n openai_api_key: str = Field(default=\"\", env=\"OPENAI_API_KEY\")\n openai_model: str = Field(default=\"gpt-4\", env=\"OPENAI_MODEL\")\n\n # Google Gemini\n google_api_key: str = Field(default=\"\", env=\"GOOGLE_API_KEY\")\n gemini_model: str = Field(default=\"gemini-pro\", env=\"GEMINI_MODEL\")\n\n # DeepSeek\n deepseek_api_key: str = Field(default=\"\", env=\"DEEPSEEK_API_KEY\")\n deepseek_model: str = Field(default=\"deepseek-chat\", env=\"DEEPSEEK_MODEL\")\n\n\nclass RiskSettings(BaseSettings):\n \"\"\"Risk management configuration settings.\"\"\"\n\n max_daily_loss_pct: float = Field(\n default=0.10, description=\"Maximum daily loss percentage\"\n )\n max_position_size_pct: float = Field(\n default=0.05, description=\"Maximum position size percentage\"\n )\n max_portfolio_leverage: float = Field(\n default=2.0, description=\"Maximum portfolio leverage\"\n )\n var_confidence_level: float = Field(\n default=0.95, description=\"VaR confidence level\"\n )\n emergency_stop_loss_pct: float = Field(\n default=0.15, description=\"Emergency stop loss percentage\"\n )\n\n\nclass TradingSettings(BaseSettings):\n \"\"\"Trading system configuration settings.\"\"\"\n\n # Trading modes\n paper_trading: bool = Field(default=True, env=\"PAPER_TRADING\")\n live_trading: bool = Field(default=False, env=\"LIVE_TRADING\")\n\n # Portfolio settings\n initial_capital: float = Field(default=10000.0, env=\"INITIAL_CAPITAL\")\n target_symbols: List[str] = Field(default_factory=lambda: [\"SPY\", \"QQQ\", \"IWM\"])\n\n # Strategy settings\n momentum_weight: float = Field(default=0.25, description=\"Momentum strategy weight\")\n mean_reversion_weight: float = Field(\n default=0.25, description=\"Mean reversion strategy weight\"\n )\n sentiment_weight: float = Field(\n default=0.20, description=\"Sentiment strategy weight\"\n )\n options_weight: float = Field(default=0.15, description=\"Options strategy weight\")\n short_selling_weight: float = Field(\n default=0.10, description=\"Short selling strategy weight\"\n )\n long_term_weight: float = Field(\n default=0.05, description=\"Long term strategy weight\"\n )\n\n\nclass Settings(BaseSettings):\n \"\"\"Main application settings.\"\"\"\n\n # Application info\n app_name: str = \"LangGraph Trading System\"\n app_version: str = \"0.1.0\"\n debug: bool = Field(default=False, env=\"DEBUG\")\n\n # Component settings\n database: DatabaseSettings = Field(default_factory=DatabaseSettings)\n redis: RedisSettings = Field(default_factory=RedisSettings)\n brokers: BrokerSettings = Field(default_factory=BrokerSettings)\n ai: AISettings = Field(default_factory=AISettings)\n risk: RiskSettings = Field(default_factory=RiskSettings)\n trading: TradingSettings = Field(default_factory=TradingSettings)\n\n # Logging\n log_level: str = Field(default=\"INFO\", env=\"LOG_LEVEL\")\n log_file: Optional[str] = Field(default=None, env=\"LOG_FILE\")\n\n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n\n\n# Global settings instance\nsettings = Settings()\n"}, "19457818b956882adaa170db01b175f350d93001": {"t": 1785752989.1757944, "n": 4918, "h": "50556e9e97c79568", "c": "\"\"\"\nConfiguration settings for the LangGraph Trading System.\n\"\"\"\n\nfrom typing import Dict, List, Optional\nfrom pydantic import BaseSettings, Field\nfrom pydantic_settings import BaseSettings as PydanticBaseSettings\n\n\nclass DatabaseSettings(PydanticBaseSettings):\n \"\"\"Database configuration settings.\"\"\"\n \n host: str = Field(default=\"localhost\", env=\"DB_HOST\")\n port: int = Field(default=5432, env=\"DB_PORT\")\n database: str = Field(default=\"trading_system\", env=\"DB_NAME\")\n username: str = Field(default=\"postgres\", env=\"DB_USER\")\n password: str = Field(default=\"\", env=\"DB_PASSWORD\")\n \n @property\n def url(self) -> str:\n \"\"\"Get database connection URL.\"\"\"\n return f\"postgresql://{self.username}:{self.password}@{self.host}:{self.port}/{self.database}\"\n\n\nclass RedisSettings(PydanticBaseSettings):\n \"\"\"Redis configuration settings.\"\"\"\n \n host: str = Field(default=\"localhost\", env=\"REDIS_HOST\")\n port: int = Field(default=6379, env=\"REDIS_PORT\")\n password: Optional[str] = Field(default=None, env=\"REDIS_PASSWORD\")\n db: int = Field(default=0, env=\"REDIS_DB\")\n\n\nclass BrokerSettings(PydanticBaseSettings):\n \"\"\"Broker API configuration settings.\"\"\"\n \n # Alpaca\n alpaca_api_key: str = Field(default=\"\", env=\"ALPACA_API_KEY\")\n alpaca_secret_key: str = Field(default=\"\", env=\"ALPACA_SECRET_KEY\")\n alpaca_base_url: str = Field(default=\"https://paper-api.alpaca.markets\", env=\"ALPACA_BASE_URL\")\n \n # Polygon\n polygon_api_key: str = Field(default=\"\", env=\"POLYGON_API_KEY\")\n \n # Interactive Brokers\n ib_host: str = Field(default=\"localhost\", env=\"IB_HOST\")\n ib_port: int = Field(default=7497, env=\"IB_PORT\")\n ib_client_id: int = Field(default=1, env=\"IB_CLIENT_ID\")\n\n\nclass AISettings(PydanticBaseSettings):\n \"\"\"AI/ML model configuration settings.\"\"\"\n \n # OpenAI\n openai_api_key: str = Field(default=\"\", env=\"OPENAI_API_KEY\")\n openai_model: str = Field(default=\"gpt-4\", env=\"OPENAI_MODEL\")\n \n # Google Gemini\n google_api_key: str = Field(default=\"\", env=\"GOOGLE_API_KEY\")\n gemini_model: str = Field(default=\"gemini-pro\", env=\"GEMINI_MODEL\")\n \n # DeepSeek\n deepseek_api_key: str = Field(default=\"\", env=\"DEEPSEEK_API_KEY\")\n deepseek_model: str = Field(default=\"deepseek-chat\", env=\"DEEPSEEK_MODEL\")\n\n\nclass RiskSettings(PydanticBaseSettings):\n \"\"\"Risk management configuration settings.\"\"\"\n \n max_daily_loss_pct: float = Field(default=0.10, description=\"Maximum daily loss percentage\")\n max_position_size_pct: float = Field(default=0.05, description=\"Maximum position size percentage\")\n max_portfolio_leverage: float = Field(default=2.0, description=\"Maximum portfolio leverage\")\n var_confidence_level: float = Field(default=0.95, description=\"VaR confidence level\")\n emergency_stop_loss_pct: float = Field(default=0.15, description=\"Emergency stop loss percentage\")\n\n\nclass TradingSettings(PydanticBaseSettings):\n \"\"\"Trading system configuration settings.\"\"\"\n \n # Trading modes\n paper_trading: bool = Field(default=True, env=\"PAPER_TRADING\")\n live_trading: bool = Field(default=False, env=\"LIVE_TRADING\")\n \n # Portfolio settings\n initial_capital: float = Field(default=10000.0, env=\"INITIAL_CAPITAL\")\n target_symbols: List[str] = Field(default_factory=lambda: [\"SPY\", \"QQQ\", \"IWM\"])\n \n # Strategy settings\n momentum_weight: float = Field(default=0.25, description=\"Momentum strategy weight\")\n mean_reversion_weight: float = Field(default=0.25, description=\"Mean reversion strategy weight\")\n sentiment_weight: float = Field(default=0.20, description=\"Sentiment strategy weight\")\n options_weight: float = Field(default=0.15, description=\"Options strategy weight\")\n short_selling_weight: float = Field(default=0.10, description=\"Short selling strategy weight\")\n long_term_weight: float = Field(default=0.05, description=\"Long term strategy weight\")\n\n\nclass Settings(PydanticBaseSettings):\n \"\"\"Main application settings.\"\"\"\n \n # Application info\n app_name: str = \"LangGraph Trading System\"\n app_version: str = \"0.1.0\"\n debug: bool = Field(default=False, env=\"DEBUG\")\n \n # Component settings\n database: DatabaseSettings = Field(default_factory=DatabaseSettings)\n redis: RedisSettings = Field(default_factory=RedisSettings)\n brokers: BrokerSettings = Field(default_factory=BrokerSettings)\n ai: AISettings = Field(default_factory=AISettings)\n risk: RiskSettings = Field(default_factory=RiskSettings)\n trading: TradingSettings = Field(default_factory=TradingSettings)\n \n # Logging\n log_level: str = Field(default=\"INFO\", env=\"LOG_LEVEL\")\n log_file: Optional[str] = Field(default=None, env=\"LOG_FILE\")\n \n class Config:\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n\n\n# Global settings instance\nsettings = Settings()"}}}} |