跳转至

策略 4: rev_1d — 1d 价格反转

文档更新时间: 2026-03-08 策略定位: 单频日级反转 目标口径: 与 strategy_2.md 保持一致,仅将信号改为 1d 反转

策略思想

这是 strategy_2.md 的单频版本,只使用 1d 价格收益做时序标准化后反向交易。

核心直觉是: 当某个 symbol 在最近 1 个自然日内涨得更多时,次日更倾向于回落; 当最近 1 个自然日跌得更多时,次日更倾向于反弹。因此对 ret_1d 做 时序 z-score 后取负号,得到反转信号。

信号构造

1. 对每个 symbol, 每个交易日:
   ret_1d = close(EOD) / close(EOD - 1d) - 1

2. 时序 z-score 标准化 + 取负号:
   z1d = -zscore(ret_1d, window=30)   // 涨多了 → 负信号 → 做空; 跌多了 → 正信号 → 做多

3. 信号:
   signal = z1d

下单逻辑

每日 23:59 UTC:
    1. 对所有 symbols 计算 signal
    2. 排序: signal 最大的 30 只做多, 最小的 30 只做空
    3. 每只等权 ±1.67% (总多头 50%, 总空头 50%)
    4. 市价单执行, 扣除 10bps 换手费

完整时间线 (单次交易日)

T = 某个交易日 (例如 2024-06-15)

T-1 23:59 UTC  ← EOD - 1d: 取上一交易日 EOD close 作为 close(EOD-1d)
T   23:59 UTC  ← EOD:      取当前交易日 EOD close 作为 close(EOD)

                 ret_1d = close(T 23:59) / close(T-1 23:59) - 1

                 计算 zscore, 生成 signal
                 排序, 确定目标仓位
                 执行换仓 (市价单, ~1分钟内完成)

T+1 00:00 UTC  ← 新仓位开始持有, 赚取 T+1 的日收益
T+1 23:59 UTC  ← 再次计算信号, 再次换仓

为什么仍然使用 same_day

same_day:
    T 23:59 计算 signal → T+1 00:00 开始持有 → T+1 23:59 PnL 结算
    使用的是截至 T 23:59 的最新 1d 收益信息

prev_day:
    T-1 23:59 计算 signal → T 00:00 开始持有 → T 23:59 PnL 结算
    会额外引入约 24h 延迟, 与当前定义的 ret_1d 口径不一致

与策略 2 的区别

策略 2:
    signal = mean(z2h, z4h)
    更偏短周期、响应更快

策略 4:
    signal = z1d
    仅保留 1d 这一条反转腿, 结构更简单