要点(30秒で): AIに「EAを作って」と頼めば、MQL5のコードは数分で出てくる。本当に難しいのはその先――「過去のデータでは勝てるのに、本番では資金が減る」という壁をどう越えるか、だ。先に結論を言うと、AIでEAは作れる。ただし「作れること」と「勝てること」は、まったく別の話。この記事では、入門の手順と、初心者がいちばん高い授業料を払う落とし穴を、実際に何年もEAを回してきた目線で整理する。

「自動で、24時間、感情に左右されずに売買してくれるプログラムが、AIに頼むだけで手に入る」――そう聞くと、ずいぶん夢のある話に聞こえる。そして実際、半分は本当だ。いまのAIは、MetaTrader 5(MT5)で動く自動売買プログラム、いわゆるEAのコードを、驚くほどあっさり書いてくれる。

でも、ここで一度立ち止まってほしい。もし「AIに頼めば勝てるEAが手に入る」のなら、世界中のトレーダーはとっくに全員それで億万長者になっているはずだ。現実はそうなっていない。なぜか。その「なぜ」こそが、この入門記事のいちばん大事な部分になる。

そもそもEAって何? 30秒でわかる自動売買

EAは Expert Advisor の略で、MetaTrader(MT4/MT5)という取引プラットフォームの上で動く、自動売買のプログラムを指す。「相場が条件Aになったら買う、条件Bになったら決済する」というルールをコードで書いておけば、あとはチャートに貼り付けるだけ。人間が寝ていても、仕事中でも、淡々とそのルールを実行してくれる。

魅力は、なんといっても感情が入らないことだ。人間は、含み損が膨らむと「もう少し待てば戻るかも」と損切りをためらい、勝っていれば「もっと伸びるはず」と利確を遅らせる。EAはそれをしない。決めたルールを、機械的に、何百回でも同じ精度で繰り返す。トレードで最大の敵が「自分の感情」だとよく言われることを思えば、これは決して小さくない長所だ。

一方で、EAにできないこともはっきりしている。EAは「決められたルール」を実行するだけで、相場そのものを理解しているわけではない。だからルールが優れていなければ、EAはただ「速く正確に負け続ける機械」になる。ここを誤解したまま始めると、たいてい痛い目を見ることになる。

MQL5という言語 ── EAは何で書かれているのか

MT5上のEAは、MQL5(エムキューエル・ファイブ)という専用のプログラミング言語で書かれている。見た目はC++によく似ていて、OnTick()という関数が「新しい価格が届くたびに呼ばれる」中心の仕組みだ。ここに「移動平均がこうなったら買い」といった判断と、実際に注文を出す処理を書いていく。

たとえば、ごく単純な「移動平均クロスで売買する」EAの骨格は、こんな形になる。

void OnTick()
{
 double fast = iMA(_Symbol,_Period,20,0,MODE_EMA,PRICE_CLOSE);
 double slow = iMA(_Symbol,_Period,50,0,MODE_EMA,PRICE_CLOSE);
 // 速い線が遅い線を上抜けたら買い、下抜けたら手仕舞い
 if(fast > slow && PositionsTotal()==0)
 trade.Buy(0.1); // ロット0.1で買い
 if(fast < slow && PositionsTotal()>0)
 trade.PositionClose(_Symbol); // 決済
}

入門の段階で、この文法を一字一句覚える必要はない。最初に押さえるべきは、EAがおおまかに三つの部分でできている、というイメージだけでいい。ひとつ目は「いつ・何を見て判断するか」(インジケーターや価格の条件)。ふたつ目は「どう注文するか」(買う・売る・決済する、ロットはいくつか)。みっつ目は「どう守るか」(損切り、利確、保有数の制限)。

この三つのうち、初心者がつい一番に気合いを入れるのは「判断」の部分だ。けれど、長く生き残るEAを分けるのは、実はみっつ目の「守り」だったりする。この順番の感覚は、あとでもう一度出てくる。

よく使われるEAの「型」を、ざっくり知っておく

