"""内置因子表达式库(Alpha158/101 子集,使用 vnpy.alpha ts_ 算子).""" from .registry import register_factor # 内置因子列表(使用 ts_ 算子 + 列名 close/open/high/low/volume) # 修正:使用 vnpy.alpha 表达式语法(ts_mean 等),而非 polars 语法 BUILTIN_FACTORS = [ { "name": "ma5", "expression": "ts_mean(close, 5)", "category": "builtin" }, { "name": "ma10", "expression": "ts_mean(close, 10)", "category": "builtin" }, { "name": "ma20", "expression": "ts_mean(close, 20)", "category": "builtin" }, { "name": "vol_ma5", "expression": "ts_mean(volume, 5)", "category": "builtin" }, { "name": "return_1d", "expression": "ts_delta(close, 1)", "category": "builtin" }, { "name": "return_5d", "expression": "ts_delta(close, 5)", "category": "builtin" }, { "name": "high_low_5", "expression": "(ts_max(high, 5) - ts_min(low, 5)) / close", "category": "builtin" }, ] def _register_all() -> None: """注册所有内置因子到注册表.""" from .registry import _REGISTRY for factor in BUILTIN_FACTORS: if factor["name"] not in _REGISTRY: register_factor( factor["name"], factor["expression"], factor["category"] ) # 模块导入时自动注册内置因子 _register_all()