Imperial Dominator
この記事を別の言語で読む:
English | Русский | 中文 | Español | Português | Deutsch | 한국어 | Français | Italiano | Türkçe | العربية | Bahasa Indonesia | ไทย
私たちのコミュニティ: 日本語のMQL5チャンネルに参加する
Imperial Dominator は、MQL5 Marketで大々的に宣伝されているあるExpert Advisorの取引手法を意図的に再現した、教育目的のEAです。見栄えの良い成績の裏に重大なリスクが隠れ得ることを明らかにするために作りました。
これらの手法を使っているMQL5 Marketの上位EAが何か知りたい方は、私にプライベートメッセージを送ってください。
この記事で説明する内容はすべて、EAのMarketデモ版を使ってStrategy Testerで検証できます。

このグラフは、この記事で扱うのと同じExpert Advisorから得られたものです。
ドローダウンはごく小さく、曲線は滑らかに上昇しています。
何かを売りたい人が見せるのは、まさにこういうグラフです。
これを作ったのはテストそのものではありません。人間です。
この記事では、その作り方を紹介します。
このExpert Advisorは入手でき、皆さん自身で同じことを再現できます。 EA Input Parameters Explained
まず、このEAは一体何なのか?
Imperial DominatorはシンプルなExpert Advisorです。
1日1回、11:00(GMT 08:00)に直近8時間の高値と安値から価格レンジを作り、その両端にBuy StopとSell Stopの注文を置きます。
各シグナルは7つの等しい注文に分割され、固定のStop LossとTake Profitが設定されます。
保有ポジションにはトレーリングStop Lossがあり、新しい利益を利用して古い損失ポジションを強制決済します。
それだけです。
この程度のコードなら、MQL5 Freelanceで数十ドル程度で発注できます。
しかしMarketの販売ページでは、コードではなくマーケティングによって、EAの価格が数十ドルから数百ドルへと引き上げられます。
では、なぜこのようなEAを取り上げるのか?
この記事では最終結果だけを見るわけではないからです。
同じExpert Advisorを使い、この美しい結果がどのように作られるのかを段階的に見ていきます。
MetaTrader 5のStrategy TesterでEAを実行し、個々の取引を調べ、設定を変更して、私の結論を検証できます。
私の言葉を信じる必要はありません。
自分で全部確認してください。
第1層:比率
まず設定を見てください。

Take Profitは600 p、Stop Lossは2600 pです。
p = 価格ポイントです。
つまり設定に表示された比率は約1対4.3です。
別のExpert Advisorなら数字は異なっても、同じような比率であれば同様に妥当に見えるでしょう。
しかし、これは売り場での見せ方にすぎません。
このシステムでは、大半の取引が600ポイントのTake Profitで決済されるわけではありません。
本当の比率は実際の取引に表れます。
一つの取引を見てみる
ビジュアルテストを実行し、一つの取引を開始から終了まで観察してください。

ポジションが開きます。
Take Profitは設定どおり600 pです。
価格が有利な方向へ進みます。
トレーリングストップがStop Lossを動かし、約55ポイントの利益を確保します。
価格が戻ります。
ポジションは約55ポイントの利益で決済されます。
600 pのTake Profitには到達していません。
ほとんどの取引でも到達しません。
つまり設定上はこう見えます。
600 p 対 2600 p。
しかし実際の取引ではこうです。
約55 p 対 2600 p。
およそ1対47です。
2600ポイントの損失を55ポイントの勝ち取引で埋め合わせるには、約47回の勝ちが必要です。
高い勝率の正体はここにあります。
小さな勝ちが多数。
大きな負けがまれに発生。
だから資産曲線は非常に滑らかに見えるのです。
頻繁に勝つからといって、システムが優秀になったわけではありません。
単に負ける回数が少なく、負けるときの損失が大きいだけです。
この比率は設定画面には表示されません。
Take ProfitとStop Lossの値を見るだけでは理解できません。
個々の取引を見ることで初めて分かります。
私はこうしたシステムをLoss-Delayed EA(損失先送り型EA)と呼びます。
損失を防ぐEAではありません。損失をできるだけ先へ延ばすEAです。
自分で確認:取引
Expert Advisorをビジュアルモードで動かし、10件の取引を連続して観察してください。
数分後のStop Lossの位置と、実際にいくらで決済されるかに注目します。
設定画面の数字だけを見ないでください。
取引に実際何が起きるかを見てください。
EAがよく売れるために、何年も安定している必要はありません。
極めて良く見える期間があれば十分です。
Loss-Delayed EAは構造上、その期間を作れます。大半は小さな利益で、大きな損失は先送りされるからです。
したがって、長い連勝は単なる好成績ではありません。
販売促進のチャンスにもなります。
MQL5シグナル用に、小ロットの小口口座をいくつも継続的に運用します。損失が出るとその口座を見限り、新しい口座に置き換えます。
そのうち一つが長い無敗期間を示すと、積極的な宣伝が始まります。
その期間はできるだけ多く売るためにシグナルを延命します。損失が大きくなりすぎたら削除し、次の出番を待つ別のシグナルに置き換えます。
第2層:エントリーの分割
次に、同じエントリーを取引履歴で確認しましょう。

一つのエントリーを7分割したことを覚えていますか?
履歴では、同じ時刻・同じ価格の7行として表示されます。
パイを一つ買って7切れに分けるようなものです。
パイが7個になるわけではありません。
あくまで一つです。
しかし取引履歴では、7件の別々の取引に見えます。
自分で確認:分割エントリー
Strategy TesterのResultsを開き、建玉時刻と価格を確認してください。
複数行が一致していれば、一つのエントリーを複数ポジションに分割した可能性があります。
MQL5シグナルページのTrading Historyでも確認できます。

なぜ重要なのか
このような連勝は宣伝に非常に有利だからです。
一つのエントリーが7つの利益ポジションになれば、履歴には7勝と表示されます。
合計利益を持つ一つのエントリーより、はるかに印象的に見えます。


こういうスクリーンショットを見たことがあるでしょう。
同じ利用者が投稿する、利益の行ばかりが並んだ画像です。では、その見せかけをどう見破りますか?
大きなロットで取引した証拠を求めましょう。例えばMarketのシグナルサービスや信頼できる他のシグナルサービスで確認できる実口座履歴です。検証できる証拠がなければ信じないでください。
こうした問いに答えがないほど、そのEAの実際の取引について分かることは少なくなります。
美しいスクリーンショットは、美しいスクリーンショットが作られた証拠にすぎません。EAの長期成績の証明ではありません。
ただし連勝だけで判断する前に、ここに注目してください。
実際には独立したエントリーが何件あったのか?
一つのエントリーに含まれる7ポジションは、独立した7勝ではありません。
例えば40日間まったく損失がないこともあります。
印象的に聞こえます。
しかし、それだけではシステムについて多くは分かりません。
長い取引履歴から切り取った、ごく短い一部分かもしれません。
なぜエントリーを分割するのか?
この分割には実用的な目的もあります。
Expert Advisorは新しい取引の利益を使って、古い損失ポジションをStop Lossに達する前に決済します。
この仕組みを私はこう呼ぶこともできるでしょう。
「高度で独自のNeural AI技術」
いかにもすごそうです。
実際の原理は簡単です。
新しいポジションが利益を出せば、その利益を古い含み損ポジションの損失軽減に使えます。
期間によって結果を改善することも悪化させることもあります。したがって戦略の一部としての価値はありません。
テスターの最適化モードでは、Batch Coefficientを0に設定してこの仕組みを無効にできます。

両方の結果を比較してください。

実際の差は小さいものです。
しかし初心者には、損失が少し見えるほうが、ドローダウンが一切ない曲線より信頼できるEAに見えてしまいます。

この実験について、もう一つ重要な点があります。
Imperial Dominatorシグナルでは、私のRecovery Boosterも使っています。
これはこのタイプのEA専用ではなく、他の戦略でも使える独立したリカバリーツールです。
Imperial Dominatorでは、履歴を分析するリカバリー機構によって、このシステムをどれだけ長く延命できるかを調べるため、意図的に使いました。
それでもシステムの本質は変わらず、リスクは消えません。むしろ損失が連続すると、こうした仕組みはドローダウン(DD)を大きく悪化させる可能性があります(私のシグナルでも明確に確認できます)。
第3層:対象期間
最初の二つの層で、曲線が滑らかに見える理由は分かります。
しかし、大きな下落が一度もない理由までは説明できません。
同じテストに一つの損失期間を含めると、こうなります。

これは一つの損失期間にすぎません。
では、その日にEAが取引しなかったらどうなるでしょうか。
Imperial DominatorにはSkip Daysパラメータがあります。
指定した日付には新規注文を出さないようにします。
Skip Days = 241002に設定してください。

EAに取引させない日付を入力します。
テストを再実行します。

下落が消えました。2024.10.02にはポジションが開かれなくなっています。
勝率が上昇しました。
最大ドローダウンは減り、利益は増え、曲線は完璧に見えます。
しかもテストの概要には、この日を除外した痕跡が表示されません。
では、どこまでできるか見てみましょう
これまでは損失期間を一つ除外しただけです。
次はすべての損失期間に同じことを行います。
16年間のテスト期間と可変ロットサイズを使います。

