问题: 对给出的固定字段和feature, 怎么连续的调参
- 特征:
- pv原始数据
- 已知有信号的现成特征
- loss:
- -sharpe
- 可以用的样本数很少. 66为周期的话, 5年的样本数只有 5x512/66=17 个
- 样本少其实就是约束少, 容易过拟合的意思
- 模型容量
- 可以用的样本数很少. 66为周期的话, 5年的样本数只有 5x512/66=17 个
- 把mu和sigma拆开成线性的
- -sharpe
- activation
- demean, L1
- 优化
- SGD普通
- Adam: 解决各个特征大小不均衡的问题
方案一:横截面分组算 Loss(Cross-Sectional Sub-Portfolio Sharpe)
这是量化因子投资中解决 Sharpe 样本数不足最经典的办法。
• 具体做法: 不要把 3000 只股票聚合成一个全市场组合去算 Sharpe。而是将这 3000 只股票在横截面上切分成 K 个互不重叠的子组合(例如:按行业分成 11 个板块组合,或者随机均匀分成 10 个子组合,每个组合约 300 只股票)。 • Loss 函数改写: 对每一个 66 天的 Batch,分别计算这 K 个子组合的 Sharpe,然后取均值作为 Loss:
1 K Loss = - ─── ∑ Sharpe (Sub-Portfolioₖ) K k=1• 为什么可行且解决了样本问题? 1. 样本数成倍增加:原来 1 个 Batch 只有 1 个 Sharpe 约束,现在 1 个 Batch 拥有 K 个 Sharpe 约束。如果分 10 组,序列级别的 Loss 约束数量直接从 17 个增加到了 170 个。 2. 不破坏时序:每个子组合内部依然保持着完整的、真实的 66 天时间序列,没有打乱日期。 3. 更强的泛化约束:模型被迫去寻找一个“在科技股组合、医药股组合、周期股组合里都能跑出高 Sharpe”的通用规律,防止了模型为了讨好全市场组合中某几只权重股而产生局部过拟合。