自作EA初心者でも、「EAつくーる」アプリで、勝てるEAが作れる ~考え方編~




EA制作に1,000時間費やして分かったこと

僕が初めて「EAつくーる」を購入したのは、2019年10月28日です。

当時は、プログラムを自分で作れることが面白く、ほぼ毎日のようにEA制作に時間を費やしていました。

平日は4~5時間。気が付けば朝の4時や5時まで作業していることもありました。休日は10~12時間ほど。2020年4月頃には、累計で約1,000時間をEA制作に費やしていたと思います。

しかし、最初から順調だったわけではありません。

購入して2か月目くらいには、

「よっしゃ~、勝てるEAが完成したぞ!」

と喜んでいたのですが、実際に運用してみると勝てませんでした。

バックテストでは良い成績が出ているのに、フォワードテストでは思うような結果にならない。修正しても、3か月目、4か月目と同じことを繰り返しました。

「バックテストでは勝てているのに、なぜ実践では勝てないんだろう?」

当時は、その理由がなかなか分かりませんでした。

そして、約1,000時間の試行錯誤を経て、ようやく自分なりに納得できるEAを作れるようになりました。

ただし、ここでいう「勝てるEA」とは、将来の利益を保証するものではありません。当時の検証や運用で良い結果が得られたという意味です。相場環境が変われば、成績も変わります。

今回は、そんな僕の失敗談を中心に、EA制作で遠回りしないための考え方をお話しします。

EA制作のパソコン環境

EAの制作自体は、それほど高性能なパソコンでなくても可能です。

一方、ストラテジーテスターで大量のパラメーターを最適化する場合は、CPUの性能やメモリ容量によって処理時間が大きく変わります。

僕が制作を始めた2019年当時は、Intel Core i5以上を一つの目安にしていました。しかし、現在はCPUの世代やコア数によって性能が大きく異なるため、単純に「i5以上」「i7以上」とは判断できません。

これからパソコンを購入するのであれば、CPUの世代・コア数、メモリ容量、ストレージなどを総合的に確認するとよいでしょう。

最適化は一度に全部やろうとしない

パラメーターの組み合わせを増やすほど、最適化に必要な計算量は増えていきます。

例えば、5つのパラメーターをそれぞれ10通り試すだけでも、組み合わせは10万通りになります。

そのため、最初からすべての条件を同時に最適化するのではなく、段階的に検証する方法が効率的です。

僕の場合は、まずエントリー条件を検証し、次に利確・損切りなどの決済条件を検証します。その後、必要に応じてエントリー条件を見直します。

ただし、何度も最適化を繰り返して一番良い数字だけを追いかけると、過去データに合わせすぎてしまう可能性があります。

最適化は、良い数字を探すためだけでなく、ロジックがどの程度安定しているかを確認するために使うことが重要です。

僕のEA制作の失敗例

ここからは、実際に僕が経験した失敗を紹介します。

当時の考え方の中には、現在では修正した部分もあります。その点も含めて、振り返ってみたいと思います。

1.検証データが少なかった

最初の頃は、約1年間のヒストリカルデータでバックテストを行っていました。

例えば、1年間で20回エントリーして、勝率80%だったとします。

20回中16勝4敗という結果ですが、これだけで将来も80%の勝率を維持できるとは判断できません。

当時の僕は、少ない取引回数でも成績が良ければ信用してしまっていました。

現在は、取引回数だけでなく、検証期間、相場環境、最大ドローダウン、損益のばらつきなどを合わせて確認することが重要だと考えています。

「100回あれば十分」「10年分あれば安心」といった一律の基準はありません。取引頻度やロジックによって、必要なデータ量は変わります。

2.エントリー回数が少なかった

1分足と日足では、発生するエントリー機会の数が大きく異なります。

1分足は多くの条件を拾いやすい反面、細かな値動きやスプレッドの影響を受けやすくなります。日足は取引回数が少なくなりやすい一方、短期的なノイズの影響は相対的に小さくなります。

どちらが優れているというよりも、ロジックとの相性が重要です。

僕の失敗は、取引回数が少ないにもかかわらず、良い成績が出たことだけでEAを信用してしまったことでした。

3.ロジックそのものが甘かった

バックテストでは右肩上がりのグラフになっていても、実際には偶然うまくいった取引の集合だったのではないか、と思うEAがありました。

例えば、特定の期間だけ強いトレンドが発生していて、その期間に合わせた条件を作ってしまうと、別の相場環境では通用しない可能性があります。

このようなEAは、フォワードテストを始めてから成績が悪化することがあります。

「なぜ、その条件で優位性が生まれるのか?」を説明できるロジックにすることが大切です。

※バックテストとは、過去の価格データを使ってEAの売買をシミュレーションする検証方法です。

※フォワードテストとは、作成したEAをデモ口座やリアル口座などで、実際の時間の流れに沿って稼働させ、動作や成績を確認することです。

4.スプレッドを適切に考慮していなかった

当時、MT4のストラテジーテスターでスプレッドを適当な数値に設定していたことがありました。

しかし、スプレッドは取引コストです。

特にスキャルピングのように小さな値幅を狙うEAでは、スプレッドが少し変わるだけで成績が大きく変わることがあります。

また、スプレッドは時間帯や相場状況によって変動します。早朝、重要指標の発表前後、流動性が低い時間帯などでは、通常より大きく広がることがあります。

MT4のテスト方式や使用するデータによって、スプレッドの扱いは異なります。固定スプレッドで検証している場合は、実際の変動を十分に再現できないことがあります。

現在は、MT5のリアルティックを利用したテストなど、より実際の取引条件に近い検証方法もあります。

バックテストの成績を見るときは、価格データだけでなく、スプレッド・手数料・スリッページなどの取引コストも確認しましょう。

5.ビジュアルモードを活用していなかった

これは、僕にとって非常に大きな失敗でした。

最初の頃は、バックテストの結果表やグラフばかり見ていて、実際にどのような値動きでエントリーし、どのように決済されているのかを十分に確認していませんでした。

しかし、EAの動作を理解するには、チャート上で売買を確認することが重要です。

例えば、

・自分が想定した場所でエントリーしているか
・どのような値動きで損切りになっているか
・利確までにどの程度の含み損を抱えているか
・想定外の時間帯にエントリーしていないか
・ロジックの条件と実際の売買が一致しているか

こうしたことは、損益の数字だけでは分かりません。

MT4やMT5のストラテジーテスターには、チャート上で売買を確認できる機能があります。操作方法はバージョンによって異なりますが、取引履歴とチャートを照らし合わせて確認すると、問題点を発見しやすくなります。

バックテストの数字が良くても、売買の中身が自分の想定と違っていたら、そのEAは一度見直した方がよいと思います。

6.取引時間制限を活用していなかった

FXは、時間帯によって値動きやスプレッドの特徴が変わります。

特に週明けの取引開始直後や、流動性が低い時間帯には、スプレッドが広がったり、価格が大きく飛んだりすることがあります。

当時の僕は、こうした時間帯を十分に考慮せず、EAを稼働させていました。

その結果、想定していないエントリーが発生することもありました。

EAつくーるには、取引時間を制限するための機能があります。ロジックに応じて、稼働する時間帯を設定することができます。

ただし、すべてのEAで早朝を避ければよいというわけではありません。現在の僕は、窓開けのように、むしろ特定の時間帯の値動きを狙うEAも制作しています。

重要なのは、EAが狙っている相場環境と、実際に稼働させる時間帯を一致させることです。

7.損切りの最適値を信用しすぎていた

当時は、ストラテジーテスターの最適化結果で、最も損益やプロフィットファクターが良かった設定を採用していました。

例えば、損切り50pipsが最も良い結果だった場合、その数値をそのまま採用していました。

しかし、50pipsだけが突出して良く、40pipsや60pipsでは大きく成績が悪化するような場合は注意が必要です。

過去の値動きに偶然ぴったり合っているだけかもしれません。

そこで、損切りを少し浅くした場合、深くした場合も確認し、成績がどの程度変化するかを見るようになりました。

ただし、損切りを深くすれば安全になるわけではありません。損失額が増え、資金管理上のリスクも大きくなります。

大切なのは、最適値をそのまま信用するのではなく、周辺の設定でもロジックが成立するかを確認することです。

8.勝率ばかりを重視していた

当時の僕は、勝率75%以上を一つの合格ラインにしていました。その後は、勝率90%以上、プロフィットファクター4.0以上といった高い基準を目指すようになりました。

実際に、バックテスト上では勝率100%や200連勝以上を記録したEAもありました。

しかし、現在は、勝率だけでEAの良し悪しを判断することはできないと考えています。

例えば、勝率90%でも、9回の利益を1回の大きな損失で失うEAであれば、長期的に利益が残るとは限りません。

反対に、勝率40%でも、利益が損失を十分に上回る設計であれば、利益を残せる可能性があります。

確認したいのは、勝率だけではなく、平均利益、平均損失、プロフィットファクター、最大ドローダウン、連敗数、取引回数などです。

高勝率は魅力的ですが、「高勝率=安全」ではありません。

9.長期保有でも勝てればよいと思っていた

当時は、バックテストで利益が出ていれば、ポジションを長期間保有するEAでも問題ないと思っていました。

しかし、実際に運用してみると、何日も含み損を抱えることが精神的な負担になりました。

また、エントリーした時点の根拠が、時間の経過とともに弱くなっているのではないか、と感じることもありました。

もちろん、長期保有型のEAが悪いわけではありません。トレンドフォローなど、長期間ポジションを保有することに合理的な理由がある手法もあります。

ただ、僕自身は、短い時間で決着が付くトレードの方が性格や運用方針に合っています。

現在も、指標、窓開け、東京時間の一方向への値動きなど、比較的短時間で結果が出やすい場面に注目しています。

自分がどのような値動きを狙い、どの程度の保有時間を許容するのかを、EA制作の段階で明確にしておくことが大切です。

10.デモ口座とリアル口座の違いを軽視していた

当時、デモ口座で検証したEAを、そのままリアル口座で運用していたことがありました。

しかし、デモ口座とリアル口座では、サーバーや価格配信、スプレッド、約定条件などが異なる場合があります。

ある日、リアル口座側の環境でバックテストを行ったところ、デモ口座での結果と大きく異なり、驚いたことがありました。

ただし、成績が違った原因を、サーバーの違いだけで断定することはできません。使用したヒストリカルデータ、スプレッド、テスト設定、口座タイプなど、複数の要因が考えられます。

現在は、実際に運用する口座の取引条件を確認し、可能な限り近い環境で検証することを心掛けています。

デモで勝てたからリアルでも同じ結果になる、とは考えない方がよいでしょう。

勝てるEAを作るために大切だと思うこと

EA制作に向いている人

僕は、EA制作に向いているのは、プログラミングが得意な人だけではないと思っています。

むしろ、次のような作業を楽しめる人が向いているのではないでしょうか。

・仮説を立てて検証することが好きな人

「この時間帯には、こういう値動きが起こりやすいのではないか?」

そんな疑問を持ち、実際にデータを調べてみることが好きな人です。

・失敗した原因を調べられる人

EA制作では、思い付いたアイデアの多くが期待どおりの結果になりません。

そのときに「ダメだった」で終わらず、なぜダメだったのかを調べることが、次のアイデアにつながります。

・数字やデータを扱うことが苦にならない人

Excelなどを使って、取引履歴、損益、勝率、ドローダウン、資金管理などを整理できると便利です。

・自分の考えを疑える人

「この手法は勝てるはずだ」と思っていても、データが違う結果を示しているなら、考えを修正する必要があります。

EA制作では、思い込みよりも検証結果を優先する姿勢が大切だと思います。

FXは予想ではなく、優位性を探す作業

僕は、FXを「上がるか下がるかを当てるゲーム」として考えるよりも、優位性のある条件を探す作業として考えています。

例えば、ある時間帯、ある値動き、ある条件が重なったときに、過去にはどのような結果になっていたのか。

その傾向を調べ、再現性があるかを検証する。

もちろん、過去に優位性があったからといって、未来も同じ結果になるとは限りません。

