本記事では、FXトレーダーに広く利用されている取引プラットフォーム「MetaTrader4(MT4)」で、自動売買(EA:Expert Advisor)を自作して運用するまでの流れを、初心者の方にも分かりやすいように丁寧に解説します。裁量トレードから一歩進んで、自分のルールを24時間休まず実行してくれるEAを作れるようになると、メンタルのブレを抑え、検証可能なトレードスタイルに近づけます。
MT4の自動売買EAとは何か
MT4のEA(Expert Advisor)は、あらかじめ組み込まれた売買ルールにもとづいて、自動で注文や決済を行うプログラムです。チャート上のインジケーターや価格、時間などの条件をチェックし、条件を満たしたときにエントリー・決済・ロット数の調整などを行います。
EAの特徴は次のような点にあります。
- 人間のように感情に左右されず、ルールどおりに売買する
- チャートを見続けなくても24時間チャンスを逃しにくい
- バックテストで過去相場に対する成績を確認しやすい
- ルールを数値として管理しやすく、改善・検証を繰り返せる
一方で、EAは「作った瞬間に勝てる魔法の箱」というわけではありません。ルール設計の甘さやリスク管理の不備があれば、裁量トレードと同様に資金を失う可能性があります。大切なのは、EAを「ルールを正確に実行してくれる道具」として捉え、ルールそのものの質や検証プロセスに時間をかけることです。
自動売買を始めるための環境準備
EAをMT4で動かすためには、いくつかの準備が必要です。ここでは、最低限整えておきたい環境を整理します。
1.MT4が使えるFX口座を開設する
まずはMT4に対応しているFX会社で口座を開設し、MT4本体をダウンロードします。デモ口座を用意している会社であれば、最初はデモで構いません。実際の資金を投入する前に、EAの動作や発注のタイミングを十分に確認できます。
2.MQL4エディタ(MetaEditor)の確認
MT4のメニューから「ツール」→「MetaQuotes Language Editor」を開くと、MQL4という専用言語でEAを作成・編集できるMetaEditorが立ち上がります。EAファイル(○○.mq4)はこのエディタで作成し、コンパイルしてMT4に認識させます。
3.稼働用PCまたはVPSを用意する
EAは原則として、MT4が起動している間だけ動作します。そのため、24時間稼働させたい場合は、PCを常時起動するか、FX会社や外部業者が提供するVPS(仮想専用サーバー)を利用することが多いです。最初は自宅PC+デモ口座で十分ですが、本格運用を見据えるならVPSも選択肢になります。
EAを自作する際の基本的な考え方
EAをゼロから自作する場合、いきなり複雑なロジックに挑戦するよりも、シンプルなルールで「自動売買の一連の流れ」を体験してみる方が学びやすいです。たとえば、次のような構成を意識します。
- どの時間足・どの通貨ペアで動かすのか(例:EURUSDの1時間足)
- エントリー条件は何か(例:移動平均線のゴールデンクロス)
- 決済条件は何か(例:固定の利確・損切り、または逆クロス)
- 1回のトレードでどれだけのリスクを取るか(例:口座残高の1%)
この4点を明確にするだけでも、EAの骨格が見えてきます。特に「リスクの大きさ」は初心者が見落としがちなポイントですが、資金管理の考え方を先に決めておくと、ロットを決めるロジックも自動化しやすくなります。
代表的なインジケーターを使ったEAロジックの例
次に、MT4でよく使われるインジケーターを組み合わせたEAロジックの例を見ていきます。ここでは、基本的なインジケーターを使ったシンプルなアイデアを紹介し、自作EAのベースとして応用しやすい形に整理します。
移動平均線(MA)を使ったトレンドフォローEA
もっとも基本的なロジックの一つが、短期と長期の移動平均線のクロスを利用したトレンドフォローです。たとえば、次のようなシナリオを考えます。
- 短期MA:20期間、長期MA:50期間
- 20MAが50MAを下から上に抜けたら買いでエントリー
- 逆に20MAが50MAを上から下に抜けたら売りでエントリー
- 利確は50pips、損切りは30pipsに固定
ロジックとしては非常にシンプルですが、トレンドが続く局面では利益を伸ばしやすい構造です。一方で、レンジ相場ではダマシが増えやすく、連敗が続くこともあります。そのため、フィルタとしてRSIやボリンジャーバンドを組み合わせて「トレンドが出ているときだけ動かす」ようにするなど、改良の余地が多くあります。
RSIを使った押し目買い・戻り売りEA
RSIは一定期間の上げ幅と下げ幅のバランスを見るオシレーターで、一般的には30以下が「売られすぎ」、70以上が「買われすぎ」と言われます。これを使って、トレンド方向への押し目・戻りを自動で拾うEAを考えてみます。
- 上位時間足(4時間足)の移動平均線が上向きなら上昇トレンドとみなす
- 下位時間足(1時間足)でRSIが30を下回ったら「押し目」と判断し買いエントリー
- 利確は直近高値付近、損切りは直近安値の少し下に置く
これをEA化すると、トレンドの方向判定(上位足)とエントリー条件(下位足のRSI)を組み合わせるロジックになります。実装の際は、複数時間足のデータを参照する方法や、直近高値・安値の取得方法など、MQL4特有の書き方を理解する必要がありますが、基本となる考え方は「トレンド方向への一時的な逆行を狙う」というシンプルなものです。
MACDを使ったモメンタム転換EA
MACDはトレンド方向と勢い(モメンタム)を同時に見られるインジケーターです。MACDラインとシグナルラインのクロスや、0ラインを基準にした判定など、さまざまな活用方法があります。
たとえば次のようなルールをEAで実装できます。
- MACDラインがシグナルラインを下から上に抜け、かつMACDが0より上 → 上昇トレンドへのモメンタム転換とみなして買い
- MACDラインがシグナルラインを上から下に抜け、かつMACDが0より下 → 下降トレンドへのモメンタム転換とみなして売り
このようなロジックは、トレンドの初動をとらえることを狙っていますが、実際の相場ではノイズも多く含まれます。フィルタとして、ボラティリティ(ATRなど)や時間帯(ロンドン市場やニューヨーク市場だけ動かす)を組み合わせることで、過度なエントリーを絞り込む工夫が有効です。
EAの基本構造とMQL4の流れ
MQL4でEAを書く際の基本構造を、イメージだけでも押さえておきましょう。EAのファイルを開くと、典型的には次のような関数が登場します。
- OnInit():EAの起動時に一度だけ実行される初期化処理
- OnDeinit():EAの停止時に呼ばれる終了処理
- OnTick():新しいティック(価格更新)が来るたびに繰り返し呼ばれるメイン処理
実際の売買ロジックは多くの場合、このOnTick()内に記述します。具体的には、次のような手順で処理を流します。
- 現在ポジションを持っているかを確認する
- ポジションを持っていなければ、エントリー条件をチェックする
- エントリー条件を満たしていれば、新規注文を出す
- ポジションを持っている場合は、決済条件やトレーリングストップをチェックする
この流れを忠実に実装できるようになると、インジケーターの種類を変えたり、決済ロジックを工夫したりしながら、自分なりのEAを増やしていくことができます。
シンプルな移動平均線EAのロジック例
ここでは実装イメージとして、もっとも基本的な移動平均線クロスEAのロジックを文章で整理します。具体的なコードにする際も、このように日本語で手順を書き出してからMQL4に翻訳すると分かりやすくなります。
- チャートの時間足:1時間足(H1)
- インジケーター:20期間と50期間の単純移動平均線(SMA)
- ポジションは常に1つだけ保有する
- エントリー条件:20SMAが50SMAを下から上に抜けたら買い、上から下に抜けたら売り
- 損切り:エントリー価格から30pips逆行したら成行決済
- 利確:エントリー価格から50pips有利に進んだら成行決済
これをEAにするときは、最新バーと1本前のバーの移動平均値を取得し、「前のバーでは短期MAが長期MAの下にあり、最新バーでは上に来ている」かどうかを判定します。クロス判定は、値が全く同じになることは少ないため、前後の上下関係を比較して決めるイメージです。
リスク管理とロット計算の考え方
EAを使ううえで最も重要と言ってよいのがリスク管理です。ロジックがどれだけよく出来ていても、1回あたりのリスクが大きすぎると、連敗したときに資金が急減してしまいます。一般的には、1回のトレードで失ってもよい金額を口座残高の一定割合(1%〜2%など)に抑える考え方がよく使われます。
たとえば、口座残高が10万円で、1回のトレードでの損切り幅を30pipsと決めているとします。このとき、1回のトレードで許容する損失を残高の1%(1,000円)にすると、ロット数は「1,000円 ÷ 30pips = 約33円/1pips」となり、通貨ペアの1pipsあたりの価値から逆算してロットを決めます。EAでは、この計算を自動化すると、残高が増減しても常に一定割合のリスクで運用できます。
バックテストとフォワードテスト
EAをいきなりリアル口座で動かすのはリスクが高いため、必ずバックテストとフォワードテストの2段階で検証することをおすすめします。
バックテストのポイント
MT4にはストラテジーテスターという機能があり、過去の価格データを使ってEAの成績を検証できます。バックテストでは次の点を確認します。
- 一定期間にわたる損益曲線の形(安定しているか、急激なドローダウンがないか)
- 最大ドローダウンと総利益のバランス(リスクに見合ったリターンか)
- 売買回数(少なすぎて検証にならない、あるいは多すぎてスプレッド負担が大きくなっていないか)
バックテストはあくまで「過去の相場での仮想成績」です。パラメータを過去に最適化しすぎると、将来の相場で通用しにくくなることがあるため、あまり細かく調整しすぎないことも重要なポイントです。
フォワードテストの進め方
バックテストで一定の手応えがあったら、次はデモ口座でフォワードテストを行います。フォワードテストでは、実際のレート配信やスプレッド、約定のタイミングなど、リアルに近い条件でEAを動かします。
- 最初はロットを極小にして、EAが想定どおりのタイミングでエントリー・決済しているかを確認する
- 想定と違う動きをした場合は、ログやエキスパートタブを確認し、ロジックを見直す
- 一定期間(数週間〜数ヶ月)での成績とドローダウンをチェックする
このフォワードテストを経て、「このEAはこの程度のリスク・リターンで動く」という感覚を掴んでから、実際の資金を投入していくと、心理的な負担も軽減しやすくなります。
初心者が避けたい典型的な失敗パターン
最後に、MT4の自動売買EAを始める初心者が陥りやすい失敗パターンを整理しておきます。あらかじめ意識しておくことで、余計な遠回りを減らせます。
- 「勝率100%」や「絶対に負けないEA」を探してしまう
どんなEAにも負けトレードはあります。大切なのは「トータルでプラスを目指す構造」と「許容できるリスクの範囲に収めること」です。 - 過度な最適化で過去相場に合わせすぎる
バックテストの成績だけを追い求めてパラメータを微調整し続けると、たまたま過去の特定期間にだけ強いEAになりがちです。将来の相場で再現性があるかどうかを意識しましょう。 - リスク管理を考えないままロットを上げてしまう
連勝が続くとロットを急に上げたくなりますが、連敗に備えたドローダウン許容額を決めておかないと、1回の損失で心が折れてしまいます。「1回あたり口座残高の何%をリスクにするか」を先に決めておくことが重要です。 - EAの仕組みを理解せずに他人の設定をそのまま使う
インターネット上には多くのロジック例や設定例がありますが、仕組みを理解せずに使うと、相場環境が変わったときに対応できません。自分でロジックを文章化し、なぜそのルールにしたのか説明できるようになることを目指しましょう。
まとめ:小さく作り、検証しながらEAを育てていく
MT4で自動売買EAを自作して運用することは、最初は少しハードルが高く感じられるかもしれません。しかし、シンプルなロジックから始め、インジケーターの組み合わせやリスク管理を少しずつ工夫していくことで、「自分の考え方をそのままプログラムに落とし込む」という感覚が掴めてきます。
いきなり完璧なEAを作ろうとせず、まずは移動平均線やRSIなど基本的なインジケーターを使った単純なルールをEA化し、バックテストとフォワードテストを通じて特性を理解していきましょう。そのプロセス自体が、裁量トレードにも活きる「ルール設計」と「検証」のスキルを高めてくれます。
自動売買は、あくまでトレード手法の一つです。EAにすべてを任せるのではなく、自分が納得できるルールを作り、リスクをコントロールしながら長期的な視点で取り組むことで、より安定したトレードスタイルに近づけるはずです。


コメント