MT4で自動売買EAを自作して運用する具体的ステップガイド

FX自動売買

本記事では、FXトレーダーに広く利用されている取引プラットフォーム「MetaTrader4(MT4)」で、自動売買(EA:Expert Advisor)を自作して運用するまでの流れを、初心者の方にも分かりやすいように丁寧に解説します。裁量トレードから一歩進んで、自分のルールを24時間休まず実行してくれるEAを作れるようになると、メンタルのブレを抑え、検証可能なトレードスタイルに近づけます。

スポンサーリンク
【DMM FX】入金

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()内に記述します。具体的には、次のような手順で処理を流します。

  1. 現在ポジションを持っているかを確認する
  2. ポジションを持っていなければ、エントリー条件をチェックする
  3. エントリー条件を満たしていれば、新規注文を出す
  4. ポジションを持っている場合は、決済条件やトレーリングストップをチェックする

この流れを忠実に実装できるようになると、インジケーターの種類を変えたり、決済ロジックを工夫したりしながら、自分なりのEAを増やしていくことができます。

シンプルな移動平均線EAのロジック例

ここでは実装イメージとして、もっとも基本的な移動平均線クロスEAのロジックを文章で整理します。具体的なコードにする際も、このように日本語で手順を書き出してからMQL4に翻訳すると分かりやすくなります。

  1. チャートの時間足:1時間足(H1)
  2. インジケーター:20期間と50期間の単純移動平均線(SMA)
  3. ポジションは常に1つだけ保有する
  4. エントリー条件:20SMAが50SMAを下から上に抜けたら買い、上から下に抜けたら売り
  5. 損切り:エントリー価格から30pips逆行したら成行決済
  6. 利確:エントリー価格から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にすべてを任せるのではなく、自分が納得できるルールを作り、リスクをコントロールしながら長期的な視点で取り組むことで、より安定したトレードスタイルに近づけるはずです。

p-nuts

お金稼ぎの現場で役立つ「投資の地図」を描くブログを運営しているサラリーマン兼業個人投資家の”p-nuts”と申します。株式・FX・暗号資産からデリバティブやオルタナティブ投資まで、複雑な理論をわかりやすく噛み砕き、再現性のある戦略と“なぜそうなるか”を丁寧に解説します。読んだらすぐ実践できること、そして迷った投資家が次の一歩を踏み出せることを大切にしています。

p-nutsをフォローする
FX自動売買
スポンサーリンク
【DMM FX】入金
シェアする
p-nutsをフォローする

コメント

タイトルとURLをコピーしました