トレード成績は“感覚”で語ると迷子になります。勝った気がしても口座残高は増えない—そんな経験、誰にでもあります。だからこそ、パフォーマンスを数値で分析して、改善の打ち手を明確にしましょう。本記事では、勝率・平均損益・期待値(Expectancy)・R倍数・リスクリワード・プロフィットファクター(PF)・最大ドローダウン(MDD)・回復率・シャープ/ソルティノ比・リスクオブルインなどの主要指標を、表と手順で現場投入できる形に落とし込みます。
もくじ
分析の前提:データの準備と粒度
まずは確定損益ベースの原データが必要です。最低限の列は以下。
- 日時(エントリー/エグジット)
- 銘柄(例:XAUUSD)
- 方向(Buy/Sell)
- 損益(通貨建てとR建ての両方が理想)
- 手数料・スワップ
- リスク(初期ストップまでの距離 × ロット → 1Rの金額)
粒度は、1トレード単位が基本。ナンピン・分割決済はルール化(例:同一意図の一連の約定を1セットとして評価)。
主要KPIの定義と直感
定義を“直感”で掴むとバイアスが減ります。
- 勝率(Win Rate)=勝ちトレード数 ÷ 総トレード数。高ければ安心とは限らない。
- 平均勝ち/平均負け(Avg Win/Loss):1回あたりの平均損益。
- リスクリワード比(RR)=平均勝ち ÷ 平均負け(絶対値)。
- プロフィットファクター(PF)=総利益 ÷ 総損失(絶対値)。1.3以上で継続性の目安。
- 期待値(Expectancy)=勝率×平均勝ち − (1−勝率)×平均負け。
- 最大ドローダウン(MDD):資産曲線のピークからボトムまでの最大下げ幅。
- 回復率(Recovery Factor)=累積利益 ÷ MDD。1.0超を目指す。
- シャープ比=超過リターン ÷ リターンの標準偏差。分散の荒さを罰する指標。
- ソルティノ比=超過リターン ÷ ダウンサイド偏差。下振れの荒さだけを罰する。
- R倍数(R-Multiple):1トレードの損益を初期リスクRで割った値。システム横断の比較が可能。
まずはこの表:サマリーKPIのひな形
| KPI | 値 | 解説 | 目安 |
|---|---|---|---|
| 総トレード数 | — | サンプル数。50以上で議論が安定。 | 50〜200 |
| 勝率 | — | 勝ち/総数。 | 40〜60% |
| 平均勝ち | — | 勝ちトレード平均。 | 口座規模依存 |
| 平均負け | — | 負けトレード平均。 | — |
| RR(平均勝ち/平均負け) | — | 損小利大を可視化。 | ≥ 1.3 |
| PF(総利益/総損失) | — | 収益性の基本指標。 | ≥ 1.3 |
| 期待値(1トレード) | — | 平均的な1回の利益。 | > 0 |
| MDD(最大DD) | — | 最悪期の下げ幅。 | ≤ 月利目標の1.5〜2倍以内 |
| 回復率 | — | 累益÷MDD。 | ≥ 1.0 |
| シャープ比 | — | ボラ調整リターン。 | ≥ 1.0 |
| ソルティノ比 | — | 下振れ調整。 | ≥ 1.2 |
期待値(Expectancy)を武器にする
期待値がプラスなら、回数を重ねるほど口座は増えやすい。式は:
E = p × AvgWin − (1 − p) × AvgLoss
RR = AvgWin / AvgLoss
⇒ E = AvgLoss × (p × RR − (1 − p))
RRを上げるには、利確を伸ばす/損切りを早めるの両輪。p(勝率)は、フィルタ精度・市場選択・時間帯最適化で改善します。
ドローダウンと回復力を測る
同じ利益でも、MDDが浅いほど心理的・資金的に持続可能。資産曲線からピーク—ボトムを走査してMDDを取得し、回復率=累積利益/MDDで耐性を評価。回復率1.0未満が続く場合は、ポジションサイズ縮小・システム停止ラインを検討。
ボラとリスク調整:シャープ/ソルティノ
単なる利益ではなく、どれだけ“なめらか”に増やしたかを測るのがリスク調整指標。デイトレやスキャルでは日次/週次のリターン系列を作って計算。
Sharpe = (μ - r_f) / σ
Sortino = (μ - r_f) / σ_downside
ここでμは平均リターン、r_fは無リスク金利、σは標準偏差、σ_downsideは負の偏差のみの標準偏差。
継続運用のカギ:リスク・オブ・ルイン
戦略は“破綻しないこと”が最優先。簡易近似:
Risk of Ruin ≈ ((1 - edge) / (1 + edge))^(Capital/RiskPerTrade)
edge = p × RR − (1 − p)
リスク/トレード(%)が大きいほど破綻確率は急増。1回あたり1R=口座の0.5〜1.0%を基本線に。
MT5/取引履歴からの実務フロー
- 口座履歴を日付・シンボル・損益・手数料付きでエクスポート(HTML/CSV)。
- Excel/Googleスプレッドシートに取り込み、1トレード=1行に正規化。
- 初期ストップ距離からR(円)を算出し、損益をR建てにも変換。
- サマリーKPI表と月次ヒートマップを更新。
- 停止ライン:月次MDDがX%超でロット半減、Y%で停止 & 再検証。
自動化テンプレ:Python/Excelの数式
最小構成のPython例(CSV: columns=[date,symbol,pl,fee,init_r])。
import pandas as pd
df = pd.read_csv("trades.csv", parse_dates=["date"])
df["net"] = df["pl"] - df["fee"]
df["R"] = df["net"] / df["init_r"]
win = (df["net"] > 0)
p = win.mean()
avg_win = df.loc[win, "net"].mean()
avg_loss = -df.loc[~win, "net"].mean()
RR = avg_win / avg_loss
PF = df.loc[win, "net"].sum() / (-df.loc[~win, "net"].sum())
E = p * avg_win - (1 - p) * avg_loss
df["equity"] = df["net"].cumsum()
roll_max = df["equity"].cummax()
dd = df["equity"] - roll_max
MDD = -dd.min()
recovery = df["net"].sum() / MDD if MDD > 0 else float("inf")
print(p, RR, PF, E, MDD, recovery)
監視ダッシュボードと運用ルール
- 月次KPI表:勝率、RR、PF、E、MDD、取引回数。
- 時間帯別:東京/ロンドン/NYでの期待値差。
- 銘柄別:XAUUSD/GBPJPY/US30などで比較。
- セットアップ別:ブレイク/押し目/逆張りでR分布を比較。
- ルール:2週連続でE<0 → ロット半減。MDD>=X% → 停止。
よくある落とし穴と対策
- サンプル不足:30未満は偶然が支配。まずは50。
- 手数料無視:特にゴールドや指数のスプレッドはPFを圧縮。
- Rの未定義:リスク一定化ができず、比較不能。
- 複利暴走:連敗期に損益曲線が破綻。最大損失%の枠を設定。
- 過剰最適化:期間/銘柄を跨いだロバスト性テストを。
まとめ
“勝率が高いから良い戦略”ではなく、期待値・PF・MDD・回復率などを総合評価して、破綻しないスケーリングを設計しましょう。本記事の表・数式をそのままテンプレとして、月次でモニタリングすれば、改善サイクルが回り始めます。
