问题: 对给出的固定字段和feature, 怎么连续的调参

  • 特征:
    • pv原始数据
    • 已知有信号的现成特征
  • loss:
    • -sharpe
      • 可以用的样本数很少. 66为周期的话, 5年的样本数只有 5x512/66=17 个
        • 样本少其实就是约束少, 容易过拟合的意思
        • 模型容量
    • 把mu和sigma拆开成线性的
  • 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”的通用规律,防止了模型为了讨好全市场组合中某几只权重股而产生局部过拟合。