EAのロジックは無数にあるように見えて、おおもとの発想は、いくつかの「型」に整理できる。最初に知っておくと、AIに頼むときの引き出しが増える。

ひとつは順張り(トレンドフォロー)。価格が上がり始めたら買い、下がり始めたら売る。「流れに逆らわない」発想で、大きく動く相場で強い。弱点は、方向感のないレンジ相場で、だましに何度も引っかかることだ。

ふたつ目は逆張り。上がりすぎたら売り、下がりすぎたら買う。「行きすぎは戻る」という発想で、レンジ相場で力を発揮する。弱点は、強いトレンドが出たときに、戻りを待ち続けて大きくやられることだ。

みっつ目はブレイクアウト。一定の値幅を抜けた瞬間に、その方向へ乗る。大相場の初動を捉えられるのが魅力だが、「抜けたと見せかけて戻る」だましに弱い。

どの型にも、得意な相場と苦手な相場がある。万能の型は存在しない。だからこそ、「自分はどの相場で、どの型を使うのか」を決めることが、EA設計の出発点になる。AIに「順張りで、トレンドが出ているときだけ動くEAを」と具体的に頼めるようになれば、もう立派な設計者だ。

「AIにEAを書かせる」は、もう普通にできる

ここからが本題だ。2026年のいま、ChatGPTやClaudeのようなAIは、MQL5のコードをかなりの精度で書ける。「日足の20EMAと50EMAのゴールデンクロスで買い、デッドクロスで決済するEAをMT5用に。ロットは固定0.1、損切りは直近安値に置いて」――この程度の指示なら、コンパイルが通るコードがほぼそのまま返ってくる。

AIでEAを作る5つのステップ

実際にAIと組んでEAを作ってみると、AIが得意なところと、任せると危ないところが、くっきり見えてくる。AIが得意なのは、定型処理だ。注文を送る関数の呼び出し、インジケーターのハンドル取得、エラー処理、ポジション管理――この手の「お作法が決まっているけれど書くのが面倒な部分」は、AIに任せるとあっという間に片づく。人間が一行ずつ調べながら書けば半日かかるところを、数分に縮めてくれる。これは率直に、ものすごくありがたい。

だから現実的な距離感はこうなる。AIを「優秀だけれど相場は知らない新人プログラマー」だと思って、設計と検証は人間が握り、退屈な実装をどんどん任せる。仕様はできるだけ細かく言葉にすること、生成されたコードは必ず自分で読んで意味を確かめること、そして「このEAの弱点はどこか」までAIに聞いてみること。この三つを守るだけで、出てくるコードの安全度はかなり変わってくる。

AIが書くコードの「よくある落とし穴」

AIの書くMQL5は、見た目はそれっぽい。けれど、初心者がそのまま信じると危ない、典型的な落とし穴がいくつかある。

ひとつは「未来を見てしまう」バグだ。バックテストのコードで、まだ確定していない最新の足(バー)の値を判断に使ってしまうと、現実には知り得ない未来の情報で売買したことになり、成績が異常に良くなる。これに気づかず「すごいEAができた」と喜ぶのは、初心者の通過儀礼のようなものだ。AIは、頼み方によってはこの「先読み」を平気で混ぜてくる。

ふたつ目は、ロット計算とポジション管理のズレ。「資金の2%でロットを決めて」と頼んだのに、計算式が通貨ペアの違いを考えていなかったり、すでにポジションがあるのに重ねて発注してしまったり。お金が絡む部分だけに、ここのバグは静かに、しかし確実に効いてくる。みっつ目は、約定が必ず成功するという前提だ。現実の相場では、注文が滑ったり、約定しなかったり、スプレッドが急に広がったりする。AIが出す素朴なコードは、そうした「うまくいかない場合」の処理が抜けていることが多い。

だから、AIのコードは「動いた=正しい」ではなく、「動いた、さて本当に意図どおりか?」と一度疑う。生成されたコードを自分で読み、できればAI自身に「このコードの危ない部分を指摘して」と聞き返す。この一手間が、後の大きな損失を防ぐ。