それでも、何の根拠もなく売買するよりは、検証した条件に基づいて取引する方が、自分の判断を客観的に見直しやすくなります。

EA制作の面白さは、自分のアイデアを数字で検証できることだと思います。

最適化よりも、まずロジックを考える

昔の僕は、「EA制作は構想1割、最適化9割」と考えていました。

EAつくーるを使えば、簡単なEAのプロトタイプは短時間で作れます。そのため、最適化に多くの時間を費やしていました。

しかし、現在は、最適化だけで強いEAを作ることは難しいと考えています。

そもそも優位性のないロジックを、いくら最適化しても、過去データに合った設定が見つかるだけかもしれません。

まずは、なぜその条件でエントリーするのか、どのような値動きを狙うのか、どこで決済するのかを考える。

そのうえで、バックテストや最適化を使って検証する。

ロジックの仮説と、データによる検証の両方が重要です。

EA制作のアイデアを考える

思い付いたら、まず小さく作ってみる

EA制作を始めた頃は、RSIを使ったEAをたくさん作っていました。

RSIは、相対力指数と呼ばれるテクニカル指標で、一般的には買われすぎ・売られすぎなどを判断するために利用されます。

「RSIがこの数値になったら買う」
「この条件を加えたらどうなるだろう?」

そんなアイデアを思い付いたら、まず簡単なEAを作って検証していました。

ほとんどのアイデアは期待どおりにはなりませんでしたが、その過程で、どのような条件が機能しやすいのかを少しずつ学ぶことができました。

通貨ペアや時間足を変えてみる

ある通貨ペアで通用しなかったロジックが、別の通貨ペアでは違う結果になることがあります。

また、1分足ではうまくいかなかったものが、5分足や15分足では改善することもあります。

ただし、成績が良い組み合わせを探し続けるだけでは、過剰最適化につながる可能性があります。

なぜその通貨ペアや時間足で機能するのか、値動きの特徴と合わせて考えることが大切です。

買いと売りを逆にしてみる

買いのロジックがうまくいかなかった場合、売りに変えて検証してみることもあります。

もちろん、単純に逆にすれば勝てるわけではありません。

しかし、買いと売りで値動きの特徴が異なる場合もあるため、検証する価値はあります。

僕自身、現在もGOLDの窓開けや特定時間帯の売りなど、時間帯や方向による値動きの違いに注目しています。

「どちらに動くか」だけでなく「どこまで動くか」を考える

僕がEA制作を続ける中で、特に重要だと感じるようになったのが、決済までの値動きです。

例えば、買いエントリーした後に価格が上がったとしても、利確位置まで到達せず、その後に下落して損切りになることがあります。

方向性が合っていても、利益になるとは限りません。

そこで、エントリー後にどの程度の値幅が出やすいのか、どのくらいの時間で決着が付くのか、途中でどの程度逆行するのかを確認するようになりました。

僕にとってEA制作は、「上がるか下がるか」だけでなく、「どのような値動きで、どこに着地するのか」を探す作業でもあります。

EAを実際に稼働させるときの注意点

最初は小さなロットで検証する

EAを作ったばかりの頃は、バックテストで良い成績が出ると、すぐに大きなロットで運用したくなります。

僕も、過去にそのような失敗を繰り返しました。

しかし、バックテストで良い結果が出ても、実際の運用では想定外のことが起こります。

スプレッドの拡大、スリッページ、約定の違い、通信トラブル、EAの設定ミスなど、確認すべきことはたくさんあります。

そのため、最初はデモ口座で動作を確認し、リアル口座で検証する場合も、失っても問題のない小さな金額から始めることをおすすめします。

僕はXMのマイクロ口座などを利用し、小さなロットで検証することがあります。

ただし、最小ロットでの損失額は、銘柄、口座タイプ、損切り幅などによって異なります。必ず事前に計算しておきましょう。

資金管理は損失額から考える

例えば、1回のトレードで利益500円、損失1,000円を想定しているとします。

この場合、資金管理では、まず失う可能性のある1,000円に注目します。

資金が20,000円であれば、1,000円の損失は資金の5%です。

