工具实战
从标签口径、共享特征层和市场上下文字段出发,说明 CatBoost 在 A 股与期货之间做联合训练或迁移时需要注意的适配方法。
当一个 CatBoost 模型在 A 股样本上跑得不错时,很多人会自然地问:能不能直接迁到期货、ETF、可转债,甚至海外市场?
答案通常不是“能”或“不能”,而是:先看你迁移的是结构,还是迁移的是口径。
这一讲要解决的是怎样在 A 股和期货这类差异明显的数据域之间做更稳的适配,而不是简单把训练好的模型拿去硬套。
同样叫“量化样本”,A 股和期货在很多关键地方并不一样:
如果你只是把字段名对齐,就认为两个市场能直接共用模型,结果通常不会太好。真正应该先统一的是“可比口径”,例如:
跨市场迁移如果没有固定步骤,很容易在“字段大致差不多”的幻觉里直接开始训练。更稳的办法是先统一标签和特征口径,再决定是不是做联合训练。
不是所有特征都能跨市场迁移。更适合先共享的是这几类:
而下面这些特征通常不适合直接共用:
换句话说,先共享“行为特征”,后共享“市场特有身份特征”。
如果你打算做联合训练,不要假装所有样本来自同一种市场。更稳的做法是显式告诉模型:
这些信息本身就可以作为类别特征,帮助模型区分不同市场的分布背景。
即使你最终想做一个统一模型,验证也不要一锅端。至少要分别看:
如果统一模型只是在总体验证集上看起来还行,但拆开后某一市场明显偏弱,那说明所谓“迁移成功”其实并不成立。
这一步尤其重要,因为跨市场样本量经常不平衡。A 股数据量可能远大于期货样本,如果只看合并后的总指标,模型很可能只是把股票学得更好了,却没有真正提升期货侧表现。对迁移问题来说,拆开看永远比合起来看更诚实。
不是所有项目都需要走到“统一模型”这一步。下面三种思路没有绝对高下,重点是要和你的样本规模、研究目标以及部署复杂度匹配。
这是最保守,也最常用的办法。你可以让两个市场用同一套特征构造逻辑,但分别训练各自模型。这样最容易保持口径一致,同时避免把市场差异硬揉在一起。
如果样本规模足够,且你希望模型学习部分共性结构,可以把两类样本合起来训练,同时加入 market_type、instrument_class 这类上下文字段。
这时你要重点观察:模型有没有过度偏向样本更多的那一侧市场。
如果某一市场样本明显少,可以先在大样本市场验证一套特征体系,再在小样本市场用更保守的参数重训,而不是直接拿原模型上线。
feature_cols = [
"market_type",
"instrument_class",
"ret_5d",
"momentum_20d",
"volatility_20d",
"volume_ratio",
]
cat_cols = ["market_type", "instrument_class"]
train_pool = Pool(train_df[feature_cols], label=train_df[target_col], cat_features=cat_cols)
valid_pool = Pool(valid_df[feature_cols], label=valid_df[target_col], cat_features=cat_cols)
model = CatBoostRegressor(
iterations=700,
learning_rate=0.05,
depth=6,
random_seed=42,
verbose=100,
)
model.fit(train_pool, eval_set=valid_pool, use_best_model=True)
真正落地时要额外做的一件事,是把验证结果按 market_type 再拆开复核,而不是只看一行总分。
跨市场问题的难点在于,很多失效现象看起来像模型问题,实际上是数据定义没统一。所以排查顺序最好始终先查口径,再查特征,再查模型。
还有一个容易忽略的点是收益和波动的量纲。A 股和期货即使都做日频建模,收益分布和波动结构也可能差很多。如果没有做合适的标准化或分市场归一,模型很可能把“市场差异”误学成“预测规律”。
这通常说明模型把样本更多的一侧学得更好了,但牺牲了另一侧。此时不要被总体指标迷惑,应该回到分市场表现重新判断是否值得合并。
先排查合约连续化、展期处理、夜盘映射和标签定义,而不是先怪模型。期货数据里很多“模型漂移”其实来自数据口径变化。
这不一定是坏事,但如果变化过大,需要确认是不是某些市场身份特征压过了原本真正想学的行为特征。
如果你已经做到下面几点,这一讲就算完成:
本讲是《CatBoost量化建模完整学习计划》的第 7/9 讲,当前主题是《CatBoost跨市场迁移:A股与期货数据域适配方法》。
上一讲:第 6 讲《CatBoost概率输出与风险分层在选股模型中的应用》。
下一讲:第 8 讲《CatBoost模型鲁棒性测试:市场状态切换下的稳定性评估》。
风险揭示与免责声明
本页面内容仅用于量化研究与技术交流,旨在展示研究方法与流程,不构成对任何金融产品、证券或衍生品的要约、招揽、推荐或保证。
本文所涉历史数据、回测结果与示例参数不代表未来表现,也不应作为投资决策依据。
市场存在波动、流动性与执行偏差等不确定性,任何策略均可能出现收益波动或阶段性失效。
读者应结合自身风险承受能力进行独立判断,并在必要时咨询持牌专业机构意见。