Files
etf/docs/experiments/006_holding_duration_analysis.md
aszerW 74f0eebef0 docs(experiment): add 1-day holding deep attribution analysis (006)
- Rank decline: 70.3% (45/64), mostly rank=3 entry → rank=4/5 exit
- Threshold breach: 25.0% (16/64), all actual momentum drops
- 38% cases: own momentum rises but outranked by others
- N225/GDAXI highest 1-day rate (22-26%), A-shares lowest (3-6%)
- Optimization: min holding period, confidence filter, rank smoothing
2026-06-02 21:41:34 +08:00

8.3 KiB
Raw Blame History

实验记录 006: 标的持有时间分布分析

实验信息

项目 内容
实验编号 006
实验日期 2026-06-02
实验类型 策略行为分析
研究问题 Simple Rotation 策略中各标的持有时间的分布特征
数据来源 rotation/results/simple_rotation_detail.json
回测区间 2020-01-10 ~ 2026-06-021546 交易日)

1. 统计方法

持有周期定义

一次"持有周期"指:标的出现在 added(买入)→ 直到出现在 removed(卖出)之间经历的交易日数

持有天数 = 卖出日索引 - 买入日索引不含卖出当天T+1 open 执行卖出)

统计范围

  • 完整周期:已被卖出的持有记录(共 391 次)
  • 截尾记录回测结束时仍在持有的标的3 个),单独列出

2. 整体分布

描述统计

指标
平均持有天数 10.9 天
中位数 7 天
标准差 11.0 天
最短 1 天
25% 分位 3 天
75% 分位 16 天
最长 66 天

分桶统计

持有天数 次数 占比 分布
1 天 64 16.4% ████████
2-3 天 67 17.1% █████████
4-5 天 34 8.7% ████
6-10 天 67 17.1% █████████
11-20 天 93 23.8% ████████████
21-50 天 62 15.9% ████████
51-100 天 4 1.0%
100 天+ 0 0.0%

3. 按标的统计

标的 代码 持有次数 平均天数 中位天数 最短 最长
纳指100 NDX 37 17.4 13.0 1 58
创业板指 399006.SZ 31 14.0 9.0 1 66
短债指数 931862.CSI 41 12.2 9.0 1 35
中证红利低波 H30269.CSI 31 12.0 10.0 1 36
原油 CL=F 36 11.4 6.0 1 63
日经225 N225 42 10.8 9.0 1 46
恒生科技 HSTECH.HK 25 10.8 9.0 1 33
德国DAX GDAXI 49 8.9 5.0 1 32
黄金 GC=F 38 8.6 7.0 1 28
有色金属 HG=F 39 7.1 4.0 1 23
恒生指数 HSI 22 6.5 5.5 1 21

4. 当前仍持有的标的(截尾记录)

标的 代码 买入日期 已持有天数
纳指100 NDX 2026-04-15 32 天
创业板指 399006.SZ 2026-04-24 25 天
日经225 N225 2026-05-26 6 天

5. 分析与结论

持有时间特征

  1. 中位数仅 7 天:策略换手频率较高,约 75% 的持有周期在 16 天以内
  2. 1 天即卖出占比 16.4%:存在较多“一日切换”,即标的刚被选入就被替换
  3. 超过 50 天的长持有极其稀少(仅 4 次1.0%),说明动量信号很难长期维持
  4. 11-20 天是最常见的持有区间23.8%),对应约 2-4 周的动量持续期

标的差异分析

特征 标的 解读
持有最久 纳指100均值 17.4 天) 动量持续性最好,趋势一旦形成可维持较久
换手最快 恒生指数(均值 6.5 天) 动量信号不稳定,频繁进出
进出最频繁 德国DAX49 次) 作为欧洲唯一代表,经常在边际被替换
持有最稳定 纳指100、创业板指 A股+美股核心资产,动量趋势明确

6. 1天持有深度归因分析64次 / 16.4%

卖出原因分类

原因 次数 占比
排名下降rank > 3 45 70.3%
阈值跌破(低于短债阈值) 16 25.0%
其他diversified机制等 3 4.7%

6.1 排名下降类45次70.3%

买入日 rank 分布:绝大多数在 rank=3 边缘入选