ただし、5%が誰にとっても適正というわけではありません。連敗や最大ドローダウンを考えると、1回あたりのリスクが大きすぎる場合もあります。

例えば、資金の5%を10回連続で失うと、複利計算では元の資金から約40%減少します。

現在の僕は、手法ごとのリスクや資金全体の管理を分けて考えるようにしていますが、初心者の方には、まず小さなリスクで運用し、連敗しても継続できる資金管理を考えることをおすすめします。

利益をいくら得られるかよりも、先に「いくら失う可能性があるか」を確認することが大切です。

EA制作を続けて感じたこと

相場は自分の期待どおりには動かない

「これなら勝てる」と思ったEAでも、実際に運用すると期待どおりにならないことがあります。

特に、大きなロットにした直後に損失が出ると、精神的なダメージも大きくなります。

だからこそ、バックテストの良い成績だけで判断せず、フォワードテストや小ロットでの実運用を通じて、少しずつ確認していくことが重要だと思います。

他人の格言も、自分で検証してみる

「損小利大が大切」
「順張りが有利」
「逆張りは危険」

FXには、さまざまな格言や考え方があります。

どれも参考になる部分はありますが、すべての手法に当てはまるわけではありません。

例えば、損小利大の手法もあれば、高勝率で小さな利益を積み重ねる手法もあります。順張りが機能する相場もあれば、逆張りが機能する相場もあります。

大切なのは、格言をそのまま信じることではなく、自分のロジックで検証してみることです。

成功例だけでなく、失敗例も参考にする

SNSでは、大きな利益を出したトレードが注目されやすいです。

しかし、その利益を得るために、どの程度のリスクを取っていたのかは、投稿だけでは分からないことがあります。

大きな利益の裏側に、大きな含み損や高いロット、過度なレバレッジが隠れている場合もあります。

僕は、成功例だけでなく、失敗例や損失が出たときの資金管理も参考にするようにしています。

アイデアはメモしておく

EAのアイデアは、チャートを見ているときだけでなく、仕事中や日常生活の中で突然思い付くことがあります。

その場では覚えているつもりでも、後になると忘れてしまうものです。

僕は、思い付いたアイデアをメモしておき、時間があるときにEAつくーるでプロトタイプを作って検証するようにしています。

最適化とカーブフィッティングは区別して考える

EA制作では、最適化は必要な作業です。

しかし、過去データに合わせてパラメーターを調整しすぎると、カーブフィッティング(過剰最適化)につながる可能性があります。

例えば、過去の特定期間だけで最高の成績になる設定を探し続けると、その期間には強くても、別の期間では通用しないEAになることがあります。

そのため、最適化した期間とは別のデータで検証したり、パラメーターを少し変えても成績が大きく崩れないか確認したりすることが重要です。

最適化そのものが悪いのではなく、過去の成績だけを良くすることが目的になってしまうのが問題だと思います。

まとめ|EA制作は失敗から学ぶことが多い

僕は2019年にEAつくーるを購入してから、約1,000時間を費やすまで、何度も失敗を繰り返しました。

バックテストでは勝てるのに、実際には勝てない。

その原因を調べていく中で、データ量、スプレッド、取引時間、ロジック、決済方法、資金管理など、さまざまなことを学びました。

現在もEA制作を続けていますが、当時と比べると、考え方はかなり変わっています。

昔は「勝率の高いEAを作りたい」という気持ちが強かったのですが、今は「どのような値動きに優位性があり、どの程度のリスクで運用できるのか」を重視するようになりました。

EA制作に終わりはありません。

相場環境が変われば、これまで通用していたロジックが通用しなくなることもあります。だからこそ、検証を続け、自分の考えを修正していくことが大切だと思います。

これからEA制作を始める方には、最初から完璧なEAを目指すのではなく、小さなアイデアを作って、検証して、失敗から学ぶことをおすすめします。

自分で作ったEAが、想定したとおりに動いたときの面白さは、EA制作ならではのものです。

そして、その経験は、たとえ最初のEAが勝てなかったとしても、次のEA制作に必ず役立つと思います。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える!ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle