refactor(quant): M7.2a Composite Engine 模块化(quant/composite.py)
- cross_sectional_zscore / composite_score / build_factor_panels 从 local_engine 迁入 quant/composite.py;新增统一入口 build_score_panel(daily, factor_specs) - local_engine re-export 保持旧引用兼容;selection/engine 的评分面板构建均指向 composite —— 选股与回测的复合分实现收敛于一处 - 回归:quant/eval/research/selection 一致性/qlib 引擎测试全过;全量 pytest 通过
This commit is contained in:
@@ -14,9 +14,10 @@ from app.domain.entities.research import (
|
||||
SelectionSpec,
|
||||
UniverseSpec,
|
||||
)
|
||||
from app.quant.composite import composite_score, cross_sectional_zscore
|
||||
from app.quant.evaluation import run_factor_test
|
||||
from app.quant.factors import compute_factor
|
||||
from app.quant.local_engine import composite_score, cross_sectional_zscore, rebalance_dates
|
||||
from app.quant.local_engine import rebalance_dates
|
||||
from pydantic import ValidationError
|
||||
|
||||
from conftest_quant import synthetic_daily
|
||||
@@ -115,7 +116,7 @@ class TestEvaluation:
|
||||
|
||||
class TestSingleStockDegradation:
|
||||
def test_zscore_single_stock_keeps_candidate(self) -> None:
|
||||
from app.quant.local_engine import cross_sectional_zscore
|
||||
from app.quant.composite import cross_sectional_zscore
|
||||
|
||||
daily = synthetic_daily({"ONLY": 0.001}, n=80)
|
||||
_d, panel = compute_factor("momentum_20", daily)
|
||||
|
||||
Reference in New Issue
Block a user