Excelで最大ドローダウンを計算する式|累積損益・山・下げ幅の3列と、率の出し方
最大ドローダウンは、累積損益・これまでの最大(山)・山からの下げ幅の3つの列を作り、下げ幅の最大値をMAX関数で取ると出せます。式は、累積損益が=SUM($E$2:E2)、山が=MAX(0,MAX($F$2:F2))、下げ幅が=G2-F2、最大ドローダウンが=MAX(H2:H31)です。集計の記事の30件のサンプルで、Excelの結果は43,000円で、Pythonの計算と一致しました。
この記事では、3列の作り方と、率(%)の出し方、数字を読む時の注意をまとめます。サンプルの記録は乱数で作った架空のものです。(Microsoft 365 Excel、バージョン16.0、ビルド20430で確認。確認日:2026年10月19日)
1. 3つの列の式
損益がE列の2〜31行にあるとして、F・G・H列に次の式を入れ、2行目から31行目まで下にコピーします。
| 列 | 意味 | 2行目の式 |
|---|---|---|
| F:累積損益 | ここまでの損益の合計 | =SUM($E$2:E2) |
| G:山 | ここまでの累積損益の最大値(0を下限にする) | =MAX(0,MAX($F$2:F2)) |
| H:下げ幅 | 山から、いまの累積損益までの下げ幅 | =G2-F2 |
$E$2のように、先頭だけに$を付けた絶対参照を使うと、式を下にコピーしても、合計の始まりが2行目に固定され、終わりだけが行ごとに伸びます。山の式の0は、最初の取引の前の損益(0円)も山に含めるためです。これがないと、最初の取引が損失の場合に、その分の下げ幅が0になってしまいます。
最大ドローダウンは、H列の最大値です。
=MAX(H2:H31)
2. サンプルでの計算(一部)
| 行 | 決済日 | 損益 | F:累積損益 | G:山 | H:下げ幅 |
|---|---|---|---|---|---|
| 9 | 2026/08/17 | 10,000 | 12,000 | 12,000 | 0 |
| 10 | 2026/08/18 | 17,000 | 29,000 | 29,000 | 0 |
| 11 | 2026/08/19 | 3,000 | 32,000 | 32,000 | 0 |
| 12 | 2026/08/20 | −9,000 | 23,000 | 32,000 | 9,000 |
| 13 | 2026/08/22 | −18,000 | 5,000 | 32,000 | 27,000 |
| 14 | 2026/08/24 | 4,000 | 9,000 | 32,000 | 23,000 |
| 15 | 2026/08/26 | 5,000 | 14,000 | 32,000 | 18,000 |
| 16 | 2026/08/28 | −10,000 | 4,000 | 32,000 | 28,000 |
| 17 | 2026/08/29 | 3,000 | 7,000 | 32,000 | 25,000 |
| 18 | 2026/09/01 | −18,000 | −11,000 | 32,000 | 43,000 |
山は、11行目で32,000になり、その後、累積損益はこれを超えずに下がっていきます。18行目(2026年9月1日)に、累積損益が−11,000になり、山との差が43,000になりました。これが、サンプルの最大ドローダウンです。その後、累積損益は、23行目で34,000、27行目で60,000のように、山を更新しています。
最大ドローダウンがいつ起きたかを調べる
=INDEX(A2:A31,MATCH(MAX(H2:H31),H2:H31,0))
日付を表示する書式にすると、2026/09/01になりました(Excelで確認)。同じ下げ幅が複数あると、最初の1つだけが返ります。
3. 率(%)で出す
金額ではなく、資産に対する割合で見たい時は、初期資金を使います。初期資金が1,000,000円(O1のセル)だとして、次の列を足します。
| 列 | 意味 | 2行目の式 |
|---|---|---|
| I:資産 | 初期資金+累積損益 | =$O$1+F2 |
| J:山(資産) | これまでの資産の最大値(初期資金を下限にする) | =MAX($O$1,MAX($I$2:I2)) |
| K:ドローダウン率 | (山−資産)÷山 | =(J2-I2)/J2 |
最大ドローダウン率は=MAX(K2:K31)です。サンプルでは、最大の下げ幅(43,000円)の時の山が1,032,000円(初期資金1,000,000円+山の損益32,000円)なので、43,000÷1,032,000=約4.17%でした(Excelの結果は0.041666…で、Pythonの計算と一致)。
率は、何を基準(分母)にするかで変わります。初期資金だけで割ると、43,000÷1,000,000=4.3%になります。どの基準で出したかを、記録に残します。
4. 数字を読む時の注意
- 決済した取引だけの数字です:この計算は、決済後の損益の累積です。保有中の含み損は入っていないため、口座の資産の推移で見た下げ幅は、これより大きくなる場合があります
- 期間と取引数で変わります:サンプルは30件・約1.5か月分です。期間を延ばすと、最大ドローダウンは、同じかそれ以上になります(山を更新して、そこから下がれば、新しい下げ幅になるため)
- ロット数を変えると、損益の額も下げ幅も変わります:ロットを決める考え方はMT5でロット数を計算する式にまとめています
- 将来の最大ドローダウンを予測するものではありません:過去の記録の集計です。利益を保証するものでも、将来の下げ幅の上限を示すものでもありません
集計の式の全体はExcelでトレード記録を集計する関数、記録の書き出しはMT5の取引履歴を書き出す方法を参照してください。
まとめ
- 累積損益(F)・山(G)・下げ幅(H)の3列を作り、
=MAX(H2:H31)で最大ドローダウンが出る - 山の式に0(または初期資金)を入れて、最初の取引の前も山に含める
- サンプルでは、最大ドローダウンは43,000円(2026年9月1日)。初期資金100万円に対する率は、山の資産基準で約4.17%
- 率は、分母の基準で変わる。基準を記録に残す
- 決済した取引だけの数字で、含み損は入っていない。将来を保証するものではない


