""" Pydantic schemas for FastAPI request/response models """ from pydantic import BaseModel class CtaBacktestRequest(BaseModel): """CTA backtest request schema""" symbol: str strategy: str params: dict = {} start: str end: str benchmark: str = "hs300" capital: float = 1_000_000 position_pct: float = 0.95 # K 线周期:"d"=日线(默认) / "5m" / "15m"。5m/15m 走 AShareBacktestingEngine 适配。 interval: str = "d" # A 股费用参数(可选,前端先不暴露,给默认值) commission_rate: float = 0.00025 # 万 2.5 min_commission: float = 5.0 # 最低 5 元 stamp_duty_rate: float = 0.0005 # 卖方 0.05% transfer_fee_rate: float = 0.00001 # 沪市 0.001% slippage: float = 0.0 # 滑点(比率,万10=0.001);0=不加滑点 class OptimizeRequest(BaseModel): """Optimization request schema""" symbol: str strategy: str grid: dict start: str end: str max_workers: int = 2 class FactorAnalysisRequest(BaseModel): """Factor analysis request schema""" symbols: list[str] factor_names: list[str] start: str end: str