feat(portfolio): 接线 LocalUnifiedProvider 到 runner(Task5)

This commit is contained in:
2026-07-23 08:13:32 +08:00
parent 9243f86773
commit b89eb0f941
2 changed files with 18 additions and 5 deletions
+7 -1
View File
@@ -1,6 +1,12 @@
"""sanguo_portfolio 数据 provider 层。"""
from .baostock_provider import BaostockProvider
from .local_parquet_provider import LocalParquetProvider
from .local_unified_provider import LocalUnifiedProvider
from .sanguo_fundamentals import SanguoMiniQmtProvider
__all__ = ["SanguoMiniQmtProvider", "BaostockProvider", "LocalParquetProvider"]
__all__ = [
"SanguoMiniQmtProvider",
"BaostockProvider",
"LocalParquetProvider",
"LocalUnifiedProvider",
]
+11 -4
View File
@@ -50,8 +50,8 @@ def parse_args() -> argparse.Namespace:
p.add_argument("--max-pool", type=int, default=0, help="限制选股池前N只(0=不限,MVP验证用)")
p.add_argument("--frequency", default="day", help="回测频率 day/minute")
p.add_argument(
"--provider", default="local", choices=["local", "baostock", "miniqmt"],
help="数据 provider:baostock(默认,Mac/跨平台,历史成分股+TTM) / miniqmt(VPS 实盘,需 xtquant)",
"--provider", default="local", choices=["local", "baostock", "miniqmt", "unified"],
help="数据 provider:local(parquet,旧) / baostock(Mac 跨平台) / miniqmt(VPS 实盘) / unified(方案A 权威层)",
)
p.add_argument(
"--provider-config", default="{}",
@@ -76,7 +76,12 @@ def build_provider(provider_name: str, config_str: str) -> Any:
config_str: provider 配置 JSON 字符串
"""
import json
from .providers import BaostockProvider, LocalParquetProvider, SanguoMiniQmtProvider
from .providers import (
BaostockProvider,
LocalParquetProvider,
LocalUnifiedProvider,
SanguoMiniQmtProvider,
)
cfg: Dict[str, Any] = {}
if config_str and config_str != "{}":
@@ -93,7 +98,9 @@ def build_provider(provider_name: str, config_str: str) -> Any:
return BaostockProvider(cfg)
if name == "local":
return LocalParquetProvider(cfg)
raise ValueError(f"未知 provider: {name}(支持: local / baostock / miniqmt)")
if name == "unified":
return LocalUnifiedProvider(cfg)
raise ValueError(f"未知 provider: {name}(支持: local / baostock / miniqmt / unified)")
def build_broker_facade(engine: Any) -> Any: