feat(factors): 新增筹码集中度相关因子并优化训练框架

- 添加 19 个筹码分布和胜率相关因子(包括chip_dispersion、winner_rate等系列)
- LightGBM模型添加早停和训练指标记录功能
- 统一Label配置到common.py模块
- 新增list_factors.py因子列表脚本
This commit is contained in:
2026-03-29 01:34:58 +08:00
parent d4e0e2a0b6
commit c3d1b157e9
9 changed files with 373 additions and 246 deletions

View File

@@ -250,67 +250,58 @@ SELECTED_FACTORS = [
"GTJA_alpha188",
"GTJA_alpha189",
"GTJA_alpha191",
"chip_dispersion_90",
"chip_dispersion_70",
"cost_skewness",
"dispersion_change_20",
"price_to_avg_cost",
"price_to_median_cost",
"mean_median_dev",
"trap_pressure",
"bottom_profit",
"history_position",
"winner_rate_surge_5",
"winner_rate_cs_rank",
"winner_rate_dev_20",
"winner_rate_volatility",
"smart_money_accumulation",
"winner_vol_corr_20",
"cost_base_momentum",
"bottom_cost_stability",
"pivot_reversion",
"chip_transition",
]
# 因子定义字典完整因子库用于存放尚未注册到metadata的因子
FACTOR_DEFINITIONS = {"cs_rank_circ_mv": "cs_rank(circ_mv)"}
# 需要排除的因子列表(这些因子不会被计算和使用)
# 用于临时屏蔽效果不好的因子,无需从 SELECTED_FACTORS 中删除
# EXCLUDED_FACTORS: List[str] = [
# # "GTJA_alpha005",
# # "GTJA_alpha028",
# # "GTJA_alpha023",
# # "GTJA_alpha002",
# # "GTJA_alpha010",
# # "GTJA_alpha011",
# # "GTJA_alpha044",
# # "GTJA_alpha036",
# # "GTJA_alpha027",
# # "GTJA_alpha109",
# # "GTJA_alpha104",
# # "GTJA_alpha103",
# # "GTJA_alpha085",
# # "GTJA_alpha111",
# # "GTJA_alpha092",
# # "GTJA_alpha067",
# # "GTJA_alpha060",
# # "GTJA_alpha062",
# # "GTJA_alpha063",
# # "GTJA_alpha079",
# # "GTJA_alpha073",
# # "GTJA_alpha087",
# # "GTJA_alpha117",
# # "GTJA_alpha113",
# # "GTJA_alpha138",
# # "GTJA_alpha121",
# # "GTJA_alpha124",
# # "GTJA_alpha133",
# # "GTJA_alpha131",
# # "GTJA_alpha118",
# # "GTJA_alpha164",
# # "GTJA_alpha162",
# # "GTJA_alpha157",
# # "GTJA_alpha171",
# # "GTJA_alpha177",
# # "GTJA_alpha180",
# # "GTJA_alpha188",
# # "GTJA_alpha191",
# ]
# =============================================================================
# Label 配置(统一绑定 label_name 和 label_dsl
# =============================================================================
# Label 名称
LABEL_NAME = "future_return_5"
# Label DSL 公式
LABEL_DSL = "(ts_delay(close, -5) / ts_delay(open, -1)) - 1"
# Label 配置字典(绑定 name 和 dsl
LABEL_FACTOR = {LABEL_NAME: LABEL_DSL}
def get_label_factor(label_name: str) -> dict:
"""获取Label因子定义字典。
警告: 此函数已废弃,请直接使用 LABEL_FACTOR 常量。
label_name 参数将被忽略,始终返回预定义的 LABEL_FACTOR。
Args:
label_name: label因子名称
label_name: label因子名称(已废弃,仅保留参数保持向后兼容)
Returns:
Label因子定义字典
"""
return {
label_name: "(ts_delay(close, -5) / ts_delay(open, -1)) - 1",
}
return LABEL_FACTOR
# =============================================================================