brainstorming
OBobra/superpowers298k近 7 天新增 2,631 个 star
QuantMind 模型训练配置文件生成器:把自然语言需求(市场/周期/模型/因子/超参/时间切分)转成前端『模型训练 → 导入配置』可直接导入的 quantmind-model-training-config 文件(YAML/JSON,.yml 扩展名),并内置 schema 校验脚本与 5 个可直接导入的演示/预设配置。当用户要生成/编写/导出训练配置文件、批量造训练 preset、或需要可直接导入的训练参数模板时使用。触发词:训练配置文件、生成训练配置、导入配置、训练配置模板、训练 preset、训练参数文件、配置文件 schema
⚙️ 本技能遵循公共运行环境契约(最高优先级,先于本文其余内容执行): 详见 _shared/env-contract.md,执行前先读它。
把「用户想要什么模型」翻译成前端模型训练页可以一键导入的配置文件。 本技能不调用训练 API(纯文件生成 + 本地/容器内校验);生成物交给用户在前端点导入。
electron/src/pages/training/trainingUtils.tsx、
electron/src/pages/training/__tests__/trainingConfigFile.test.ts.yml 文件(内容可为 YAML,也可为 JSON —— 导入用的 js-yaml 认 JSON)。
文件名建议 模型训练配置_<名称>_<YYYYMMDD>.yml。.yml / .yaml / .txt,不要用 .json 扩展名。schema_version: 1 # 固定 1
kind: quantmind-model-training-config # 固定值
exported_at: "2026-09-22T00:00:00.000Z" # 元数据
market: CN # CN|HK|US|CRYPTO|FUTURES
factor_source: l1_l2_factors # 可选:QuantDB 直读源
factor_catalog_version: qdb-cn-l1_l2_factors-xxxx # 可选:仅作版本提示
factor_filter:
enabled: true
n_top: 80
ic_threshold: 0.01
icir_threshold: 0.15
correlation_threshold: 0.9
configuration:
displayName: MY_MODEL_T5
displayNameMode: manual # auto|manual
selectedFeatures: [mom_ret_20d, vol_std_20, ...] # 非空、去重、禁止标签字段
timePeriods:
train: ["2018-01-02", "2023-06-18"]
val: ["2023-06-26", "2025-01-21"]
test: ["2025-01-28", "2026-08-28"]
target: { mode: return, horizonDays: 5 }
params:
model_type: lightgbm # 13 选 1
# …见 references/schema.md 的白名单键
context:
initialCapital: 1000000
benchmark: SH000300 # CN=SH000300 HK=HSI US=SPX CRYPTO=BTC FUTURES=CL.FUT
commissionRate: 0.00025
slippage: 0.0005
dealPrice: open # open|close
market: CN
industry_as_feature: false
wfa: { enabled: false, strategy: rolling, nWindows: 4, trainYears: 3, valMonths: 12, stepMonths: 12 }
l1_l2_factors;只要日频用 l1_factors;纯高频用 l2_factors。train_end < val_start、val_end < test_start;
间隔 ≥ horizonDays + 1 天,否则后端会把 val/test 起点悄悄后移。learning_rate/num_leaves/max_depth/...;DL 给 dl_*。
多模型 Stacking 才写 model_types(≥2)+ ensemble_method: stacking。context.market 与顶层 market 保持一致。| 项 | 默认 |
|---|---|
| 时间切分(T+5) | train 2018-01-02~2023-06-18 / val 2023-06-26~2025-01-21 / test 2025-01-28~2026-08-28 |
| 时间切分(T+3) | 同上,但 val 起 2023-06-23、test 起 2025-01-26(满足 gap≥4) |
| factor_filter | enabled:true, n_top:80, ic:0.01, icir:0.15, corr:0.9 |
| LightGBM 稳健档 | lr 0.01 / num_leaves 15 / max_depth 6 / min_data 500 / l1 2 / l2 5 / ff 0.5 / bag 0.7 / rounds 3000 / es 100 |
| 基准 | CN SH000300、HK HSI、US SPX、CRYPTO BTC、FUTURES CL.FUT |
factor_catalog_version 只是提示,实际训练用页面当前已发布版本,不是回放旧版本。horizon+1,后端会自动平移 val/test 起点并在 system_notices 提示。| 文件 | 场景 |
|---|---|
| templates/cn-l1l2-t5-lightgbm.yml | CN / L1L2 / T+5 / LightGBM 稳健档(推荐起手) |
| templates/cn-l1l2-t3-lightgbm.yml | CN / L1L2 / T+3 / LightGBM 基线(与上一份同特征,做周期对照) |
| templates/cn-l1l2-t5-gru.yml | CN / L1L2 / T+5 / GRU 深度学习 |
| templates/hk-t5-lightgbm.yml | HK / T+5 / LightGBM 跨市场 |
| templates/quantmind-training-L1L2-ICIR-100-T5.yml | CN / ICIR 优选 100 特征 / T+5 / LGB 重正则(大 preset) |
改这些文件比重头写更稳:它们已通过校验脚本、且特征 key 全部存在于本地目录。
仓库根目录另有两个规模更大的成品 preset(quantmind-training-L1L2-120-*.yml)可作参考。
纯标准库优先(JSON 可无需依赖;YAML 需 PyYAML):
# 本地直接跑(本机有 PyYAML 时)
python3 skills/model-training-config/scripts/validate_training_config.py <你的配置.yml>
# 无 PyYAML 时进容器跑(env-contract §2)
docker cp <你的配置.yml> quantmind:/tmp/cfg.yml
docker cp skills/model-training-config/scripts/validate_training_config.py quantmind:/tmp/
docker exec -w /app quantmind python3 /tmp/validate_training_config.py /tmp/cfg.yml
脚本检查:kind/schema_version、市场、日期顺序、horizon+1 间隔、模型类型白名单、
params 未知键、factor_filter 钳制区间、标签字段混入、factor_source 与直读市场一致性。
退出码 0=通过(可含 warning)、1=有 error。error 必须清零;warning 要逐条判断是否符合预期。
| 现象 | 处理 |
|---|---|
| 导入报「不是受支持的 QuantMind 模型训练配置文件」 | kind / schema_version 写错 |
| 导入报「训练、验证、测试时间段必须按先后顺序」 | 改成 train_end < val_start、val_end < test_start |
| 导入报「配置中的模型类型不受支持」 | model_type 不在 13 种里 |
| 导入后特征少了很多 | 不在当前目录的 key 被过滤;对照预览提示换用存在的 key |
| 超参没生效 | 用了非白名单键(如 lgb_learning_rate),被静默丢弃;改用共享键 |
| 训练时 val/test 起点和配置不一致 | 间隔 < horizon+1,后端自动平移 |
| Start 按钮灰着 | 直读市场目录未发布/覆盖未就绪,或训练节点未就绪 |
| 文件选择器看不到文件 | 扩展名不是 .yml/.yaml/.txt |
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star