レジームフィルタとは?200日移動平均で暴落を避ける方法【Python】
どんなに良い戦略でも、2008年や2020年のような暴落局面をまともに食らえば、回復に何年もかかります。実は、こうした「危険な局面」の多くは、ある単純な目印である程度避けられます。それが レジームフィルタ です。
この記事では、200日移動平均を使った最もシンプルなレジームフィルタの考え方と、Pythonでの実装を解説します。
⚠️ 本記事は教育目的の情報共有です。投資は自己責任で行ってください。
目次
- レジーム(相場環境)とは
- 200日移動平均フィルタの考え方
- Pythonでの実装
- なぜこれが効くのか
- 注意点(万能ではない)
- まとめ
1. レジーム(相場環境)とは
レジーム(regime)とは「相場の状態・局面」のことです。大きく分けると:
- 強気相場(リスクオン):上昇トレンド。多くの戦略が機能しやすい
- 弱気相場(リスクオフ):下降トレンド。暴落・急変動が起きやすい
同じ戦略でも、強気相場では勝ち、弱気相場では大きく負ける——ということがよくあります。だったら「弱気相場では投資をお休みする」だけで、最悪のドローダウンを避けられるのでは? という発想がレジームフィルタです。
2. 200日移動平均フィルタの考え方
最も有名でシンプルなのが 200日移動平均(200日線) を使う方法です。
指数(S&P500など)の終値 > 200日移動平均 → リスクオン(投資する)
指数の終値 ≤ 200日移動平均 → リスクオフ(現金に退避)
「市場全体が200日線の上にあるときだけ投資し、下回ったら現金に逃げる」というルールです。たったこれだけで、長期の下落トレンドの大部分を回避できます。
3. Pythonでの実装
S&P500(SPY)を市場全体の体温計として使い、フィルタを作ります。
import yfinance as yf
# 市場全体の指標として SPY の日足を取得
spy = yf.download("SPY", period="25y", interval="1d", progress=False)["Close"].dropna()
# 200日移動平均
spy_ma200 = spy.rolling(200).mean()
# レジーム: 終値が200日線の上なら1(リスクオン)、下なら0(リスクオフ)
regime = (spy > spy_ma200).astype(int)
# ★先読み回避: 前日のレジームで当日のポジションを決める
regime = regime.shift(1).fillna(0)
# 自分の戦略リターン strategy_return に、このフィルタを掛ける
# リスクオフの日は強制的に現金(リターン0)にする
filtered_return = strategy_return * regime
# 比較
import numpy as np
raw = (1 + strategy_return).cumprod().iloc[-1] - 1
flt = (1 + filtered_return).cumprod().iloc[-1] - 1
print(f"フィルタなし: {raw*100:+.1f}%")
print(f"フィルタあり: {flt*100:+.1f}%")
ポイントは、フィルタを掛ける指標(SPY)と、実際に売買する戦略を分けて考えることです。「市場全体の温度」で投資のオン/オフを切り替え、オンのときだけ自分の戦略を動かします。
4. なぜこれが効くのか
大きな暴落は、ある日突然来るのではなく、じわじわと下降トレンドに入ってから深くなることが多いです。
- 2008年の金融危機:S&P500は早い段階で200日線を割り、その後さらに大きく下落
- 2020年のコロナショック:急落だが、200日線割れで退避すれば底値圏の一部を回避できた
200日線は「長期トレンドの大きな分かれ目」を捉えるので、最悪の局面に居続けるのを防ぐ効果があります。最大ドローダウンを抑えるうえで、非常にコスパの良い仕組みです。
実際、私がウォークフォワード検証で長期(数十年)を検証したときも、レジーム退避を入れた戦略は、暴落局面でのドローダウンが明確に浅くなりました。
5. 注意点(万能ではない)
レジームフィルタは強力ですが、銀の弾丸ではありません。
- ダマシがある:200日線の上下を行き来する「もみ合い相場」では、退避→再投資を繰り返してコストがかさむ
- 戻りを取り逃す:底打ち直後の急反発は、200日線を回復するまで投資しないので一部取り逃す
- V字回復に弱い:急落→即反発のような相場では、退避が裏目に出ることもある
それでも「致命的な大ドローダウンを避ける」という一点で、多くの戦略にとって採用する価値があります。リターンを少し犠牲にしても、退場リスクを下げる——守りの仕組みです。
6. まとめ
- レジーム = 相場の局面(強気/弱気)。局面で戦略の成績は大きく変わる
- 200日移動平均フィルタ:市場が200日線の上のときだけ投資、下回ったら現金退避
- 長期の下落トレンドを避け、最大ドローダウンを抑える効果がある
- ダマシ・戻り取り逃しはあるが、致命傷を避ける守りとして優秀
- 先読み回避のため、フィルタは必ず
shift(1)で前日の状態を使う
攻めの戦略(モメンタムなど)に、守りのレジームフィルタを組み合わせる——これが長く生き残る運用の基本形です。
実運用に移す前の検証はこちら → ペーパートレード(仮想売買)とは?
質問や感想は X (@QuantNobu) までどうぞ。
⚠️ 免責:本記事は教育目的の情報共有であり、投資助言ではありません。実際の投資判断はご自身の責任で行ってください。