時系列モメンタム(TSMOM)とは?トレンドフォロー戦略をPythonで検証


「上がっている資産は、しばらく上がり続けやすい」——これは多くの実証研究で確認されてきた、相場の数少ない頑健な性質のひとつです。これを戦略に落とし込んだのが モメンタム投資 で、なかでもシンプルで実装しやすいのが 時系列モメンタム(Time-Series Momentum, TSMOM) です。

この記事では、TSMOMの考え方と、過去リターンの符号でポジションを切り替える基本実装を、Pythonコード付きで解説します。

⚠️ 本記事は教育目的の情報共有です。投資は自己責任で行ってください。

目次

  1. モメンタムとは
  2. 時系列モメンタム(TSMOM)の考え方
  3. Pythonでの基本実装
  4. クロスセクショナル・モメンタムとの違い
  5. TSMOMの強みと弱点
  6. まとめ

1. モメンタムとは

モメンタム(momentum=勢い)とは、「過去のリターンが将来のリターンを部分的に予測する」という現象です。

  • 過去6〜12か月で上昇した資産は、その後も上昇しやすい
  • 逆に下落した資産は、その後も下落しやすい

物理の慣性に似ているので「勢い」と呼ばれます。バリュー(割安株投資)と並ぶ、最も研究されてきたアノマリーのひとつです。

2. 時系列モメンタム(TSMOM)の考え方

TSMOMは「その資産自身の過去リターンの符号」だけを見ます。

  • 過去N か月のリターンが プラス → 買い(ロング)
  • 過去N か月のリターンが マイナス → 退避(現金 or ショート)

他の資産と比べる必要がなく、1銘柄でも完結するのが特徴です。ルックバック期間 N は 6〜12か月 がよく使われます。

過去12か月リターン > 0  →  ロング(保有)
過去12か月リターン ≤ 0  →  現金(退避)

たったこれだけ。シンプルですが、下落トレンドで自動的に現金退避するため、暴落局面の傷が浅くなりやすいのが効きどころです。

3. Pythonでの基本実装

月次データでTSMOMを組んでみます。

import yfinance as yf
import numpy as np

# 月次終値を取得(SPYで例示)
px = yf.download("SPY", period="20y", interval="1mo", progress=False)["Close"].dropna()

LOOKBACK = 12  # 過去12か月

# 過去12か月リターン
past_return = px.pct_change(LOOKBACK)

# シグナル: 過去12か月がプラスなら1(ロング)、そうでなければ0(現金)
signal = (past_return > 0).astype(int)

# ★重要: シグナルは「今月末」に確定 → 翌月から建玉。
#   shift(1) を忘れると未来の情報で取引する先読みバイアスになる
position = signal.shift(1).fillna(0)

# 月次リターン
monthly_return = px.pct_change()

# 戦略リターン = ポジション × その月のリターン
strategy_return = position * monthly_return

# 累積(複利)
cumulative = (1 + strategy_return).cumprod()
buyhold = (1 + monthly_return).cumprod()

print(f"TSMOM 最終: {(cumulative.iloc[-1]-1)*100:+.1f}%")
print(f"バイ&ホールド 最終: {(buyhold.iloc[-1]-1)*100:+.1f}%")

ポイントは shift(1)。「今月末のリターンを見て今月頭から持っていた」ことにすると現実には不可能な取引になり、成績が過大評価されます。詳しくはバックテスト入門記事を参照。

4. クロスセクショナル・モメンタムとの違い

モメンタムには大きく2種類あります。混同しやすいので整理します。

時系列モメンタム(TSMOM)クロスセクショナル・モメンタム
比較対象自分の過去と比べる他の銘柄と比べる
判断過去リターンがプラスか上位X%に入っているか
必要銘柄数1つでもOK多数(ランキングが必要)
退避下落時に現金化しやすい常にフル投資になりがち

TSMOMは「市場全体が下げているとき現金に逃げられる」点が大きな違いです。一方クロスセクショナルは「相対的に強い銘柄を買う」ので、全体が下げても上位銘柄を持ち続ける傾向があります。

5. TSMOMの強みと弱点

強み

  • 実装が単純(過去リターンの符号だけ)
  • 下落トレンドで自動退避 → 最大ドローダウンを抑えやすい
  • 1銘柄・少数銘柄でも機能する

弱点

  • レンジ相場(横ばい)に弱い:上下にダマシが多く、売買を繰り返して負ける
  • 転換点で遅れる:底や天井をピンポイントでは捉えられない
  • 売買回数が増えると取引コストが効いてくる

弱点を補うため、実運用では「複数資産への分散」「レジームフィルタとの併用」などが組み合わされます。

6. まとめ

  • モメンタム = 「上がっているものは上がり続けやすい」という頑健な性質
  • TSMOM は自分の過去リターンの符号だけでロング/退避を切り替える
  • 下落時に現金退避できるので、ドローダウンを抑えやすい
  • レンジ相場には弱い。分散やフィルタで補う
  • 必ず shift(1) で先読みを排除し、ウォークフォワード検証で真の期待値を測る

シンプルですが、トレンドフォローの本質が詰まった戦略です。まずは1銘柄で動かして、挙動を体感してみてください。

戦略の評価指標はこちら → シャープレシオと最大ドローダウンとは?


質問や感想は X (@QuantNobu) までどうぞ。

⚠️ 免責:本記事は教育目的の情報共有であり、投資助言ではありません。実際の投資判断はご自身の責任で行ってください。