MT4を使った自動売買は、「感情に振り回されず、決めたルールだけで淡々とトレードしたい」と考える個人投資家にとって非常に有力な選択肢です。本記事では、MT4で基本的なインジケーターを使ったEA(エキスパートアドバイザー)を自分で組むための基礎を、初心者でも理解できるように丁寧に解説します。
なぜMT4で自動売買を検討するのか
まず、裁量トレードと自動売買トレードの違いを整理しておきます。裁量トレードは、チャートを見ながらその場で判断して売買を行うスタイルです。一方、自動売買はあらかじめ決めておいた売買ルールをEAというプログラムに落とし込み、MT4上で自動的に売買を行う方法です。
自動売買には次のようなメリットがあります。
- 感情に左右されず、ルール通りのトレードができる
- 24時間稼働するFX市場でも、チャンスを逃しにくい
- 検証しやすく、数字でルールの良し悪しを評価しやすい
一方で、「どんなロジックでもEAにすれば勝てる」というわけではありません。インジケーターの特性を正しく理解し、現実的な売買ルールを設計することが重要です。
MT4自動売買の全体像
MT4での自動売買の流れは大きく分けて次のようになります。
- トレード戦略のアイデアを考える(インジケーターの組み合わせやルールを決める)
- そのルールをMT4のEAとして実装する
- 過去チャートでバックテストを行う
- フォワードテスト(デモ口座や少額リアル口座)で挙動を確認する
- 問題なければ本格運用に移行する
この記事では、特に①の「戦略アイデア」と②の「EAとして落とし込むイメージ」に焦点を当て、基本的なインジケーターを使ったEA構築の考え方を解説します。
MT4で動くEAの仕組みをイメージする
EAの中身はMQL4という専用言語で書かれたプログラムです。ただし、初心者が最初からコードを完璧に理解する必要はありません。重要なのは、「EAの中で何が行われているか」をざっくりイメージできることです。
典型的なEAは、次のような処理を繰り返しています。
- 最新の価格データとインジケーターの値を取得する
- あらかじめ決めた売買条件(エントリー条件・決済条件)をチェックする
- 条件を満たした場合に新規注文を出す、またはポジションを決済する
- ロット数や損切り・利確などのリスク管理を同時に行う
つまり、EAとは「条件分岐の集合体」です。インジケーターを使って「こうなったら買う」「こうなったら売る」「こうなったら手仕舞いする」というルールを機械に伝えているだけ、と考えると理解しやすくなります。
代表的インジケーターとEAへの組み込みイメージ
ここからは、代表的なテクニカルインジケーターごとに、EAでの使い方のイメージを具体的に紹介します。実際のコードを書く前に、「どんなルールになり得るか」を日本語で整理することが重要です。
移動平均線を使ったトレンドフォローEA
移動平均線(MA)は最も基本的なトレンド系インジケーターです。単純移動平均線(SMA)を2本組み合わせて、ゴールデンクロス・デッドクロスで売買するEAは、初心者でもイメージしやすい代表例です。
典型的なルール例は次のようになります。
- 短期移動平均線(例:20期間)が長期移動平均線(例:50期間)を下から上に抜けたら買いエントリー
- 短期移動平均線が長期移動平均線を上から下へ抜けたら売りエントリー、または買いポジションの決済
- トレンド方向と逆行した場合、一定幅で損切り
- 利食いは一定pips、もしくは逆クロス発生時に決済
例えば、EURUSDの1時間足で「20SMAと50SMAのクロス」を使うEAを考えてみます。レンジが多い相場ではダマシが増えますが、トレンドが一方向に伸びた局面では連続利益を狙うことができます。EAでは、このクロス判定を毎バーごとに自動でチェックし、条件を満たせば注文を出します。
RSIを使った逆張り・押し目買いEA
RSIはオシレーター系インジケーターで、「買われすぎ」「売られすぎ」を判断するのに使われます。EAでは、RSIが極端な値に達したときに逆張りで入る、あるいはトレンド方向への押し目・戻りを狙うロジックがよく使われます。
シンプルな逆張りEAの例は次の通りです。
- RSIが30を下回ったら「売られすぎ」と判断し、買いエントリーを検討
- RSIが70を上回ったら「買われすぎ」と判断し、売りエントリーを検討
- RSIが中央の50付近に戻ってきたところで決済
ただし、強いトレンドが発生しているときはRSIが30や70のまま張り付くこともあり、単純な逆張りは大きな含み損を抱えるリスクがあります。そこで、トレンド系インジケーター(移動平均線など)と組み合わせ、「上昇トレンド+RSIが押し目ゾーンに下がったときだけ買う」といったフィルターを入れるのが実用的です。
MACDを使ったトレンド転換EA
MACDは、2本の移動平均線の差を利用したインジケーターで、トレンドの強弱や転換ポイントを把握するのに役立ちます。EAでは、MACDラインとシグナルラインのクロスや、0ラインとの位置関係を利用して売買条件を作ります。
典型的なEAロジックは次のようになります。
- MACDラインがシグナルラインを下から上へ抜けたら買いエントリー
- MACDラインがシグナルラインを上から下へ抜けたら売りエントリー
- 0ラインより上なら上昇トレンド優勢、下なら下降トレンド優勢とみなし、トレンド方向のシグナルのみ採用する
例えば、USDJPYの4時間足でMACDを使ったEAを設計する場合、0ラインより上でのゴールデンクロスだけを買いシグナルとして採用し、0ラインより下のクロスは無視する、といったフィルタリングが考えられます。これにより、トレンド方向に沿ったエントリーが増え、ノイズを減らせる可能性があります。
ボリンジャーバンドを使ったレンジ・ブレイクEA
ボリンジャーバンドは、価格の標準偏差を利用して「バンド」を描くインジケーターです。EAでは、バンドの外側へのブレイクを狙うトレンドフォロー型と、バンドの上下での反発を狙う逆張り型の両方に応用できます。
レンジブレイクEAの例は次の通りです。
- 終値が上側バンドを明確に上抜けたら買いエントリー
- 終値が下側バンドを明確に下抜けたら売りエントリー
- ミドルバンド(移動平均線)まで戻ったら一部決済、反対側バンドに届いたら全決済
逆張りEAとして使う場合は、上側バンドタッチで売り、下側バンドタッチで買い、という発想になります。ただし、トレンド発生時には逆張りが何度も踏み上げられる可能性があるため、トレンド系インジケーターとの併用でフィルタをかけるのが現実的です。
自分でEAロジックを設計する5ステップ
ここからは、「基本インジケーターを使って自分でEAを設計する」流れを5ステップで整理します。コードを書く前に、このプロセスを紙やメモ帳に書き出すだけでも結果は大きく変わります。
- 市場と時間足を決める
まず、どの通貨ペア・どの時間足で戦うのかを決めます。例として「EURUSDの1時間足」「USDJPYの4時間足」など、自分が過去チャートを見てイメージしやすい組み合わせを選びます。 - インジケーターの役割を決める
トレンド方向を判定するインジケーター(移動平均線、MACDなど)と、エントリーのタイミングを測るインジケーター(RSI、ボリンジャーバンドなど)を役割分担させるとロジックが整理しやすくなります。 - 具体的なエントリー条件を書く
「短期MAが長期MAの上」「RSIが40から反発して50を上抜け」など、チャートを見ながら言葉で条件を書き出します。この段階では細かい数値は仮で構いません。 - 決済と損切りのルールを決める
「直近高値まで来たら決済」「固定30pipsで損切り」「RSIが50を再び割り込んだら手仕舞い」など、ポジションをどう終わらせるかを明確にします。 - ロット数と同時ポジション数の上限を決める
1回あたりのリスク(口座残高の何%を許容するか)と、同時に持つポジション数の上限を決めておきます。EAでは「気付いたら大量ポジション」という事態を避けるために、あらかじめ制限を入れておくことが重要です。
具体例:移動平均線+RSIを組み合わせたEAロジック
ここで、移動平均線とRSIを組み合わせたシンプルなEAロジックを例として示します。このまま使うのではなく、「こういう考え方でルールを組む」という参考にしてください。
市場・時間足:EURUSD 1時間足
使用インジケーター:20SMA・50SMA・RSI(14)
売買ルール(買い)
- 20SMAが50SMAの上にあり、かつ2本とも右肩上がりで上昇トレンドと判断
- RSIが一時的に40付近まで下落した後、再び50を上抜けたら押し目完了とみなす
- そのタイミングで買いエントリー
- 損切りは直近安値から10~15pips下に設定
- 利確はリスクリワード1:2を目安に、もしくはRSIが70を超えたら手仕舞い
売りルールは逆の条件にします。20SMAが50SMAの下にあり、RSIが一時的に60付近まで戻した後で50を下抜けたタイミングで戻り売り、といったイメージです。
EAでは、この「トレンド判定」「押し目・戻り判定」「エントリー」「損切り・利確」の一連の判断を自動で行います。ロジックを文章でここまで具体化できれば、あとはそれをMQL4の条件分岐として実装していくだけです。
EAを実装する際に意識したいポイント
実際にEAを組む段階では、インジケーターの値を取得して条件分岐を書くことになります。ここでは、コードの詳細ではなく、実装時に意識したいポイントに絞って解説します。
- 「確定足」の値を使う
インジケーターのシグナルは、確定していないバーの値を使うと頻繁に変化します。EAでは原則として「確定した足の終値やインジケーター値」を使って判定するように設計すると、過剰なシグナルを防ぎやすくなります。 - エントリー回数を制御する
同じバーで何度もエントリーしないよう、「1バーにつき1回だけエントリー」のような制御を入れることが重要です。これを入れておかないと、バックテストとリアル運用で結果が大きくずれる原因になります。 - スプレッドや手数料を考慮する
取引コストを無視したロジックは、バックテスト上はプラスでも、実運用ではマイナスになることがあります。特にスキャル系のEAでは、スプレッドが与える影響が大きくなるため注意が必要です。
バックテストと検証のポイント
EAを完成させたら、必ず過去データを使ってバックテストを行います。バックテストでは、単に「トータルで勝っているかどうか」だけでなく、次のようなポイントを確認します。
- 最大ドローダウン(どれくらい口座残高が落ち込むか)
- 勝率と平均損益(1回あたりの利益と損失のバランス)
- 連敗回数(最大で何連敗する可能性があるか)
- 取引頻度(年・月あたり何回程度のトレードが発生するか)
例えば、年間を通じて右肩上がりに資産曲線が伸びていても、途中で口座残高が50%も落ち込むようなEAは、実際に運用する際に精神的な負荷が大きくなります。ドローダウンが自分の許容範囲に収まるかどうかは、必ずチェックしておくべきポイントです。
また、バックテストでパラメータを細かく最適化しすぎると、過去データにだけ都合よくフィットした「カーブフィッティングEA」になってしまいます。ある程度ざっくりしたパラメータでも安定しているロジックの方が、将来の相場環境の変化に耐えやすくなります。
資金管理とリスクコントロール
どれだけロジックが優れていても、資金管理を間違えると口座は簡単に破綻します。EA運用では、次のようなシンプルなルールを決めておくと良いでしょう。
- 1回のトレードで失ってよい額を「口座残高の1~2%」程度に抑える
- 同時に保有するポジション数に上限を設ける(例:最大3ポジションまで)
- 最大ドローダウンが一定値(例:口座残高の20%)を超えたら運用を一時停止し、ロジックを見直す
具体例として、口座残高が100万円で、1トレードあたりの許容損失を1%=1万円と決めたとします。損切り幅が30pipsであれば、ロット数は「1pipsあたりいくら損益が出るか」から逆算して決めることができます。EAではこの計算も自動化できますが、まずは手計算で感覚を掴んでおくと安心です。
初心者がEA作りで陥りやすい失敗パターン
最後に、これからEA作りに挑戦する初心者が陥りやすいパターンを整理しておきます。当てはまりそうな点があれば、あらかじめ意識して避けるようにしましょう。
- 過去チャートを見ながら「都合のよいルール」を後付けする
チャートの山谷に合わせて条件を細かく調整しすぎると、過去にだけ効くロジックになりがちです。まずはシンプルなルールからスタートし、少しずつ改良する方が結果的に安定しやすくなります。 - 短期足でスキャルピングEAばかり作ろうとする
1分足や5分足のEAは取引回数が多く魅力的に見えますが、スプレッドやスリッページの影響も大きくなります。最初は15分足や1時間足など、比較的ノイズの少ない時間足から取り組む方が学びやすいです。 - ドローダウンや連敗数を軽視する
「年間トータルでプラスだから大丈夫」と考えていると、実運用で大きな含み損や連敗を経験したときにロジックを信じ切れず、途中で停止してしまうことがあります。あらかじめ「このEAは最大で何連敗しそうか」を認識しておくことが大切です。
実運用前に確認しておきたいチェックリスト
EAをデモ口座や少額リアル口座で動かす前に、次のチェックリストを一つずつ確認しておくと、トラブルを減らせます。
- 想定外のタイミングでエントリー・決済をしていないか(チャートと照合する)
- ロット数や損切り幅が、事前に決めたリスク許容度の範囲に収まっているか
- 経済指標発表時など、ボラティリティが急上昇する場面でどのように動くかをあらかじめ想定しているか
- 取引環境(VPSやPC、ネット回線)が安定しているか
これらはロジックそのものとは別に、実運用で重要になるポイントです。特に自動売買ではPCやネットのトラブルが直接ポジションリスクにつながるため、環境面の準備も忘れないようにしましょう。
まとめ:インジケーターEAは「シンプル+検証」が鍵
MT4でインジケーターを使ったEAを自作することは、難しそうに見えても、考え方の基本は非常にシンプルです。
- トレンド系とオシレーター系の役割を分けてロジックを組む
- エントリー・決済・損切りの条件を言葉で明確に書き出す
- 過去データとフォワードテストで現実的かどうかを検証する
- 資金管理と最大ドローダウンを常に意識する
最初から完璧なEAを目指すのではなく、「ごくシンプルなインジケーターEAを一つ作り、検証し、改善する」という小さなサイクルを繰り返すことが、長期的に安定した自動売買につながります。MT4と基本インジケーターだけでも、工夫次第で十分に実用的な自動売買ロジックを構築することができます。


コメント