最終更新: 2026年06月
「MT5の全ティックモデルでバックテストを回した。品質99%、これで信頼性は高い」——この認識は、半分正しくて半分危うい。全ティックモデルが保証するのはあくまで「ヒストリカルデータの再現精度」であり、「将来の不確実性への耐性」ではない。EAのモンテカルロシミュレーションの使い方を正しく理解してはじめて、その後者を問えるようになる。
私がモンテカルロをEA評価に組み込んだきっかけは、バックテスト上で年利40%という数値が出たEAが本番2ヶ月で沈んだ経験だった。
注記: このバックテスト数値は過去の検証結果であり、将来の収益を示すものではありません。
チェリーピッキングされたトレード順序が、たまたま運良く繋がっていただけだった。あの失敗以来、モンテカルロ通過を私自身の判断基準として「本番投入の必要条件」として扱っている。
この記事では、MT5とSQX(StrategyQuant X)のモンテカルロ機能を具体的な設定値とともに解説する。本記事は各ツールを推薦するものではなく、モンテカルロ機能の概要説明を目的としている。
モンテカルロシミュレーションとは何か・EAバックテストでの役割
EAバックテストにおけるモンテカルロシミュレーションとは、確定的な過去データの再現に確率的な摂動を加え、戦略が「運」ではなく「構造的優位性」で利益を出しているかを検証する手法です。
統計的に言えば、モンテカルロシミュレーションは確定的な系を確率的に評価するための手法だ。元々はマンハッタン計画の核物理計算に使われた乱数ベースの数値計算法で、金融工学では1990年代のデリバティブ価格付けから実務に入ってきた。
EAのバックテスト文脈では、次のように定式化できる。
通常のバックテストは決定論的シミュレーションだ。過去データ D に対して戦略 S を適用すると、結果 R はただ一つに決まる。
R = f(S, D)
モンテカルロシミュレーションはこれに確率的な摂動 ε を加える。
R_i = f(S, D + ε_i) (i = 1, 2, ..., N)
N 回の試行から R の分布を得て、最悪ケース(例:5パーセンタイル)の性能を評価する。「たまたま運が良かった結果」なのか「構造的に優位な戦略」なのかを、分布の形が教えてくれる。
なぜバックテストだけでは不十分か
バックテストの過適合問題は広く知られているが、見落とされがちな問題がもう一つある。「トレード順序の偶然性」だ。
仮に100トレードのうち、最初の20トレードが全勝だったとする。この連勝が口座を膨らませた状態で後半の損失を吸収できたとすれば、逆順で実行すれば資産がゼロになっていた可能性がある。モンテカルロはこのトレード順序をシャッフルして「順序の偶然」を排除する。
スプレッドやスリッページのばらつきも現実に存在する。バックテストで固定スプレッドを使っていれば、それは楽観的な前提だ。モンテカルロでこれらを確率的に変動させることで、執行環境の変化への耐性を測れる。
OANDAの実践例(出典: OANDA Lab Education https://www.oanda.jp/lab-education/ea_trading/beginner/drawdown_assumption/)では、5,000イテレーション・各シミュレーション100トレードという設定で、95パーセンタイル信頼区間を運用停止基準の設計に活用している。一つの業界ベンチマークとして頭に入れておいてほしい。
MT5標準機能とモンテカルロの違い(全ティックモデルの誤解を解く)
MT5の全ティックモデルはデータ再現精度を高める技術であり、モンテカルロシミュレーションではありません。確率的な摂動を加える機能はMT5標準には存在しないため、本格的なモンテカルロ評価には専用ツールが必要です。
ここが最も誤解を生む部分なので、明確に整理する。
MT5のバックテスターには複数の「モデル」が存在する。
| モデル名 | 内容 | |---|---| | 全ティック | M1データから合成したティックで再現 | | 1分 OHLCの制御ポイント | バー内の主要価格のみ | | 始値のみ | バー始値のみ | | 全ティック(実際のティック) | ブローカーから取得した生ティックデータ |
「全ティックモデル」はデータ再現の忠実度を高める技術であって、モンテカルロではない。確率的な摂動を加えるわけでも、試行を繰り返すわけでもない。どこまでいっても決定論的シミュレーションだ。
真のモンテカルロが求める要素
モンテカルロとして意味を持つためには、以下のいずれかが必要だ。
1. トレード順序のランダム化 実行済みトレードをシャッフルして、異なる順序での資産曲線を多数生成する。これは「トレード独立性の仮定」を検証する操作に相当する。
2. 価格データへのノイズ付加 ヒストリカル価格に微小な確率的変動を加えて、別の「あり得た過去」を生成する。フォワードテストと異なり、構造的なドリフトではなく局所的なばらつきを見る。
3. 執行条件のランダム化 スプレッド・スリッページ・エントリー成否を確率的に変動させる。
MT5にはこれらを自動で行う標準機能が存在しない。これが「MT5だけではモンテカルロ評価ができない」という結論になる根拠だ。
MT5でモンテカルロに近いテストを実行する方法
標準機能にないとはいえ、MT5でも工夫次第でロバストネステストに近い評価は可能だ。ただし「完全なモンテカルロ代替」ではない点は先に断っておく。
フォワードテストを活用する
MT5バックテスターの「最適化」タブには、インサンプル期間とアウトオブサンプル(フォワード)期間を分ける機能がある。
設定手順:
- ストラテジーテスターを開く
- 「最適化」タブ → 「フォワードテスト」を有効化
- 「フォワード」ドロップダウンで期間割合を選択(通常: 1/4 または 1/3)
- バックテスト実行
フォワード期間の成績がインサンプルと大きく乖離していれば、過適合の強いシグナルだ。ただしこれは「別期間での検証」であって「確率的試行の繰り返し」ではない。
複数のパラメータセットで分散テスト
MT5の遺伝的最適化で上位20〜30のパラメータセットを保存し、それぞれ個別にバックテストを走らせる方法もある。パラメータ感応度分析(sensitivity analysis)に近い操作で、最適点周辺での性能の崖立ちを確認できる。
Optimization Results タブで結果をグラフ表示し、利益曲面(profit surface)の滑らかさを見る。鋭い山型より、広い台地型のパラメータ空間の方が望ましい。
限界の明示
これらはモンテカルロの代替ではなく補完だ。「モンテカルロを本格的にやりたい」なら、後述するEA StudioかSQXを使うべきだと私は考えている。
Claudeと会話しながらインジケータが作れるHedgrow FXはこちら。EA開発のロジック設計段階から自然言語で条件を詰める使い方が、個人的にはモンテカルロ前の仮説整理にも役立っている。
EA Studioのモンテカルロ機能と設定方法
EA Studio(ForexSB製)は、ブラウザベースで動作するEA生成・検証ツールだ。バックテスト結果に対してモンテカルロを直接実行できる。
(出典: ForexSB EA Studio ドキュメント https://forexsb.com/wiki/eas-guide/monte-carlo)
基本設定と各パラメータの意味
テスト実行回数(Number of Tests)
デフォルト値は20回。最低でも20回、本番投入前は100回以上を推奨する。一般的に1,000イテレーション以上が推奨されるとされているが(出典: BuildAlpha https://www.buildalpha.com/monte-carlo-simulation/)、EA Studioの実装はトレード操作ベースのため、数十〜数百回でも有意な評価が可能だ。
エントリースキップ確率(Entry Skip Probability)
デフォルト2%。「各エントリーシグナルを2%の確率で意図的に無視する」設定だ。現実の執行では約定できないケースが必ず発生する。スキャルピング系EAほどこの値の影響が大きい。
私が使っている設定では、通常スキャルパーは4〜5%、スイング系は1〜2%に設定する。エントリー頻度が低い戦略でスキップ率を高くすると、サンプル数が不足して判定が不安定になるため注意が必要だ。
合格判定基準
EA Studioの標準合格基準は「80%以上のテストが合格」、つまり20回実行なら16回以上が合格ラインを超えることだ。この80%というしきい値には統計的な根拠がある——二項分布で考えると、真のロバスト戦略が20回中16回以上通過する確率と、ランダムな戦略が偶然通過する確率の差が最大化されるポイントに近い。
実行手順
- EA Studioでバックテストを完了させる
- 「Monte Carlo」タブを選択
- 「Number of Tests」を設定(最低20、推奨100)
- 「Entry Skip Probability」を設定(デフォルト2%)
- 「Run Monte Carlo」をクリック
- 結果の「Passed Tests」列で80%以上を確認
サンプルトレード数が少ない戦略(バックテストで50トレード未満など)はモンテカルロ結果の信頼性自体が低い。最低100トレード、できれば300トレード以上の蓄積がある戦略に適用すべきだ。
モンテカルロ通過の効果
EA Studio ドキュメントによれば、モンテカルロ検証を通過させた戦略は、過最適化リスクを低減できるとされている(出典: ForexSB EA Studio ドキュメント https://forexsb.com/wiki/eas-guide/monte-carlo)。定量的な効果は戦略・市場環境によって異なるため、数値として保証されるものではない。この点を踏まえたうえで、フィルタリングとしての有効性を示す根拠として読んでほしい。
StrategyQuantの5手法によるロバストネステスト
StrategyQuant X(SQX)はモンテカルロ手法を5種類実装しており、それぞれ異なる側面のロバストネスを検証する。EA Studio の単一アプローチより多角的だ。
手法1: Randomize Trades Order(以下、Randomize Trades)
実行済みトレードをランダムにシャッフルして、異なる順序での資産曲線を生成する。
何を測るか: ドローダウンが特定のトレード順序に依存していないか。
通常のバックテストでは、損失トレードが分散していれば問題ないが、集中していると深刻なドローダウンになる。Randomize Tradesは「もし損失トレードがもっと集中していたら?」という問いに答える。
私の判断基準では、最大ドローダウンがランダム化後の95パーセンタイルで元のDDの2倍を超えるなら、その戦略は「順序の運」に依存している疑いがある。
手法2: Randomize Slippage(スリッページランダム化)
各トレードのエントリー・エグジット価格に、指定範囲内のランダムなスリッページを付加する。
何を測るか: 執行劣化への耐性。
流動性の低い時間帯、ニュース前後、窓開けなどでスリッページは大きくなる。固定スプレッドのバックテストでは見えない「執行コストの変動リスク」をここで評価できる。
スキャルピングEAはこの手法に特に敏感だ。エントリーとエグジットが数ピップス単位の戦略では、2〜3ピップスのスリッページが利益構造を破壊する。
手法3: Randomize Spread(スプレッドランダム化)
バックテストで使用したスプレッドを確率的に変動させる。
何を測るか: スプレッド拡大下での収益性。
ロンドン・ニューヨーク重複時間は低スプレッドだが、アジア時間早朝やサーバーメンテナンス前後はスプレッドが数倍に広がる。「平均スプレッドでは儲かるが、拡大時に沈む」戦略をここで弾く。
手法4: Randomly Skip Trades(以下、Skip Trades)
EA Studioのエントリースキップと同様の概念で、指定確率でトレードを意図的にスキップする。
何を測るか: 約定漏れへの耐性。
インターネット接続の問題、ブローカーサーバーの障害、プラットフォームの再起動など、現実には約定できないケースが発生する。重要トレードが抜けても全体として機能する戦略かを確認する。
手法5: Noise on Prices(価格データへのノイズ付加)
ヒストリカルデータの各価格に微小なランダムノイズを加えて、「別の過去」を複数生成する。
何を測るか: 微小な価格変動への耐性。
5手法の中で最も本質的なモンテカルロに近い手法だ。ヒストリカルデータはあくまで「起きた一つの過去」にすぎない。少し違う相場展開でも機能するか、それとも特定の価格経路にのみ適応しているかを測る。
特に移動平均のクロスオーバーや特定のローソク足パターンを使う戦略は、このテストで脆弱性が出やすい。価格の1〜2ティックのずれでシグナルが変わるなら、その戦略は統計的に不安定だ。
SQXでの推奨設定
SQXのモンテカルロはプロジェクト設定から「Monte Carlo」タブで構成する。
- イテレーション数: 1,000回(最低)、5,000回(推奨)
- 5手法すべてを同時に有効化するのではなく、戦略の特性に応じて重点を変える
- スキャルパー: Randomize Slippage と Skip Trades を重点的に
- スイング系: Randomize Trades と Noise on Prices を重点的に
モンテカルロ結果の合格判定基準
「モンテカルロを通過した」を何で判断するかは、ツールによって定義が異なる。ここでは統一的な考え方を示す。
主要指標と許容乖離幅
最大ドローダウンの乖離
モンテカルロ結果の95パーセンタイルにおける最大ドローダウンと、元のバックテスト最大ドローダウンの差を見る。
EA-BANKのtakah氏の実践基準(出典: ea-bank.com https://ea-bank.com/takah/2018061001/)では、95%信頼度データとの最大DD乖離許容幅を概ね3%以内としている。
例えばバックテストの最大DDが10%なら、モンテカルロの95パーセンタイルで13%以内が合格圏だ。これを超える場合、バックテスト結果が「運良く損失が分散した」ことに依存している可能性が高い。
RR比(リスクリワード比)の乖離
同じくtakah氏の基準で、RR比の乖離許容幅は0.2以内。バックテストでRR=1.5だった戦略がモンテカルロで平均1.2になるなら、これは許容範囲を超えている。
合格率
EA Studio基準の80%(20回中16回以上)は一つの目安だが、リスク許容度に応じてこれを引き上げることを勧めている。
| リスク許容度 | 合格率基準 | 試行回数 | |---|---|---| | 低リスク運用 | 90%以上 | 1,000回以上 | | 標準運用 | 80%以上 | 100〜500回 | | 開発・探索段階 | 70%以上 | 20〜100回 |
信頼区間の読み方
5,000イテレーション実行すると、純利益・最大DD・シャープレシオ等の分布が得られる。この分布で見るべき点は2つだ。
- 5パーセンタイル(最悪5%ケース)の数値: ここがマイナスなら「2割の確率で損をする戦略」だ
- 分布の歪み: 右歪み(利益側に長い尾)が理想で、左歪み(損失側に長い尾)は危険シグナルと読む
OANDAの実践例(出典: OANDA Lab Education https://www.oanda.jp/lab-education/ea_trading/beginner/drawdown_assumption/)では95パーセンタイル信頼区間を運用停止基準の設計に使っている。「最大DDが95パーセンタイルで○○%を超えたら運用を止める」というルール設定だ。リスク管理の自動化という観点で非常に実践的なアプローチだと思う。
見落とされがちな「サンプルサイズ問題」
モンテカルロ自体の信頼性は元のバックテストのトレード数に依存する。トレード数が少なければ、どれだけイテレーションを積んでも同じ少ないトレードのシャッフルを繰り返すだけだ。
実務的な目安として:
- 50トレード未満: モンテカルロの結果は参考程度
- 100〜300トレード: 基本的な評価として使える
- 500トレード以上: 統計的に信頼できる評価
BuildAlphaのドキュメント(出典: BuildAlpha https://www.buildalpha.com/monte-carlo-simulation/)でも、サンプルサイズの重要性と少サンプルでの過信リスクを明示している。
推奨イテレーション数: 1,000回以上(出典: BuildAlpha https://www.buildalpha.com/monte-carlo-simulation/)。OANDAの実践例では5,000回が採用されている(出典: OANDA Lab Education https://www.oanda.jp/lab-education/ea_trading/beginner/drawdown_assumption/)。
よくある質問(FAQ)
Q: MT5のEAでモンテカルロシミュレーションを実行するにはどうすればよいですか?
A: MT5の最適化機能とモンテカルロは別物です。MT5の最適化はパラメータを体系的に変化させて最良の組み合わせを探す操作で、モンテカルロは確率的な摂動を加えて分布を評価します。目的も手法も異なります。MT5標準機能にはモンテカルロが存在しないため、EA StudioまたはSQXと組み合わせて使うのが実践的です。
Q: EA StudioとSQXのモンテカルロはどちらを使えばよいですか?
A: SQXの5手法アプローチの方が多角的です。EA Studioはアクセスしやすく手軽ですが、SQXは執行条件の変動まで含めた評価ができます。EAの開発段階ではEA Studioで素早くスクリーニングし、本番投入前にSQXで詳細評価するという使い分けが現実的だと思います。Claudeと会話しながらインジケータが作れるHedgrow FXはこちら。EAのロジック設計にAIを活用したい場合の選択肢として参考にしてほしい。
Q: モンテカルロシミュレーションを通過したEAは本番でも勝てますか?
A: モンテカルロ通過は「特定のリスク要因への耐性がある」ことを示しますが、将来の収益を保証するものではありません。過去データへの適応という性質上、相場環境が大きく変化した場合にはモンテカルロ通過EAも機能しなくなります。EA Studio ドキュメントでは過最適化リスクの低減効果が示されていますが、定量的な効果は戦略・市場環境によって異なるため、これは「リスク低減」であり「利益保証」ではありません。
Q: フォワードテストとモンテカルロシミュレーションは何が違いますか?
A: 補完関係にあります。フォワードテストは「別の時間軸での性能検証」、モンテカルロは「同一期間内の確率的ロバストネス評価」です。どちらも必要で、片方だけでは不十分です。
Q: スキャルピングEAと長期EAでモンテカルロの設定は変えるべきですか?
A: はい。スキャルピングはスリッページとエントリースキップへの感度が高いため、Randomize SlippageとSkip Tradesを重点的に評価します。スイング系はトレード順序と価格ノイズへの耐性を重視します。エントリースキップ確率もスキャルパーは4〜5%、スイング系は1〜2%と変えることを推奨しています。
Q: モンテカルロシミュレーションのイテレーション数は何回が適切ですか?
A: 収穫逓減があります。5,000回を超えると結果の分布はほぼ安定し、計算コストに見合った精度向上は得られません。OANDAの実践例(出典: OANDA Lab Education)で採用されている5,000回が実用上の上限目安です。
Claudeと会話しながらインジケータが作れるHedgrow FXはこちら。モンテカルロで検証したロジックの実装・パラメータ調整を対話形式で進めたい方に向いている。
免責事項
本記事はEAのバックテスト評価手法に関する教育的情報を提供することを目的としており、特定の取引戦略や金融商品の売買を推奨するものではありません。
FX取引には元本損失のリスクがあります。モンテカルロシミュレーションを含むいかなるバックテスト手法も、将来の利益を保証するものではありません。過去の検証結果は将来の成果を約束しません。
EAの本番運用を開始する際は、ご自身のリスク許容度・資金状況・取引経験を十分に考慮し、必要に応じて金融の専門家にご相談ください。
金融商品取引法に基づく登録を受けた業者のサービスをご利用ください。