結果は滑稽なほど極端です。
数億もの利益。
素晴らしい取引戦略を発見したからではありません。
過去の都合の良い日だけ可変ロットで取引させ、都合の悪い日を除外しただけです。
システムが負けてもよい日を自分で選べば、過去データからどれほどの結果を作れるかを示す話です。
自分でも作って確認してください!
このEAでは不利な日付をコード内に隠していません。Skip Days欄にあります。
しかし同じ原理を、購入者から見えないコード内に組み込むこともできます。
その場合、大きな損失の後にMarketページへ新しいバージョンが登場し、更新履歴のWhat's new欄に例えばこう書かれます。
「パフォーマンスを改善」
あるいは
「軽微な問題を修正」。
そこには何とでも書けます。肝心なのは更新内容そのもので、横に書かれた言葉ではありません。その後EAのバックテストは再び完璧に見えます。
損失日がExpert Advisorのコードに直接埋め込まれていれば、設定画面には現れず、無効にもできません。
こうしたバックテストを技術的に簡単に作る方法は、前の記事で詳しく説明しています。
STOP! Backtests Lie. How to Make Any EA Look "Perfect" in 5 Seconds
https://www.mql5.com/en/blogs/post/769134
ですから、見せられたバックテストがシステムの全履歴とは限りません。
取引を許可された日だけの履歴かもしれません。
自分で確認:除外した日
EAのバックテストで損失日を見つけてください。
全期間でテストします。
次にその日を除外し、もう一度テストします。
結果を比べてください。
たった一日で、バックテスト全体の印象が大きく変わり得ます。
では、正当な方法としてできないのか?
正当な手順、つまりフィルター、テスト、検証には時間がかかります。
しかし、このシステムでは役に立ちません。
損失が極めて少なければ、わずかな事例から共通点を見いだすことはできません。
少数の孤立した事例で作ったフィルターは、法則ではなく偶然に適合するかもしれません。
1年に3回しか負けていないシステムで、その3日を除外してもEAを改善したことにはなりません。
統計から気に入らない部分を取り除いただけです。
次の損失は、まったく別の日に別の理由で発生するかもしれません。
これはRare-Event Overfitting(まれな事象への過剰適合)と呼ばれます。
過去の損失を正確に取り除くほど、フィルターは脆弱になり得ます。
過去の損失を除外するだけで将来の損失がゼロになる可能性は、事実上ありません。
バックテストの過剰最適化と、テスト対象外期間の結果への影響についてはこちらです。
Bailey, D., Borwein, J., Lopez de Prado, M., & Zhu, Q. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
SSRN — full text of the paper
実シグナルの寿命を延ばし、避けられない事態を先延ばしする別の方法
Expert Advisorが取引できる日数を単純に減らすこともできます。
例えば特定の曜日だけに取引を制限します。
ニュースフィルターを追加します。
特定の時間帯の取引を禁止します。
こうしたフィルターは、それぞれ単独では十分合理的に見えるかもしれません。
実際に役立つこともあります。
しかしマーケティングの観点からも見る必要があります。
EAの取引日が少ないほど、損失を出す機会も減ります。
テストに残る損失が少ないほど、無敗期間を長く見せやすくなります。
これは特にLoss-Delayed EAで重要です。大きな損失を先送りできるほど、それまでの連勝が印象的に見えます。
そのフィルターには論理的な根拠があるのでしょうか。それとも取引日を減らし、システムの優秀さを宣伝できる期間を延ばしているだけでしょうか。
例えば金曜日に取引しなければ、平日の5日中4日しか取引しません。
すると取引日数で見た同じ連勝が、暦の上では約25%長く続きます。
連勝の質が上がったわけではありません。進行が遅くなっただけです。
では、実際のシグナルページの曲線もなぜこれほど滑らかなのか?
ここまではExpert Advisor本体とそのバックテストで何ができるかを見てきました。
しかしMQL5シグナルには実際の取引口座の統計が表示されます。
そこで自然な疑問が生まれます。
実口座なのに、なぜ資産曲線がほぼ完璧に見えるのでしょうか?
ここではEAのコードではなく、口座統計の見せ方という別のレベルで操作が行われます。
同じ口座を二つの表示、GrowthとBalanceで見比べましょう。
違いが分かりますか?
取引結果自体は変わっていません。
Growth表示では、同じ期間にドローダウンがあったにもかかわらず、曲線は滑らかに上昇して見えます。
Balance表示では、複数回の入金と出金が確認できます。
これはまた別の次元の操作です。
入出金を使ってMQL5シグナルの統計をいかに美しく見せられるかは、次回のPOM Education Seriesで取り上げます。
ただし、美しい曲線だけでは不十分だと、もうお分かりでしょう。
その曲線を実際に何が作ったのかを見る必要があります。
ここまでで分かったこと
これで次のことが分かりました。
- 小さな利益と大きな損失が、非常に高い勝率を生み出す仕組み。
- 一つのエントリーを複数ポジションに分けることで、長い連勝に見せる仕組み。
- 不利な期間を除外すると、バックテストが美しくなる仕組み。
- 取引日を減らすことで、連勝を暦の上で長く見せる仕組み。
- そして、美しい曲線だけでは何も証明できない理由。
次に完璧なEAの成績を見たときは、曲線だけを見ないでください。
これはLoss-Delayed EAではないか?と問いかけてください。
その裏側を見ましょう。
これはまだ始まりにすぎません
この記事はPOM Education Seriesの最初の教育記事です。
今後もこのシリーズを続け、EAの品質について誤解を招く印象を作るさまざまな手法を紹介する予定です。
次の記事を見逃したくなければ、MQL5のPulse of Marketチャンネルをフォローしてください。
この記事が役に立ったなら、ぜひ他の人にも共有してください。そうでなければ、こうした情報は既に見つけた人だけのものになってしまいます。
Pulse of Marketチャンネル: https://www.mql5.com/en/channels/01a02c54cf2bdd01