买入日rank 次数 占比
rank=1 2 4%
rank=2 6 13%
rank=3 26 58%
rank=4 10 22%
rank=5 4 9%

卖出日 rank 分布:微降 1-2 名即被淘汰

卖出日rank 次数 占比
rank=2 1 2%
rank=3 2 4%
rank=4 24 53%
rank=5 14 31%
rank=6 6 13%
rank=7 1 2%

动量变化(买入→卖出日该标的动量得分变化):

指标
均值 -0.0157
中位数 0.0000
动量上升仍被卖出 18/47 (38%)
动量下降被卖出 20/47 (43%)

关键发现38% 的 1 天持有中,标的自身动量实际上升,但因为其他标的动量上升更多,导致排名相对下降而被淘汰。这是相对排名机制的固有特性——边际标的rank=3极易被挤出。

diversified 机制影响:仅 12% 的排名下降案例是因为同大类内被更强标的挤出,说明 diversified 不是主要原因。

6.2 阈值跌破类16次25.0%

所有 16 例均为实际动量跌破短债阈值(无跨市场数据缺失导致)。

典型模式:标的在买入日刚好超过阈值(边际入选),次日动量大幅回落跌破阈值。

阈值边缘入选案例(买入时超过阈值幅度):

  • 黄金 2021-11-26买入动量 0.0379,次日降至 0.0050(阈值 0.0212
  • 原油 2022-11-01买入动量 0.0359,次日降至 0.0171(阈值 0.0194
  • 德国DAX 2024-06-03买入动量 0.0717,次日降至 0.0096(阈值 0.0180

极端信号跳变案例(买入日动量异常高,次日归零):

标的 买入日 买入动量 卖出日动量
恒生科技 2024-10-15 58.00 None
创业板指 2024-10-17 105.33 None
原油 2026-03-16 160.89 None

这些极端值(动量 > 1.0)通常对应市场剧烈波动(如政策利好、黑天鹅事件),次日信号回归正常水平。

6.3 按标的分布

标的 市场 1天持有次数 占该标的总持有次数 1天持有率
日经225 JP 11 42 26%
德国DAX EU 11 49 22%
黄金 COMMODITY 8 38 21%
原油 COMMODITY 8 36 22%
有色金属 COMMODITY 7 39 18%
短债指数 BOND 6 41 15%
纳指100 US 4 37 11%
恒生科技 HK 4 25 16%
恒生指数 HK 2 22 9%
创业板指 A 2 31 6%
中证红利低波 A 1 31 3%

日经225 和德国DAX 是 1 天持有的高发标的(各 11 次A股标的 1 天持有率最低3-6%),说明 A 股动量信号持续性最好。

6.4 年份分布

年份 1天持有次数 占当年总持有次数 占比
2020 9 63 14%
2021 14 60 23%
2022 4 47 9%
2023 6 52 12%
2024 18 81 22%
2025 9 67 13%
2026 4 21 19%

2021 和 2024 年 1 天持有率最高22-23%),对应市场波动加剧时期。

6.5 根因总结

1天持有 = 边际入选 + 信号不稳定

核心机制:
1. 标的在 rank=3 边缘入选58% 的排名下降类)
2. 次日排名微降至 rank=4/584%)即被淘汰
3. 38% 的情况下标的动量实际上升,但其他标的上升更多
4. 25% 的情况下动量直接跌破短债阈值

7. 对策略的启示

  1. 交易成本影响:平均持有 10.9 天,年化换手约 ~23 次(按 250 天/年 ÷ 10.90.1% 交易成本对年化收益的侵蚀约 2.3%

  2. “一日切换”可优化方向

    • 最短持有期约束:对 rank=3 边际入选的标的,可考虑设置 ≥2 天最短持有期,避免次日即被微降排名淘汰
    • 置信度过滤:仅当标的动量超过阈值一定幅度(如 >10%)时才纳入持仓,减少阈值边缘反复切换
    • 排名平滑:使用 2-3 日动量均值作为排名依据,降低单日噪音
  3. 分散化效果不同标的持有时间差异大6.5 ~ 17.4 天),说明各市场动量节奏不同步,分散持仓有助于平滑收益

  4. 跨市场对齐日经和德国DAX 等境外标的 1 天持有率较高22-26%),可能与 A 股交易日不完全重叠导致信号滞后有关