43b6a58ba7
ashare_engine override load_data: 5m/15m 直查 dbbardata 转 BarData(MINUTE), 绕过 vnpy Interval enum 限制(原生只认 d/1h/1m)。cta_engine +interval 参数, 5m/15m 映射 MINUTE 过父类校验。api(schema/routes)+orchestrator 透传 interval。 顺带修 cta_engine DB路径污染(yaml NAS路径在Win VPS误解析→改读vt_setting.json)。 测试: 15m 600519一年 3888bars total_return-0.22 sharpe-2.04; 5m 11664bars; 日线未回归(237bars)。
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""
|
|
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%
|
|
|
|
|
|
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
|