Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turn-of-Month Effect — 研究記録

CI License: MIT

月末月初アノマリーを利用した低リスク戦略の定量検証


結論

Turn-of-Month 効果は SPY において 32 年間統計的に有意 (p=0.006)。とりわけ月初第 1 営業日 (BDM+1) に効果が集中しており (p=0.001)、この 1 日だけの保有で Sharpe +0.57、max DD −5.9% を達成する。非保有期間に SHY (短期米国債) を入れた BDM+1+SHY は Sharpe +0.68、max DD −10.0% と、SPY buy-and-hold (Sharpe +0.54, max DD −80.3%) をリスク調整ベースで上回る。

ただし年率リターンは +2.6% にとどまり、資産形成の主力にはならない。サテライト枠の低リスク戦略、または他戦略との組み合わせにおける DD 管理基盤として位置づける。


1. 仮説

「株式指数は月末 1 営業日〜月初 3 営業日にリターンが集中する」

根拠:

  • 機関投資家の月末リバランス (pension fund window dressing)
  • 給与・確定拠出年金の自動積立フロー (毎月月初に買い注文が集中)
  • 先行研究: Ariel (1987), Lakonishok & Smidt (1988), McConnell & Xu (2008)

検証対象:

  • SPY (S&P 500, 1993-2024, 32 年)
  • QQQ (Nasdaq 100, 2000-2024, 25 年)
  • IWM (Russell 2000, 2000-2024, 25 年)
  • 1306.T (TOPIX ETF, 2008-2024, 17 年)

2. 検証の流れ

Phase 1: Go/No-Go ゲート

4 市場 × 3 window 幅で TOM 効果の有無を統計的に検定。

Ticker TOM Ann Ret TOM Sharpe BH Sharpe t p
SPY +16.9% +0.93 +0.54 +2.28 0.023
QQQ +21.2% +0.77 +0.35 +1.70 0.090
IWM +4.4% +0.18 +0.32 +0.40 0.691
1306.T −8.5% −0.37 +0.26 −0.66 0.512

結果: SPY・QQQ で有意。IWM・1306.T では効果なし。日本は給与サイクル (25 日) が異なり、米国型 TOM は成立しない。Go 判定で Phase 2 に進行。

Phase 2: バックテスト

「TOM 期間のみ SPY を保有、それ以外はキャッシュ」を5 つの window 幅で検証。

Window before after Sharpe Max DD p
Narrow 1 2 +0.35 −17.3% 0.044
Base 1 3 +0.39 −20.3% 0.025
Wide 2 3 +0.48 −23.4% 0.006
Wide+ 2 4 +0.49 −40.9% 0.005
BH +0.54 −80.3%

Wide TOM は Sharpe +0.48、max DD −23.4% で BH の DD を 1/3.4 に圧縮。ただし Sharpe は BH を下回り (0.48 < 0.54)、直近 10 年ではさらに差が拡大 (0.46 vs 0.72)。

Phase 3: BDM+1 集中 → 複合戦略

BDM position profile から BDM+1 (月初第 1 営業日) だけが突出していることを発見し、1 日保有戦略を構築。さらに非保有期間に代替資産を入れた複合戦略を検証。


3. BDM+1 が本体であること

Phase 1 の BDM position profile で、SPY の全 21 ポジション (BDM −10 〜 BDM +10) を調べた結果:

BDM Ann Mean Hit Rate t p
−1 +31.7% 54.2% +1.54 0.125
0 −16.7% 45.4% −1.22 0.223
+1 +76.3% 66.5% +3.43 0.001
+2 +8.8% 51.3% +0.45 0.652
+3 +23.9% 56.0% +1.18 0.240

BDM+1 だけが p < 0.01 で統計的に有意。 他の BDM ポジションはいずれも p > 0.10。TOM 効果の「本体」は月初第 1 営業日のフロー効果であり、Window を広げると水増しされた non-signal 日がノイズを追加するだけ。


4. 戦略比較サマリー

SPY 全期間 (1993-2024)

戦略 Ann Ret Sharpe Max DD Calmar In Market
Wide TOM (5日/月) +4.27% +0.48 −23.4% +0.18 23.8%
BDM+1 only (1日/月) +1.75% +0.57 −5.9% +0.30 2.4%
SPY Buy & Hold +9.96% +0.54 −80.3% +0.12 100.0%

複合戦略 (2002-08 → 2024-12, 共通期間)

戦略 Ann Ret Sharpe Max DD Calmar Beta
BDM+1 + Cash +0.82% +0.23 −11.1% +0.07 +0.04
BDM+1 + TLT +3.91% +0.27 −69.1% +0.06 −0.20
BDM+1 + SHY +2.62% +0.68 −10.0% +0.26 +0.02
SPY Buy & Hold +10.22% +0.54 −80.3% +0.13 +1.00
60/40 SPY/TLT +7.61% +0.70 −39.5% +0.19 +0.50

Sub-period 安定性 (BDM+1 + SHY)

期間 BDM+1+SHY Sharpe SPY B&H Sharpe BDM+1+SHY DD
2002-2007 +1.72 +0.71 −1.8%
2008-2013 +0.38 +0.25 −10.0%
2014-2019 +0.28 +0.86 −3.9%
2020-2024 +0.59 +0.65 −6.4%

5. 実運用上の位置づけ

ポジション: サテライト枠の超低リスク戦略