AIへの頼み方で、コードの質は変わる

同じ「EAを作って」でも、頼み方ひとつで返ってくるコードの質はまるで変わる。コツは、AIを「察してくれる相手」だと思わないことだ。

悪い例は、「勝てるEAを作って」「最強の自動売買を書いて」のような、丸投げの指示。これだとAIは、当たり障りのない、ありきたりなコードを返すしかない。優位性のない、誰でも書けるEAができあがるだけだ。

良い例は、仕様を一つずつ具体的に渡すこと。通貨ペアは何か、時間足は何か、エントリーの条件は、決済の条件は、損切りはどこに置くか、ロットはどう決めるか、同時に持つポジションは最大いくつか。ここまで決めて渡すと、AIは迷わず、意図どおりのコードを書いてくれる。

そして仕上げに、もう一手間。「このコードに、初心者が見落としがちなバグや危険な前提があれば指摘して」と聞き返す。AIは、自分がいま書いたコードの弱点を、けっこう率直に教えてくれる。書かせて終わりではなく、書かせて、疑って、直させる。この往復が、AIをただのコード自販機から、頼れる相棒に変える。

でも、ここで9割の人がつまずく ── コードが書けること ≠ 勝てること

AIのおかげで、EAの「コードを書く」ハードルは劇的に下がった。けれど、まさにここに最大の落とし穴がある。多くの人が「コードが書けた=勝てるEAができた」と勘違いしてしまうのだ。

冷静に考えれば、当たり前の話だ。あなたが数分で書けるEAは、世界中の何万人もが、同じように数分で書ける。誰でも思いつく単純なルール――移動平均のクロス、RSIの逆張り、ブレイクアウト――が、もしそのまま勝てるのなら、その優位性は一瞬で大勢に使われ、消えてなくなる。これは意地悪な話ではなく、市場という仕組みの性質そのものだ。

つまり、EA作りの本当の難所は「コードを書くこと」ではなく、「他人がまだ気づいていない、それでいて未来にも通用する優位性を見つけること」にある。そして、ここがAIにいちばん肩代わりしてもらえない部分でもある。

バックテストが右肩上がりでも、本番で溶ける理由

「優位性があるかどうかは、バックテストで確かめればいいのでは?」――そう思うのは自然だ。バックテストとは、過去の価格データの上でEAを動かし、もし当時このルールで売買していたら成績はどうだったかを再現する機能で、MT5にも標準で備わっている。

ところが、ここに初心者がいちばん高い授業料を払う罠がある。バックテストの損益曲線がきれいな右肩上がりになっても、それは「本番で勝てる証明」にはならない。むしろ、あまりにきれいすぎる右肩上がりは、危険のサインですらある。

本番で負ける4つの壁

理由は大きく四つある。ひとつ目は、過剰最適化(カーブフィッティング)。パラメーターを過去のデータにぴったり合うまで調整していけば、バックテストの成績はいくらでも良くできる。けれどそれは「過去という答えを見ながら答え合わせをしている」だけで、未来の、見たことのない値動きには驚くほど弱い。過去にフィットさせればさせるほど、本番では崩れやすくなる――この逆説は、EAを触る人なら一度は痛感する。

ふたつ目は、約定コスト。バックテストでは軽く見られがちだが、現実の取引にはスプレッドやスリッページ、手数料がかかる。特に、細かく何度も売買して小さな利益を積むスキャルピング型のEAは、このコストだけで利益が丸ごと消えることが多い。実際に検証してみると、「バックテストでは勝てるのに、コストを正直に入れた瞬間にマイナスへ反転する」スキャル戦略は、本当に山ほどある。

みっつ目は、相場つき(レジーム)の変化。ある時期にものすごく効いた型が、ある日を境にぱたりと効かなくなる。トレンドが続く相場で輝くEAは、レンジ相場では逆に削られていく。「特定の時間帯や条件でだけ妙に成績が良い」ように見えても、それがただの偶然の産物で、時期が変われば消えてしまうことは珍しくない。そしてよっつ目が、いちばん不都合な真実――市場の効率性だ。これは後の章で、きれいごと抜きに書く。

「絶対に勝てそうに見えるEA」がいちばん危ない

EAを探し始めると、必ず出会うものがある。「勝率99%」「ほぼ毎日プラス」「無敗」をうたうEAだ。結論から言うと、この手のものこそ、いちばん警戒したほうがいい。

からくりの多くは、マーチンゲールやナンピンと呼ばれる手法にある。負けたら倍のロットで買い増し、含み損が増えても決済せずに耐え、相場が少し戻ったところでまとめて利確する。こうすると、損益曲線はしばらく、ほれぼれするほどきれいな右肩上がりになる。負けを確定させないので、記録上はずっと勝っているように見えるのだ。

問題は、その裏で含み損が静かに膨らみ続けていること。そして、ある一回の大きな相場の動きで、それまでコツコツ積んだ利益を一瞬で、口座ごと吹き飛ばす。「コツコツ・ドカン」という言葉どおりの最期を迎える。きれいすぎる成績は、勝っているのではなく、まだ負けを確定していないだけ――この目を持てるかどうかで、生き残れる年数が変わってくる。

何年もぶん回して分かった、いちばん不都合な真実

長期間の過去データを使って、思いつくかぎりの戦略を片っ端から検証していくと――短期売買、トレンドフォロー、逆張り、時間帯、曜日、ボラティリティ――最後にたどり着く結論は、わりと残酷だ。

個人が、系統的な(=決まったルールどおりの)自動売買だけで、相場に勝ち続ける道は、ほとんど存在しない。たまたま一時期だけ勝てるEAは作れる。だが、コストとレジーム変化を正直に織り込んだうえで、長く安定して勝ち続けるものを作るのは、桁違いに難しい。簡単に見つかる優位性は、簡単であるがゆえに、すでに誰かに使い尽くされ、消されている。市場は、思っているよりずっと効率的だ。

これは、EA作りを諦めろという話ではない。むしろ逆で、この現実を最初に知っているかどうかが、生き残れる人とそうでない人を分ける。「聖杯(=必ず勝てる魔法のEA)を探す旅」に出てしまうと、過剰最適化の沼にはまり、デモを飛ばしていきなり本番に資金を入れ、静かに退場する。最初から「簡単には勝てない」と分かっていれば、検証に時間をかけ、リスク管理を最優先にし、ダメな案をためらわず捨てられる。

正しい検証のしかた ── フォワードテストとアウトオブサンプル

過剰最適化の罠を避けるために、検証には少しだけ作法がある。難しくはない。

まず、手元の過去データを「最適化に使う期間」と「検証だけに使う期間」に分けておく。前半でパラメーターを調整し、後半――調整に一切使っていない、いわば初見の期間――でも通用するかを確かめる。これをアウトオブサンプル検証と呼ぶ。前半で輝いて後半で崩れるなら、それは過去に合わせただけのEAだ。

さらに堅いのが、フォワードテスト。バックテストでよさそうでも、すぐ本番には入れず、デモ口座で「これから実際に動く相場」で一定期間走らせる。過去データはいくらでも答え合わせができるが、まだ来ていない未来だけは、誰にも最適化できない。ここで成績が保てるEAだけが、ようやく少額の本番に進む資格を得る。遠回りに見えて、これがいちばんの近道だ。検証を飛ばして本番に入った人が払う授業料は、たいてい検証にかける時間より、ずっと高くつく。

じゃあ、AIでEAを作る意味はどこにある?

ここまで読んで、「なんだ、結局EAなんて意味ないのか」と思ったなら、それは少し早い。聖杯が手に入らないというだけで、AIでEAを作る価値は、別のところにちゃんとある。

