MT4で自動売買を始めるためのEA入門ガイド
この記事では、FX初心者の方が「MT4で自動売買(EA)」を始めるために必要な基本的な考え方と、代表的なインジケーターを使ったシンプルなEAの組み立て方を解説します。専門用語を極力かみ砕きながら、実際の売買に使えるレベルまで落とし込んで説明していきます。
MT4自動売買の全体像を理解する
まず最初に押さえておきたいのは、MT4での自動売買は「EA(エキスパート・アドバイザ)」というプログラムがチャート上で売買を自動実行する仕組みだということです。トレーダーが決めたルールをMQL4という専用言語でコード化し、そのロジックに従って売買が行われます。
自動売買というと「完全放置で勝手に儲かる魔法の箱」のように誤解されがちですが、実際には以下の3つを地道に回していく作業です。
- 売買ルールを考える(戦略のアイデア)
- ルールをEAとして実装する(プログラム化)
- 過去データで検証し、改善する(バックテストとチューニング)
このサイクルを小さく何度も回せる人が、最終的に「勝てるEA」を作れるようになります。初心者の方は、まずはごくシンプルなルールで良いので、このサイクルを一周させることを目標にするとよいです。
EAとは何か ― 裁量トレードとの違い
裁量トレードは、チャートを見ながらトレーダー自身が「そろそろ上がりそうだから買おう」などと判断してエントリー・決済を行うスタイルです。一方でEAは、あらかじめ定義された条件に一致したときだけ機械的に売買します。
例えば、次のようなルールをEAにするとします。
- 短期移動平均線が長期移動平均線を上抜けたら買いエントリー
- 短期移動平均線が長期移動平均線を下抜けたら決済
- 損切りは20pips、利確は40pips
このルールをコード化してEAにしておけば、トレーダーはチャートを眺め続ける必要はありません。EAが24時間淡々と条件を監視し、シグナルが出た瞬間にエントリーと決済を実行します。
大切なのは「自動売買に向くルール」と「裁量の方が向いている判断」を切り分けることです。チャート形状を総合的に見て直感で判断する場面は、まだ機械化しづらい部分が多い一方、インジケーターの数値やクロスなどの客観的な条件はEA化にとても向いています。
MT4の準備とEAを動かすための基本操作
EAを自作して動かすためには、MT4側でいくつかの準備が必要です。大まかな流れは次の通りです。
- MT4をインストールし、デモ口座を開設する
- ツールのオプション設定で「自動売買」を許可する
- MetaEditorを起動してEAファイル(.mq4)を作成する
- EAをコンパイルして、チャートに適用する
- ストラテジーテスターで過去データを使ってバックテストする
特に初心者がつまずきやすいのは「自動売買の許可設定」と「ストラテジーテスターの使い方」です。MT4のツールバー上部にある「自動売買」ボタンが緑色になっているか、口座の右下にある顔マークが笑顔になっているかを必ず確認してください。これが赤色や悲しい顔だとEAは一切動きません。
最初のEA設計:移動平均線クロス・ストラテジー
ここからは、具体的に「移動平均線」を使ったシンプルなEAの設計例を紹介します。移動平均線は、一定期間の終値の平均を線として表示したもので、トレンドの方向をざっくり把握するのに使われます。
今回の例では、次のようなルールを採用します。
- 短期移動平均線(期間20)が長期移動平均線(期間50)を上抜けたら買い
- 短期移動平均線が長期移動平均線を下抜けたら決済
- 損切りは20pips、利確は40pips
- 同時に持つポジションは1つまで
ロジックとしては非常にシンプルですが、「トレンドに乗る」という基本的な考え方を体感するには十分です。初心者は、まずこのレベルのルールをEA化し、どのように売買が行われるかを確認することから始めると、仕組みが理解しやすくなります。
移動平均線EAのMQL4コード例
以下は、上記の移動平均線クロス戦略を実装した、非常にシンプルなMQL4コードのイメージです。実際に動かす前には、必ずデモ口座で検証し、パラメータやロジックを自身で調整してください。
//+------------------------------------------------------------------+
// Simple MA Cross EA (Example)
//+------------------------------------------------------------------+
#property strict
input int FastMAPeriod = 20;
input int SlowMAPeriod = 50;
input double Lots = 0.1;
input int StopLossPips = 20;
input int TakeProfitPips= 40;
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnTick()
{
// 既にポジションがある場合は新規エントリーしない
if(PositionsTotal() > 0) return;
double fastMA = iMA(NULL,0,FastMAPeriod,0,MODE_SMA,PRICE_CLOSE,1);
double slowMA = iMA(NULL,0,SlowMAPeriod,0,MODE_SMA,PRICE_CLOSE,1);
double fastMA_prev = iMA(NULL,0,FastMAPeriod,0,MODE_SMA,PRICE_CLOSE,2);
double slowMA_prev = iMA(NULL,0,SlowMAPeriod,0,MODE_SMA,PRICE_CLOSE,2);
// ゴールデンクロスで買いエントリー
if(fastMA_prev < slowMA_prev && fastMA > slowMA)
{
double sl = Bid - StopLossPips * Point * 10;
double tp = Bid + TakeProfitPips * Point * 10;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,tp,"MA Cross Buy",0,0,clrBlue);
}
}
ここでは「イメージ」として最低限のコードのみを示しています。実際に運用するためには、注文エラーの処理やスプレッドなどのチェック、時間帯フィルターなど、追加で組み込んだ方が良い要素がいくつもあります。
代表的なインジケーター別EAアイデア
移動平均線以外にも、EAと相性の良いインジケーターはいくつかあります。ここでは、初心者でも理解しやすく、かつEAに落とし込みやすい3つのインジケーターのアイデアを紹介します。
RSI(Relative Strength Index)を使った逆張りEA
RSIは「買われ過ぎ」「売られ過ぎ」を数値で判断するオシレーター系インジケーターです。一般的には、70以上で買われ過ぎ、30以下で売られ過ぎとされます。
RSI逆張りEAのシンプルなルール例は以下の通りです。
- RSIが30以下になったあと、30を再度上抜けたら買いエントリー
- RSIが70以上になったあと、70を再度下抜けたら売りエントリー
- 損切りと利確は固定pips、もしくは直近の高値安値を基準に設定
このEAのポイントは、「極端な値動きの反動」を狙うことです。ただし、強いトレンド相場ではRSIが長時間70以上・30以下に張り付くことがあり、逆張りが何度も踏み上げられるリスクがあります。そのため、移動平均線やボリンジャーバンドなどと組み合わせて「トレンドが弱いレンジ相場だけ動かす」といったフィルターを付けると、無駄なエントリーを減らしやすくなります。
MACDを使ったトレンドフォローEA
MACDはトレンドの強さや転換を捉えるためのインジケーターです。MACDラインとシグナルラインのクロス、あるいはゼロラインとの位置関係を使ってルールを組み立てます。
MACDトレンドフォローEAの例は次のようになります。
- MACDラインがシグナルラインを下から上に抜けたら買いエントリー
- MACDラインがシグナルラインを上から下に抜けたら決済
- MACDがゼロラインより上にあるときだけ買い、下にあるときだけ売りを行うようフィルターをかける
MACDはトレンドが出ているときには比較的優れたシグナルを出しますが、レンジ相場ではダマシが多くなります。そのため、ATR(平均真の値幅)を使って「ボラティリティが十分にあるときだけ動かす」といった条件を追加してもよいでしょう。
ボリンジャーバンドを使ったブレイクアウトEA
ボリンジャーバンドは、価格の標準偏差をもとにバンドを表示するインジケーターで、「スクイーズ(バンド幅が狭い状態)」と「エクスパンション(バンドが広がる状態)」の概念が有名です。
ブレイクアウトEAのシンプルなアイデアは次の通りです。
- 一定期間ボリンジャーバンド幅が小さく(スクイーズ)、価格が上バンドを明確にブレイクしたら買い
- 同様に、下バンドを明確にブレイクしたら売り
- バンド内に戻ってきたら決済、あるいはATRの何倍かでトレーリングストップを設定
この戦略は「静かな相場の後の一方向の大きな値動き」を狙う手法です。エントリー回数はそれほど多くありませんが、一度当たると大きく値幅を取れることがあるため、ポジションサイズ管理をきちんと行うことでリスクリワードの良いEAになりやすいです。
リスク管理とロット管理 ― 自動売買でも最重要
EAを作るときに見落としがちですが、最も重要なのは「どれくらいのリスクで運用するか」という視点です。同じロジックでも、ロットが大きすぎれば資金は簡単に吹き飛びます。
基本的な考え方としては、1回のトレードで失ってもよい金額を資金の1〜2%程度に抑えることがよく推奨されます。例えば、10万円の口座資金であれば、1トレードあたりの許容損失は1,000〜2,000円程度にするイメージです。
EAのパラメータに「リスク%」を持たせ、口座残高に応じて自動的にロットを調整するようにすれば、資金が増えればロットも増え、減ればロットも減るため、資金曲線が安定しやすくなります。
バックテストとフォワードテストのすすめ
EAを作ったら、必ずMT4のストラテジーテスターでバックテストを行い、過去の相場でどのような成績になっていたかを確認します。期間は最低でも数年分、できれば異なるボラティリティ環境(トレンド相場・レンジ相場・高ボラ相場・低ボラ相場)を含めるのが理想です。
バックテストでの注意点は以下の通りです。
- スプレッドや手数料を現実的な値に設定する
- テスト期間中の取引回数が少なすぎないか確認する
- 最大ドローダウン(資産のピークからどれだけ減ったか)に注目する
- パラメータを過剰に最適化しすぎない(カーブフィッティングに注意)
バックテストである程度納得できる結果が得られたら、次はデモ口座や少額のリアル口座を使ってフォワードテスト(リアルタイム検証)を行います。実際の相場でどのように動くのかを確認し、想定外の挙動がないかをチェックします。
初心者が避けたい落とし穴
MT4での自動売買を始めたばかりの初心者がはまりやすい罠はいくつかあります。代表的なものを挙げておきます。
- 過去データでだけ完璧に見える「最適化しすぎEA」に飛びついてしまう
- 短期間の成績だけを見てロットを一気に増やしてしまう
- 損切りを極端に浅く、または極端に広く設定してバランスを崩す
- 1つのEAだけに資金を集中させてしまう
EAはあくまで「戦略を自動で実行してくれるツール」にすぎません。最終的な成績は、EAのロジックだけでなく、運用する通貨ペアや時間帯、ロット管理、ポートフォリオの組み方によっても大きく変わります。一つのEAにすべてを賭けるのではなく、複数のEAを少しずつ組み合わせることで、リスクを分散させることができます。
段階的なスキルアップのロードマップ
最後に、MT4の自動売買をゼロから始める初心者に向けて、段階的な学習ロードマップを示します。
- まずは移動平均線やRSIなど基本インジケーターの意味を理解する
- シンプルな裁量ルールを紙やノートに書き出してみる
- そのルールを元に、既存のEAやサンプルコードを参考にしつつ、自分用EAを1つ作ってみる
- デモ口座でバックテストとフォワードテストを行い、挙動を確認する
- ロジックの弱点を洗い出し、フィルターやロット管理の見直しを行う
- 少額のリアル口座でテスト運用を行う
- 複数EAのポートフォリオ化や、他のインジケーター戦略への応用を行う
このステップを焦らず一つずつクリアしていけば、「MT4で自分のアイデアをEAとして形にし、検証しながら育てていく」というサイクルを身につけることができます。自動売買は一朝一夕で完成するものではありませんが、コツコツと積み上げていくことで、裁量トレードだけでは気づけなかった視点や、ルールベースの強みを実感できるようになります。
まずは、この記事で紹介した移動平均線EAやRSI・MACD・ボリンジャーバンドのアイデアをベースに、ご自身なりのアレンジを加えた「最初の一本」を完成させてみてください。それが、安定して再現性のあるトレードを目指すための大きな一歩になります。


コメント