BDM+1 + SHY は以下の特性を持つ:

  • Beta ≈ 0 (SPY との相関 +0.08) → 市場方向に依存しない
  • Max DD −10% → GFC (2008) でも COVID (2020) でも耐えた
  • 年率 +2.6% → MMF (+4-5%/yr, 2023-2024) より低い可能性あり
  • 月 12 回の売買 → コスト年間 0.12% (1bps RT × 12)

適する用途:

  1. ポートフォリオの一部を「DD 管理パーツ」として配分
  2. 他の高 Sharpe 戦略(Dual Momentum 等)との組み合わせ
  3. 市場暴落時に資金を退避させる「待機場所」としての運用
  4. SPY buy-and-hold をメインに持ちつつ、BDM+1 以外の日に SHY を保有する「SPY timing overlay」

適さない用途:

  • 資産形成の主力 (年率 +2.6% ではインフレ負け)
  • 単独運用 (資本効率は高いがリターンが小さすぎる)

6. TLT を不採用とした理由

BDM+1 + TLT は 2002-2019 では優秀 (Sharpe +0.46〜0.98) だったが、2022 年に壊滅した。

BDM+1+TLT BDM+1+SHY SPY B&H
2022 −42.2% −1.7% −20.1%

原因: 2022 年は stock-bond 相関が正に反転 (SPY −20%, TLT −31%)。TLT の duration (20 年) が非保有期間 (月 20 日以上) に直撃。BDM+1 の「月 1 日だけ SPY」という設計は SPY のリスクを極小化するが、残り 20 日以上を TLT に充てると duration リスクを最大化する逆効果に。

SHY (duration 1-3 年) であればこの問題は軽微 (2022: −1.7%)。金利上昇リスクを取らずに短期国債のインカムだけを得る設計が正解。


7. 最終結論

観点 判定
TOM 効果は存在するか Yes (SPY: p=0.006, 32 年)
その本体は何か BDM+1 (月初第 1 営業日, p=0.001, hit 66.5%)
単独で主力戦略になるか No (年率 +2.6%, Sharpe +0.68 だがリターンが小さい)
DD 管理として価値があるか Yes (max DD −10%, beta ≈ 0, GFC/COVID 耐性)
直近 10 年でも機能するか 限定的 (2014-2019 Sharpe +0.28, 2020-2024 +0.59)
研究として成功か Yes (仮説検証 → 効果の本体特定 → 複合戦略構築 → 実運用判定)

研究の成果: 「TOM 効果」という大きな概念から「BDM+1 の 1 日だけが統計的に有意」という精密な結論に到達した。BDM+1 + SHY は Sharpe +0.68, DD −10% の低リスクプロファイルを持ち、サテライト戦略として実運用の候補に残る。


8. 再開時に追加検証すべきこと

優先度高

  • BDM+1 の経済的メカニズムの特定: 月初の ETF フロー (ICI data) や 401(k) 積立タイミングとの相関分析。メカニズムが判明すれば効果の持続性を予測できる
  • ES mini 先物での実装検証: SPY ETF ではなく ES mini を使った場合のコスト・スリッページ・執行タイミングの実測
  • 2025 年以降のライブ検証: out-of-sample で BDM+1 効果が持続しているか月次で追跡
  • SHY 代替の最適化: BIL (1-3 ヶ月 T-bill), SGOV (0-3 ヶ月), 直接 T-bill 保有との比較

優先度中

  • 他市場の BDM+1: DAX, FTSE, HSI など主要指数で BDM+1 固有の効果があるか
  • 月末 BDM0 の負のリターン: BDM0 (月末最終日) の平均 −16.7% は有意ではないが (p=0.22)、サンプル拡大で short 戦略の可能性を検証
  • Dual Momentum との組み合わせ: Antonacci 型 12M momentum のシグナルが負の月は BDM+1 も skip → conditional TOM 戦略
  • VIX レジーム別のパフォーマンス: VIX > 30 の高ボラ月に BDM+1 効果が強まるか弱まるか

プロジェクト構成

turn-of-month/
├── src/tom/
│   ├── data/fetcher.py          # yfinance 取得 (SPY, QQQ, IWM, 1306.T, TLT, SHY)
│   ├── calendar/tom_window.py   # BDM 計算、TOM flag 生成
│   ├── backtest/engine.py       # TOM 戦略 P&L、コスト計算
│   └── evaluation/metrics.py    # Sharpe, DD, Calmar, t-test
├── scripts/
│   ├── 01_data_and_stats.py     # データ取得・基本統計
│   ├── 02_tom_effect.py         # Phase 1: go/no-go ゲート
│   ├── 03_backtest.py           # Phase 2: Window 比較・年別成績
│   ├── 03b_bdm1_only.py         # BDM+1 単独戦略検証
│   └── 04_composite.py          # Phase 3: 複合戦略 (SHY/TLT)
├── tests/
│   ├── test_tom_window.py       # BDM 計算テスト (26 tests)
│   └── test_metrics.py          # メトリクステスト
└── results/                     # CSV 出力 (git 管理外)

環境

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest                              # 全テスト
python scripts/04_composite.py      # Phase 3 (最終成果物)

Python ≥ 3.8, pandas ≥ 1.5, scipy ≥ 1.9, yfinance ≥ 0.2.18


注意事項

  • 本リポジトリは研究・教育目的のバックテスト記録です
  • 投資助言や売買推奨ではありません
  • 過去のパフォーマンスは将来の結果を保証しません
  • 実運用への適用は自己責任で行ってください

ライセンス

MIT License — 詳細は LICENSE を参照してください。

About

Turn-of-Month カレンダー効果の統計的検証(SPY, 1993-2024, 32年間)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages