9月季节性n=77标普500(1950起)
只显示当前月份。1949-01-03 起 77 个9月,按交易日序号对齐 (不是日历日 —— 每月的日历日数和周末分布不同,按日历日对齐会把不同位置混在一起)。 曲线是中位路径,不是平均 —— 少数极端年份会把平均拉歪。
9月是全年偏弱的月份
9月上涨频率 44.2%(±5.7%), 同期所有月份的基准率 60.5%, 差 -16.4pp —— 折合 -2.89 个标准误。
下图是9月的月内中位路径,横轴为该月第几个交易日,纵轴为自上月收盘的累计收益。 悬停任意点可看该日的上涨频率与样本数。
中位路径高点在第 13 个交易日(+0.66%), 到月末第 20 日为 -0.65% —— 高点之后 -1.31%。
⚠ 这个「高点落在第几日」本身是噪音大户:路径是 77 条曲线的逐点中位, 相邻几日的差值远小于年度间的离散度。别把它当成月内择时的切换日。
月内分段:「1 → 第 k 日」偏涨?「第 k 日 → 月末」偏跌?
先说结论:9月不存在「前半月涨、后半月跌」的结构。 整条轮廓上,前段相对其它月份同长度前段的超出中位是 -11pp, 后段偏跌的超出中位是 12pp。 也就是说9月是全月偏弱、后段更弱, 而不是「某号之前涨、之后跌」—— 前段看着 55% 像在涨, 但其它月份同期是 62%,它其实也低于正常水平。
| 切点 k | ≈几号 | 前段上涨率 | 其它月 | 超出 | 后段下跌率 | 其它月 | 超出 |
|---|
| 第3日 ● | 5号 | 55% | 62% | -8pp | 58% | 42% | 16pp |
| 第4日 | 7号 | 56% | 62% | -7pp | 57% | 42% | 15pp |
| 第5日 | 8号 | 51% | 63% | -12pp | 51% | 42% | 9pp |
| 第6日 | 9号 | 47% | 62% | -15pp | 45% | 42% | 3pp |
| 第7日 | 11号 | 49% | 62% | -13pp | 52% | 40% | 12pp |
| 第8日 | 13号 | 51% | 63% | -12pp | 56% | 39% | 17pp |
| 第9日 | 14号 | 52% | 61% | -9pp | 53% | 41% | 13pp |
| 第10日 | 15号 | 48% | 60% | -12pp | 53% | 41% | 13pp |
| 第11日 | 16号 | 49% | 61% | -12pp | 52% | 42% | 10pp |
| 第12日 | 18号 | 52% | 62% | -10pp | 53% | 43% | 11pp |
| 第13日 | 20号 | 55% | 61% | -6pp | 56% | 41% | 15pp |
| 第14日 | 21号 | 52% | 61% | -9pp | 56% | 42% | 14pp |
| 第15日 | 22号 | 52% | 62% | -10pp | 55% | 41% | 13pp |
| 第16日 | 23号 | 51% | 61% | -9pp | 51% | 42% | 9pp |
| 第17日 | 25号 | 49% | 61% | -12pp | 47% | 41% | 6pp |
| 第18日 | 27号 | 45% | 62% | -16pp | 49% | 43% | 7pp |
「其它月」两列是关键。后段下跌 58% 听着高, 但任意一段同样长度的交易日本来就有 42% 的时候在跌 (月度上涨率 61%)。只有「超出」那两列是9月自己的。
最佳切点在第 3 个交易日(约 5 号), 是从 16 个候选里挑的 —— 这是一次搜索,会高估。 折半检验:奇数年最佳 k=3、偶数年 k=4, 相差 1 天 → 稳定,这个切点可以用。
比切点更稳的是上面那两个「超出中位」—— 它们不依赖挑哪个 k。 12 个月里只有 4 个月(9/10/11/12月)的切点通过了折半检验。
按「进入9月之前 3 个月的状态」分格 —— 以及同条件下所有月份的基准
| 前3个月 | n | 9月胜率 | 同条件全月份基准 | 差 | 中位收益 |
|---|
| 涨 | 38 | 44.7% | 61.0% | -16.2pp | +0.05% |
| 横盘 ● 今年 | 22 | 59.1% | 60.6% | -1.5pp | +0.82% |
| 跌 | 17 | 23.5% | 59.6% | -36.1pp | -3.96% |
「同条件全月份基准」这一列是关键对照。没有它, 「前3月跌之后9月胜率很低」会被读成季节性, 但如果任意月份在下跌之后都这么弱,那就与9月无关 —— 实测所有月份在「前3月跌」之后胜率仍有 59.6%, 和基准一样。所以差值那一列才是该月自己的效应。
样本少于 15 的格子直接报「估不出」,不给一个看着精确的假数字。
换不同的样本窗口,答案不一样(平稳性)
| 窗口 | n | 胜率 | ±SE | 中位收益 |
|---|
| 全样本 | 77 | 44.2% | ±5.7% | -0.25% |
| 近30年 | 31 | 51.6% | ±9.0% | +0.43% |
| 近15年 | 16 | 43.8% | ±12.4% | -0.08% |
窗口越短,标准误越大 —— 近15年只有十几个样本,±12.4% 的误差带足以吞掉任何效应。 三个窗口都摆出来,平稳性假设才是显式的;只选一个,假设就藏进方法里了。
结构是真的,但不是择时依据。走查校准(561 个月、1980 年起, 只用当年之前的数据建季节性再判当年方向):
| 判法 | 方向命中 | 相对「永远猜涨」 |
|---|
| 永远猜涨 | 62.7% | — |
| 无条件季节性 | 60.4% | -2.3pp |
| 条件季节性(前3月状态) | 61.3% | -1.4pp |
两种季节性判法
都打不过「永远猜涨」。原因很直接:股票本来就 62.7% 的月份在涨,要押跌得赢,那一格的上涨率必须低于 37%。全年只有极少数格子够得着,而且样本都很薄。
季节性结构是真的,但不是择时依据 —— 走查显示条件季节性仍然打不过「永远猜涨」。股票本来就 60%+ 的月份在涨,要押跌得赢,那一格的上涨率必须低于约 37%。 数据源 标普500(1950起),1949-01-03 ~ 2026-09-28。 重新生成:python src/seasonality.py