ひとつ目は、自分の判断を「検証できる形」に変えられること。「なんとなく、この形は上がりそう」という裁量の勘は、そのままでは良し悪しを確かめようがない。けれどEAにしてルール化すれば、過去データで「その勘は本当に優位なのか」を冷たく確かめられる。多くの場合、自慢の勘は検証であっさり打ち砕かれる。でも、それを早く知れること自体が、大きな収穫だ。

ふたつ目は、感情の排除。さきほども書いたが、これは本当に効く。みっつ目は、夜間や不在時の番人として働いてくれること。決めた損切りを、人間のように「もう少し待とう」とためらわず実行してくれるだけでも、守りの価値はじゅうぶんにある。そしてよっつ目――これがいちばん大事かもしれない――アイデアを高速で試し、高速で捨てられること。AIのおかげで、思いついたルールを数分でEAにし、すぐ検証にかけられる。十のうち九はボツになる。けれど、その「九を素早く捨てる」サイクルこそが、まともなトレードへ近づく、ほとんど唯一の道だったりする。

つまりAIの正しい使い方は、「勝てるEAを書かせること」ではなく、「自分の判断を検証し、磨くための相棒にすること」だ。機械に索敵をさせ、最後の引き金は人間が引く。AIは、その相棒として、これ以上ないくらい優秀だ。

現実的に戦えるEAは、どんなタイプか

では、どんなEAなら、まだ現実的に戦えるのか。断言はできないが、長く検証してきた経験から言える傾向はある。

不利なのは、秒〜分単位で何度も売買するスキャルピング型。先に書いたとおり、スプレッドやスリッページといったコストの比率が大きすぎて、個人の環境ではコスト負けしやすい。同じく、マーチンゲールやナンピンに頼って「負けを確定しない」ことで勝率を演出するタイプも、いつか必ず破綻する。

相対的にまだ現実的なのは、相場の大きな流れに乗って、ある程度の時間ポジションを保有するタイプだ。取引回数が少ないぶんコストの影響が小さく、一回の値幅で稼ぐので、コストに利益を食い尽くされにくい。地味で、退屈で、当たった感も薄い。けれど、派手なEAが次々と退場していく横で、こういう地味なものが案外しぶとく生き残る。EAに「かっこよさ」や「当たる興奮」を求めると、たいてい遠回りになる。求めるべきは、長く生き残ること。ただ、それだけだ。

EAは「動かし続ける」のが地味に大変 ── VPSという選択肢

意外と見落とされがちなのが、EAは「動かし続けて初めて意味がある」という点だ。EAはチャートに貼り付けているあいだしか働かない。つまり、自分のパソコンの電源を切れば、その瞬間に売買は止まる。

ところが相場は、こちらの都合に関係なく24時間動く。寝ているあいだに絶好の場面が来ても、PCが落ちていればEAは何もできない。かといって、自宅のパソコンを一日中つけっぱなしにするのは、電気代の面でも、急な再起動やネット切断のリスクの面でも、あまり現実的ではない。

そこでよく使われるのが、VPS(仮想専用サーバー)だ。ざっくり言えば「クラウド上に置いた、24時間落ちない自分専用のパソコン」のこと。そこにMT5とEAを入れておけば、自宅のPCを切っても、相場のあいだじゅう、EAが止まらず働き続ける。最初の検証段階では自分のPCで十分だが、「いざ運用」となったときに、この壁があることは頭の隅に置いておきたい。

売られているEAは、信用していいのか

自分で作るのは大変そうだから、誰かが作った「勝てるEA」を買えばいいのでは――そう考える人も多い。実際、EAは数千円から数万円で、あるいは無料で、たくさん出回っている。

ただ、ここでも基本の考え方は変わらない。もし本当に、長く確実に勝てるEAがあるなら、その作者はわざわざ他人に売らず、自分で黙って回しているはずだ。「みんなに売る」という時点で、その優位性は薄まっていくか、もともと宣伝用の見せ方だった可能性が高い。

