バックテスト基礎

T-Test(T検定)を用いたEAの統計的優位性(P値)の評価:その連勝は実力か、ただの偶然か?

バックテストで「100回のトレードで利益が出た」としても、それが「EAのロジックが相場の本質を捉えている(優位性がある)」からなのか、単に「コイントスでたまたま表が多く出ただけ(偶然のまぐれ)」なのかは見た目では分かりません。 これを客観的に証明するのが、統計学の「TTest(1標本T検定)」です。EAの全トレード結果からT値を計算し、P値(Pvalue)が

Read this for この数字を、運用できるかの判断材料にする。

PF、勝率、最大DD、取引回数は単独では判断しません。期間、条件、崩れ方とセットで読みます。

Category バックテスト基礎

backtest

T-Test(T検定)を用いたEAの統計的優位性(P値)の評価:その連勝は実力か、ただの偶然か?

結論

バックテストで「100回のトレードで利益が出た」としても、それが「EAのロジックが相場の本質を捉えている(優位性がある)」からなのか、単に「コイントスでたまたま表が多く出ただけ(偶然のまぐれ)」なのかは見た目では分かりません。 これを客観的に証明するのが、統計学の**「T-Test(1標本T検定)」**です。EAの全トレード結果からT値を計算し、**P値(P-value)が「0.05未満(5%以下)」であれば、「このEAの利益が偶然によるものである確率は5%未満である(=統計的に有意な実力がある)」**と科学的に結論づけることができます。

なぜEA運用で重要か

システムトレードの開発者は、プロフィットファクター(PF)や純益の数字ばかりを見がちですが、統計学の視点が欠けていると「カーブフィッティング(過剰最適化)の罠」に容易に落ちます。 例えば「過去10年で3回しか取引しないが、3回とも大勝してPFが10.0になったEA」があったとします。このPFは素晴らしいですが、取引回数(サンプルサイズ)が少なすぎるため、統計学的には「ただのまぐれ(P値が高い)」と一蹴されます。T検定は、取引回数、平均利益、そして成績の「ばらつき(標準偏差)」を総合して、システムの本物の戦闘力を丸裸にするリトマス試験紙なのです。

仕組み・条件

EAのトレード結果におけるT値(t-statistic)の簡易的な計算概念:

  1. 全トレードの平均損益(Mean)を計算する。
  2. トレードごとの損益のばらつき(標準偏差: Standard Deviation)を計算する。
  3. トレードの合計回数(N)の平方根を求める。
  4. T値 = (平均損益 - 0) / (標準偏差 / √N) の式でT値を算出する。

この「T値」が、一般的に**「1.64」以上(信頼水準95%)、あるいは「2.0」以上**であれば、そのシステムは「偶然ゼロを上回ったのではなく、明確なエッジ(優位性)を持っている」と判定されます。取引回数(N)が多いほど、T値は高くなりやすい(信頼性が増す)構造です。

バックテストやリアル運用で壊れるポイント

どう確認するか

MT5の標準バックテストレポートには、残念ながらT値やP値は直接表示されません。 確認するためには、バックテストの「トレード履歴(Deals)」をExcelやCSVでエクスポートし、Excelのデータ分析ツール(または T.TEST 関数)を使うか、Pythonの scipy.stats.ttest_1samp などのライブラリを用いて分析する必要があります。QuantAnalyzer等のサードパーティ製分析ツールを使えば、Zスコア(Z-Score)等の統計指標と共に自動で算出してくれます。

自分の検証スタンス

私は自作のEAが完成した際、必ず取引履歴をPythonに読み込ませてT検定を行います。 P値が0.05(5%)を上回る=「偶然の産物である可能性が5%以上ある」システムは、いくらバックテストの右肩上がりのグラフが美しくても、基本的ににリアル口座(実運用)には投入しません。「儲かりそうな気がする」というオカルトを排除し、「数字と確率」だけを信じるのが、クオンツ(計量)トレードの鉄則です。

関連して読む

Backtest reading この数字を、運用できるかの判断材料にする。

PF、勝率、最大DD、取引回数は単独では判断しません。期間、条件、崩れ方とセットで読みます。

参照した公式情報

免責

本記事は個人の検証メモであり、投資助言ではありません。バックテスト結果は将来の成績を保証しません。海外FXや自動売買には、法規制・レバレッジ・スプレッド拡大・約定遅延・スリッページなどのリスクがあります。条件は変わるため、最新情報は各公式ページで確認してください。