tradusai/config/settings.py
2025-12-09 22:46:04 +08:00

52 lines
1.6 KiB
Python

"""
Configuration settings for Signal Generation System
Pure API mode - no Redis dependency
"""
from typing import List
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
"""Application settings with validation"""
model_config = SettingsConfigDict(
env_file=".env",
case_sensitive=True,
extra="ignore" # Ignore extra fields from environment
)
# Symbol Configuration - 支持多币种
SYMBOLS: str = "BTCUSDT,ETHUSDT" # 逗号分隔的交易对列表
SYMBOL: str = "BTCUSDT" # 向后兼容,默认主币种
@property
def symbols_list(self) -> List[str]:
"""解析币种列表"""
return [s.strip().upper() for s in self.SYMBOLS.split(',') if s.strip()]
# Binance API Configuration
BINANCE_API_BASE_URL: str = "https://fapi.binance.com"
# Kline intervals for multi-timeframe analysis
KLINE_INTERVALS: str = "5m,15m,1h,4h"
@property
def kline_intervals_list(self) -> list:
"""Parse kline intervals from comma-separated string"""
return [interval.strip() for interval in self.KLINE_INTERVALS.split(',')]
# Monitoring
LOG_LEVEL: str = "INFO"
# Profit filter - 不同周期的最低盈利要求
MIN_PROFIT_PCT_SHORT: float = 1.0 # 短周期 (5m/15m/1h) 最低 1%
MIN_PROFIT_PCT_MEDIUM: float = 2.0 # 中周期 (4h/1d) 最低 2%
MIN_PROFIT_PCT_LONG: float = 5.0 # 长周期 (1d/1w) 最低 5%
# 向后兼容
MIN_PROFIT_PCT: float = 1.0
PREFER_INTRADAY: bool = True
settings = Settings()