特に警戒したいのが、さきほどの「きれいすぎる成績」のEAだ。販売ページに載っている右肩上がりの曲線は、過去のデータに最適化した結果か、マーチンゲールで含み損を隠した結果であることが少なくない。買うなとは言わない。だが、買うにしても人の言葉を鵜呑みにせず、自分のデモ口座でフォワードテストにかけてから。結局、最後に資産を守るのは、自分で検証する力だけだ。

何から始める? ── 最初の一歩

最後に、具体的な始め方を。難しく構えなくていい。

まず、MT5を入れる。MetaQuotes社の公式サイトから無料でダウンロードできる。取引にはどこかのブローカーの口座が必要だが、最初は必ずデモ口座(仮想資金で本番と同じ環境を試せる口座)から始めること。いきなり自分のお金を入れない。これは鉄則だ。

次に、いきなり複雑なEAを作ろうとしないこと。最初は、ルールがひとつだけの、これ以上ないくらい単純なEAでいい。それをAIに書いてもらい、自分でコードを読んで意味を理解し、バックテストにかける。成績が出ても、すぐ本番には行かず、最低でも一ヶ月はデモ口座で「いま動いている相場」で走らせる。過去で勝てたものが、現在進行形の相場でも通用するかを見るためだ。

そして何より、リスク管理を主役にすること。一回の取引でいくらまで失ってよいか(ロットと損切り)、口座全体で何パーセント減ったら止めるか(最大ドローダウン)。よく言われる目安に「一回の損失は資金の1〜2%まで」という考え方がある。攻めの優位性は不確かでも、守りのルールは自分で確実に決められる。生き残ってさえいれば、次のチャンスは必ず来る。

(※この記事は特定のEAや投資手法を勧めるものではありません。自動売買のリスクは大きく、実資金を入れる前に、必ずデモ口座と十分な検証を。)

つまずいたときの、調べ方

EAを作っていると、必ずどこかで詰まる。コンパイルエラーが消えない、思ったように発注されない、バックテストがうまく回らない。そんなときの抜け出し方も、先に知っておくと、心が折れにくい。

まず、エラーメッセージは、そのままAIに貼り付けて聞くのがいちばん速い。MQL5のエラーは独特な書き方をするが、AIはたいてい、原因の見当をつけて、直し方まで提案してくれる。「このエラーが出た、原因と修正案を教えて」と、メッセージごと渡すだけでいい。

次に、MQL5には公式のリファレンスと、世界中の開発者が集まるコミュニティ(フォーラムやコード共有の場)がある。たいていの「よくある詰まり」は、すでに誰かが同じ場所でつまずき、その答えが残っている。自分ひとりで抱え込まず、まず調べる癖をつけたい。

そして、いちばん大事なのは、一度に全部を理解しようとしないこと。EA作りは、小さな「動いた」を積み重ねていく作業だ。まずは一行動かす。次に注文を出してみる。その次に損切りをつける。一歩ずつでいい。AIという、24時間つきあってくれる相棒がいるのだから、焦る必要はどこにもない。

🐦‍⬛ 編集部の視点

正直に打ち明けると、編集部もこれまで何本ものEAを作り、何年ぶんもの過去データを回し、そのたびに「簡単には勝てない」という壁に、何度もぶつかってきた。だからこそ、はっきり言える。AIでEAは「作れる」。でも、作れることに夢を見すぎないでほしい。

本当に価値があるのは、ピカピカのバックテスト曲線でも、複雑で賢そうなロジックでもない。「過去で勝てた」を「未来で勝てる」と混同しない冷静さ、ダメな案を惜しまず捨てる潔さ、そして守りを先に決める規律――この地味な三つだ。AIは、その地味な作業を猛烈に速くしてくれる、最高の相棒になる。

だからもし、あなたがこれからEAに挑むなら、聖杯ではなく、検証の文化を手に入れてほしい。そこにたどり着いた人だけが、AIという道具を、本当の意味で味方にできる。

出典・リンク

  • MetaTrader 5 公式(MetaQuotes) — MetaQuotes
  • MQL5 リファレンス・コミュニティ — MQL5.com

コメントを残す

現在の人気