MT4の自動売買(EA)は、「チャートに張り付いていなくても、ルール通りに淡々とトレードしてくれる仕組み」です。裁量トレードで感情に振り回されてしまう人でも、あらかじめ決めた条件だけで売買できるようになるため、多くの個人投資家にとって強力な武器になります。
とはいえ、いきなり複雑なEAを組もうとすると挫折します。まずはMT4に標準搭載されている基本インジケーター(移動平均線・RSI・MACDなど)だけを使って、「シンプルだが実際に使えるレベル」のEAを自作してみることから始めるのがおすすめです。
この記事では、MT4でインジケーターを使ったEAを自作する流れを、できるだけ噛み砕いて解説します。FXを想定して説明しますが、CFDや貴金属などMT4対応の他の銘柄でも考え方は同じです。
インジケーターEA自作の全体像をイメージする
まずはゴールのイメージを固めます。「インジケーターを使ったEA」と聞くと難しそうですが、構造は非常にシンプルです。
典型的なインジケーターEAは、次の4つのパーツで構成されます。
- ① 売買条件(エントリー条件)
- ② 決済条件(イグジット条件)
- ③ ロット・リスク管理(損切り・利確・トレイリングなど)
- ④ 運用ルール(稼働時間帯・同時ポジション数制限など)
これらをすべてコードで書くのではなく、「まずは紙に日本語で書き出す」ことから始めるとスムーズです。
例えば、移動平均線とRSIを使ったシンプルなトレンドフォローEAなら、次のように日本語で定義できます。
- ・上昇トレンド中に押し目を拾って買いたい
- ・上昇トレンドの定義:短期MAが長期MAの上にある状態
- ・押し目の定義:RSIが30~40まで下がってから再び40を上抜けたタイミング
- ・損切り:直近安値の少し下に設定
- ・利確:リスクリワード比 1:2 になる位置
このように「インジケーターを使ったロジック」をまず日本語で整理し、その後にMQL4コードに落とし込んでいく、という流れで考えるとEA作りのハードルが下がります。
MT4でEAを自作するための準備
インジケーターEAを作るためには、MT4上で「MetaEditor」という開発ツールを使います。専門的な開発環境を別途用意する必要はありません。
事前に用意しておきたいものは次の通りです。
- ・MT4本体(ブローカーから入手したもの)
- ・ある程度のヒストリカルデータ(バックテスト用)
- ・デモ口座(いきなりリアルで動かさないことが大前提)
MT4が起動できる状態になったら、画面上部のメニューから「ツール」→「MetaQuotes Language Editor」をクリックします。これがEAを編集・作成するためのMetaEditorです。
インジケーターEAの基本構造(MQL4のざっくりイメージ)
コードの細部を覚える必要はありませんが、「EAはどのようなタイミングで何をしているのか」をイメージできると理解が早くなります。
MQL4のEAは、おおまかに次の3つのブロックで構成されます。
- ・OnInit():EA起動時に一度だけ実行される処理(初期化など)
- ・OnDeinit():EA終了時に一度だけ実行される処理
- ・OnTick():レートが動くたびに毎回呼び出される処理
インジケーターEAのロジックは、基本的にOnTick()の中に書いていきます。「今のレート」「最新のインジケーター値」「既存ポジションの有無」などをチェックし、条件を満たせば新規エントリーや決済を行う、という流れです。
この記事では、コード全文ではなく「どういうロジックを組めばいいのか」を中心に解説します。具体的なMQL4コードを学びたい場合は、ここで紹介するロジックをそのまま検索してサンプルコードと照らし合わせると理解しやすくなります。
ケース1:移動平均線だけで作るシンプルトレンドEA
まずは最もシンプルな「移動平均線クロス」のEAから考えます。ロジックは次の通りです。
- ・短期移動平均線が長期移動平均線を上抜けしたら買い
- ・短期移動平均線が長期移動平均線を下抜けしたら売り
- ・損切りと利確は固定pips、またはATRを使って変動させる
当たり前のように見えますが、トレンド相場では今でも十分機能することがあります。ただし、レンジ相場ではダマシが多発するため、バックテストで特性を必ず確認することが重要です。
例えば、ドル円の1時間足で「短期MA:20、長期MA:50」という組み合わせを使ってテストすると、トレンドが強く出やすい局面では利益が伸びやすい一方、横ばいの期間では小さな損切りが積み重なりやすいという典型的なパターンが現れます。
この結果を踏まえ、
- ・ボラティリティが低い時間帯はトレードしない
- ・経済指標前後はエントリーを停止する
- ・一定期間連続で損失が出たらEAの稼働を止めて見直す
といった運用ルールを決めておくことで、「シンプルだが現実的な」移動平均線EAになります。
ケース2:RSIを使った押し目・戻り売りEA
次にRSIを使ったEAです。RSIは「買われ過ぎ・売られ過ぎ」を測るオシレーターとして有名ですが、トレンド方向と組み合わせると押し目買い・戻り売りのロジックを作りやすくなります。
例えば、次のようなルールが考えられます。
- ・上昇トレンドの定義:短期MAが長期MAの上にある
- ・上昇トレンド中にRSIが30以下まで下落したら「売られ過ぎ」と判断
- ・RSIが30を下から上に抜けたタイミングで買いエントリー
- ・損切りは直近安値の少し下、利確はリスクリワード 1:2
このEAのポイントは、「RSI単体で逆張りするのではなく、トレンド方向を移動平均線でフィルターしている」点です。強い下落トレンドでRSIが何度も「売られ過ぎ」を示しても、それだけで逆張りすると大きな損失を招く可能性があります。
実際にバックテストをすると、トレンド方向とRSIを組み合わせたロジックは、「単純なMAクロスEAよりもトレード回数は減るが、1トレードあたりの期待値が高まりやすい」という結果になりやすいです。エントリー回数が減る分、スプレッドや手数料の影響も軽減できます。
ケース3:MACDでトレンド転換を狙うEA
MACDは、トレンドの強さや転換を捉えるためのインジケーターです。MACD線とシグナル線のクロス、あるいはゼロラインとの位置関係を使ってEAロジックを組み立てることができます。
代表的なロジックは次のようなものです。
- ・MACD線がシグナル線を下から上にクロスしたら「買いシグナル」
- ・MACD線がシグナル線を上から下にクロスしたら「売りシグナル」
- ・MACDがゼロラインより上でのゴールデンクロスは「強気」とみなし、ロットをやや増やす
- ・MACDがゼロラインより下でのデッドクロスは「弱気」とみなし、売りロジックを優先する
MACDは移動平均線を元に計算されているため、トレンド系インジケーターとしての性質が強く、レンジ相場よりもトレンド相場で機能しやすい特徴があります。バックテストをすると、トレンドの初動に乗れたときのリワードが大きく、損切りをタイトにすれば「勝率はそこまで高くなくてもトータルでプラスになる」というタイプのEAになりやすいです。
一方で、MACDは遅行性があるため、「すでにかなり動いた後でシグナルが点灯する」ことも多いです。そのため、
- ・大きな値動きの直後は新規シグナルを無視する
- ・直近の高値・安値からの距離が一定以上ある場合はエントリーを見送る
といったフィルターを組み込むことで、過度に遅いエントリーを避ける工夫ができます。
複数インジケーターを組み合わせるときの考え方
移動平均線・RSI・MACDなど、複数のインジケーターを同時に使うとEAは一気に複雑になります。しかし、「とりあえず全部組み込む」のは危険です。条件を増やしすぎると、バックテストでは見かけ上の成績が良くなっても、フォワードテストで急にパフォーマンスが崩れる「過剰最適化」のリスクが高くなるからです。
複数インジケーターを組み合わせるときは、次のような役割分担を意識するとバランスが取りやすくなります。
- ・トレンド判定役:移動平均線、MACD
- ・押し目/戻り判定役:RSI、ストキャスティクスなど
- ・ボラティリティ判定役:ATRなど
例えば、
- ・トレンド方向は移動平均線で決める(上昇トレンドなら買いのみ)
- ・エントリータイミングはRSIの押し目シグナルで決める
- ・損切り幅はATRを使って相場のボラティリティに応じて調整する
といったように、インジケーターごとに役割を固定すると、「なぜそのインジケーターを使うのか」が明確になり、ロジックの検証・改良もしやすくなります。
インジケーターEAのバックテストと注意点
どんなに理論的に美しいインジケーターEAでも、バックテストとフォワードテストを行わずにリアル口座で動かすのは非常に危険です。特に、インジケーターのパラメータを細かく調整したEAは、「過去チャートにだけ異常にフィットしている」可能性が高いため注意が必要です。
バックテストでは、最低限次のポイントを確認します。
- ・十分な期間(できれば数年分)のデータでテストする
- ・異なる相場環境(トレンド/レンジ、ボラティリティの大小)での動きを見る
- ・最大ドローダウンと資金曲線の形を確認する
- ・スプレッドやスリッページを現実的な値で設定する
特に、損失が続いたときにどれくらい資産が減るのか(最大ドローダウン)は、メンタル面・資金管理の両方で非常に重要です。たとえ最終的な損益曲線が右肩上がりでも、「途中で資金の半分以上を失うようなEA」は、実際に運用するのは難しいと考えた方が現実的です。
インジケーターEAを使って利益を狙うための実践ポイント
最後に、インジケーターEAを使って実際に利益を狙うために意識しておきたいポイントをまとめます。
- ・1つのEAだけに全資金を集中させない
インジケーターEAは、特定の相場環境に強く、別の環境に弱いという偏りを持ちやすいです。移動平均線EA、RSI押し目EA、MACDトレンドEAなど、特性の違う複数EAに分散させることで、トータルのリスクを抑えやすくなります。 - ・ロット管理を「EAに任せきり」にしない
EAロジック内でロットを動的に変えることも可能ですが、初めのうちは口座残高に対して「1トレードあたり何%までの損失を許容するか」を自分で決め、その範囲内でロットを調整するのがおすすめです。 - ・定期的にフォワード結果を振り返り、環境とのミスマッチを疑う
バックテストで良かったEAでも、リアルの相場環境が変化するとパフォーマンスが落ちることがあります。一定期間ごとに結果を見直し、必要なら一時停止・パラメータ変更・ロジック改良などを検討します。
インジケーターEAは、最初は「思ったように動いてくれない」「バックテストと結果が違う」といった壁にぶつかりますが、それを一つずつ潰していく過程こそが、トレードスキルの底上げにつながります。裁量トレードでは見過ごしてしまうような「自分の癖」や「相場との相性」を、EAを通じて客観的に見つめ直すことができるからです。
まずは、ここで紹介したようなシンプルな移動平均線・RSI・MACDを使ったEAから取り組み、少しずつ自分なりの改良を加えていくことで、「自分専用のインジケーターEAポートフォリオ」を育てていくことができます。


コメント