含み損を見て青ざめた僕が「最大ドローダウン」をPythonで計算してみた話

Python実装・コード

昨日(7月7日)、キオクシアが11%安、アドバンテストも大幅安。。。証券アプリを開いた瞬間、含み損の数字を二度見してしまいました。僕は半導体関連の製造メーカー株をそこそこ持っているので、久しぶりに背筋が凍る朝でした。→そこでふと「自分のポートフォリオの最大ドローダウンって、これまでどれくらいだったんだろう」と気になり、Pythonで計算してみることにしました。

正直に言うと、僕は今まで「含み損がどれくらいまで耐えられるか」を感覚でしか把握していませんでした。株価が下がるたびに「まあこんなもんか」「いやこれはヤバいかも」と気分で判断していたんです。でもそれって、後から見返すと再現性がないんですよね。今回はちゃんと数値で「自分は過去最大どれくらいの下落に耐えてきたのか」を出してみます。

最大ドローダウン(Max Drawdown)とは

最大ドローダウン(Maximum Drawdown, MDD)は、資産曲線がそれまでの最高値からどれだけ下落したか、その最大幅を表す指標です。バックテストの世界ではリターンと並んでほぼ必ずチェックされる数字で、「その戦略、どれだけ痛い目に遭う可能性があるか」を教えてくれます。

計算式はシンプルで、ある時点 t での資産額を Equity(t)、それまでの累積最高値を Peak(t) = max(Equity(0…t)) とすると、

Drawdown(t) = (Equity(t) − Peak(t)) / Peak(t)

この Drawdown(t) の全期間における最小値(つまり一番マイナスが大きい値)が最大ドローダウンです。年率リターンが良くても、最大ドローダウンが40%とか50%とかある戦略は、実際に運用中にその下落を食らったらメンタルが持たない可能性が高いです。僕がまさにそのタイプでした。

Pythonで計算してみる

pandasがあれば数行で書けます。yfinanceで日本株の株価を取得して、そのまま最大ドローダウンを出してみました。

import yfinance as yf
import pandas as pd

# 例:アドバンテスト(6857.T)の過去1年の株価
df = yf.download("6857.T", period="1y")
close = df["Close"]

# 累積最高値
running_max = close.cummax()

# ドローダウン(マイナスの割合)
drawdown = (close - running_max) / running_max

max_drawdown = drawdown.min()
max_dd_date = drawdown.idxmin()

print(f"最大ドローダウン: {max_drawdown:.2%}")
print(f"最大ドローダウン発生日: {max_dd_date.date()}")

これを自分の保有銘柄それぞれに回してみると、半導体関連は軒並みMDDが30%を超えていて、正直「よくこれ握ってたな自分」と思いました。。。ポートフォリオ全体(保有株を時価加重平均した資産曲線)でも同じ計算ができるので、興味がある人はぜひ自分の口座で試してみてください。

もう少し楽をしたいなら quantstats

毎回自分で書くのが面倒な場合は、quantstatsというライブラリを使うとドローダウン期間の一覧や回復までの日数まで一発で出してくれます。

pip install quantstats --break-system-packages

import quantstats as qs

returns = close.pct_change().dropna()
qs.reports.metrics(returns, mode="full")

これを実行すると、最大ドローダウンだけでなく「ドローダウンから元の高値まで戻るのに何日かかったか」も出てきます。僕の場合、一部の半導体株は回復に半年近くかかっていて、これも数値で見ると結構グサッときました。

投資への応用:ポジションサイズを決める材料に

最大ドローダウンを知ると、次に活きてくるのがポジションサイズの判断です。「この銘柄・この戦略は過去に最大35%沈んだことがある」と分かっていれば、資産全体の何%までなら投じていいかが逆算できます。以前書いたケリー基準やATRを使ったポジションサイジングの記事とも相性がいいので、興味があれば併せて読んでみてください。

まとめ

最大ドローダウンは「そのポジション、握り続けられますか?」を数字で突きつけてくる、地味だけど一番大事な指標かもしれません。僕は今回計算してみて、自分がいかに感覚頼みでリスクを取っていたかを思い知らされました。。。次は保有銘柄全体のポートフォリオ単位でドローダウンを出して、半導体関連の比率を少し見直そうと思います。同じように含み損に青ざめた経験がある方は、ぜひ一度自分の口座で計算してみてください。

タイトルとURLをコピーしました