MT4(MetaTrader4)は、FXやCFDのトレードで広く使われているプラットフォームであり、自動売買プログラムであるEA(Expert Advisor)を動かせることが大きな特徴です。本記事では、投資初心者でも理解しやすいレベルから、MT4で自動売買を行うための基本と、移動平均線やRSIといった代表的なインジケーターを使ったEA作りの考え方を丁寧に解説します。
MT4自動売買とEAとは何か
まずは用語の整理から行います。MT4は取引プラットフォームであり、チャート表示や発注、インジケーター表示などを行う土台となるソフトです。その上で動くプログラムがEA(Expert Advisor)で、あらかじめ決めた条件に従って自動的に売買を行います。
例えば「短期移動平均線が長期移動平均線を上抜けしたら買い」「RSIが30を下回ったら買い、70を上回ったら売り」といったルールをEAに組み込んでおけば、チャートをずっと監視していなくても自動的にエントリーや決済が行われます。
重要なのは、EAはあくまで自分が決めたルールを機械的に実行する存在であり、魔法の箱ではないという点です。EAを自分で組むことは「どんなルールでトレードするのか」を明確にする作業でもあります。
自動売買のメリットとデメリット
自動売買には魅力的な側面が多くありますが、リスクやデメリットも存在します。両側面を理解したうえで取り組むことが大切です。
メリット
第一に、感情に左右されないトレードが可能になります。裁量トレードでは、含み損を見ると焦って損切りを早めたり、含み益を見ると利益を伸ばし切れずに早く決済してしまうなど、感情が結果に大きく影響します。EAはルール通りに売買するため、同じ条件ならいつでも同じ行動を取ります。
第二に、24時間市場を監視できる点です。FX市場は平日ほぼ24時間動いていますが、人間が常にチャートを見続けることはできません。EAをVPSなどで稼働させておけば、夜中や仕事中に発生したチャンスも捉えやすくなります。
デメリット
一方で、EAにもデメリットがあります。相場環境の変化に弱い点は代表的です。トレンド相場に強いEAはレンジ相場でドローダウンしやすく、レンジに強いEAは強いトレンドで大きな損失を出しがちです。相場環境は常に変化するため、ある期間で好成績だったストラテジーが今後も通用するとは限りません。
また、EAは正しく動かすためにある程度の技術的な理解も必要です。MT4の設定、VPSの操作、EAファイルの配置、パラメータ設定など、最初に覚えるべき項目は多くなります。ただし、一度基礎を押さえてしまえば、あとはパターン化していける作業でもあります。
EA自作のための準備:環境と最低限の知識
EAを自分で組むといっても、高度なプログラマーになる必要はありません。MT4のEAは「MQL4」という専用言語で書かれていますが、シンプルなロジックであれば、構文をある程度パターンで覚えてしまうだけでも十分です。
最低限準備しておきたいものは以下の通りです。
- MT4本体(デモ口座で構いません)
- MetaEditor(MT4に付属する開発ツール)
- ヒストリカルデータ(バックテスト用。ブローカー提供のデータでOK)
- ロジックを紙に書き出す習慣
特に最後の「ロジックを紙に書く」ことは非常に重要です。多くの初心者がいきなりコードを書き始めて途中で混乱しますが、「どの条件でエントリーして、どの条件で決済するか」を日本語で整理してからコード化すると、ミスが大幅に減ります。
最初に決めるべきこと:ロジックを文章で定義する
EAを自作する際の出発点は「どのような市場の動きを狙うのか」を決めることです。ここでは、FXのトレンドフォロー型ロジックを例にして、文章で定義してみます。
例えば以下のようなロジックを考えてみましょう。
「1時間足で、20期間の移動平均線が50期間の移動平均線より上にあるときは上昇トレンドとみなす。このとき、RSIが30を下回ったら押し目買いのチャンスとみなし、成行で買いエントリーする。利確は直近高値の少し手前、損切りは直近安値の少し下。」
ここまで文章で定義できれば、必要な要素がはっきりします。
- 使用する時間足:1時間足
- 使用するインジケーター:移動平均線(MA)、RSI
- トレンド判定条件:短期MA > 長期MA
- エントリー条件:RSI < 30
- 決済条件:直近高値・直近安値を基準
この整理ができれば、あとはインジケーターの値をコードから取得し、条件分岐で「もし~ならエントリー」「もし~なら決済」と書いていけばよいだけになります。
基本インジケーター1:移動平均線を使ったEAの考え方
移動平均線(Moving Average)は、一定期間の終値の平均を線で結んだインジケーターで、トレンドを視覚的に確認するのに適しています。EAでは、移動平均線の「位置関係」や「傾き」を条件に使うことが多いです。
代表的なロジックの例として、以下のようなものがあります。
「短期移動平均線(期間20)が長期移動平均線(期間50)を上抜けしたら買いエントリー、下抜けしたら売りエントリー。」
このようなシンプルなゴールデンクロス・デッドクロス戦略は、初心者がEAを組む際の入門ロジックとして非常にわかりやすいです。ポイントは、時間足によって意味合いが変わることです。1分足であればごく短期のノイズを追いかけることになり、1時間足であれば比較的落ち着いたトレンドを狙う形になります。
例えば、1時間足でEURUSDの20MAと50MAを使う場合、1回あたりのトレードが数時間から数日続くイメージになります。損切り幅をATR(平均値幅)などで決めると、相場のボラティリティに応じたリスク管理もしやすくなります。
基本インジケーター2:RSIを使ったEAの考え方
RSI(Relative Strength Index)は、一定期間内の上昇幅と下落幅のバランスから「買われすぎ」「売られすぎ」を判定するインジケーターです。一般的には30以下で売られすぎ、70以上で買われすぎとされます。
EAでは、RSIを以下のように利用することが多いです。
- トレンドフォローの押し目・戻りの判断に使う
- レンジ相場で逆張りエントリーに使う
例えば、先ほどの移動平均線のトレンド判定と組み合わせて、次のようなロジックが考えられます。
「上昇トレンド中(短期MA > 長期MA)に、RSIが30以下になったら押し目買いでエントリー。RSIが50を上回ったところで一部利確、70付近で全決済。」
このように、トレンド判定とRSIの位置関係を組み合わせることで、無秩序な逆張りではなく、トレンド方向に沿った押し目・戻りを狙うEAを構築できます。
インジケーターを組み合わせたシンプルEAの構造
ここまでの考え方をまとめると、シンプルなEAは次のような流れで動作します。
- 現在の時間足とインジケーターの値を取得する
- トレンド方向を判定する(例:短期MAと長期MAの位置関係)
- エントリー条件をチェックする(例:RSIが一定値を下回った/上回った)
- 条件を満たした場合にポジションを保有していないか確認し、エントリーする
- すでにポジションを保有している場合は、決済条件をチェックする(例:RSIが別の水準に到達した、直近高値・安値に到達したなど)
- 必要に応じて損切り・利確を実行する
実際のMQL4コードでは、これらの処理を「OnTick」という関数の中に記述していきます。OnTickは価格が更新されるたびに呼び出されるため、その都度インジケーターの値を計算し直し、条件を判定する仕組みです。
MQL4におけるEAの基本構造(概念理解)
ここではコードを細かく覚えることよりも、「EAの構造」をイメージすることに重点を置きます。MQL4のEAは、主に以下のブロックで構成されています。
- パラメータ宣言部:ロット、魔法番号、インジケーター期間などを外部入力として定義
- 初期化処理(OnInit):EA起動時に一度だけ実行される処理
- メインロジック(OnTick):価格更新のたびに呼ばれる処理。ここに売買ロジックを書く
- 終了処理(OnDeinit):EA停止時に実行される処理
例えば、移動平均線を取得するにはiMA、RSIを取得するにはiRSIという関数を使います。これらを使って直近バーのインジケーター値を取得し、「もし短期MAが長期MAより上なら」「もしRSIが30未満なら」といった条件分岐を記述していきます。
初心者のうちは、インターネット上にあるサンプルコードを参考にしながら、自分のロジックに合わせてパラメータや条件式を少しずつ変更していくスタイルが現実的です。最初からすべてをゼロから書く必要はありません。
バックテストとパラメータ調整の考え方
EAが完成したら、いきなりリアル口座で動かすのではなく、必ずバックテストを行います。MT4にはストラテジーテスターが搭載されており、過去の価格データを使ってEAの成績を検証できます。
バックテストでは、次のポイントに注目しましょう。
- 総損益よりも、ドローダウンとリスク・リターンのバランスを見る
- トレード回数が極端に少ないロジックは、統計的な信頼性が低い
- 特定の期間だけ極端に好成績になっていないか(過剰最適化の疑い)
例えば、2015年~2020年の5年間を対象にバックテストし、最大ドローダウンが証拠金の10%程度、年平均リターンが5~10%程度で安定しているようであれば、初心者向けのシンプルEAとしては十分検討に値するでしょう。
一方、年平均リターンが50%以上ある代わりにドローダウンも50%を超えるようなEAは、数字上は魅力的に見えても、実際に運用すると精神的な負担が非常に大きくなります。「現実的に耐えられるドローダウンかどうか」を基準にパラメータを調整することが重要です。
デモ口座・小ロットからテスト運用する
バックテストで手応えを感じたら、次はデモ口座でのフォワードテスト(実際のレート配信に対するテスト)に進みます。デモで数週間~数か月動かしてみて、バックテストと大きく乖離していないかを確認します。
そのうえで、実際に資金を入れて運用する場合は、最初は極小ロットから始めることを強くおすすめします。例えば通常0.1ロットで運用したいEAであれば、最初の1~3か月は0.01ロットで実際の挙動やスプレッド、約定滑りなどを確認するイメージです。
EAはあくまでツールであり、「相場の未来を保証するもの」ではありません。運用中に想定外のドローダウンが発生したり、ブローカー変更で約定条件が変わることもあります。小さく始めて、少しずつロットを上げることで、リスクをコントロールしながら経験値を積み上げていくことができます。
VPSを活用した24時間稼働と注意点
EAを本格的に運用する場合、自宅PCを24時間つけっぱなしにするのは現実的ではありません。そのため、多くのトレーダーはVPS(仮想専用サーバー)を利用します。VPS上にMT4をインストールし、EAを設定しておけば、自宅の電源を切っていてもEAは稼働し続けます。
VPSを利用する際の注意点としては、以下のようなものがあります。
- MT4とブローカーサーバー間の通信遅延(レイテンシ)が小さい業者を選ぶ
- OSの自動アップデートや再起動設定を確認しておく
- 定期的にリモートデスクトップでログやチャートを確認する
VPSを使うことで、夜間のチャンスや早朝の急変動にも対応しやすくなりますが、だからといって放置してよいわけではありません。週に数回はログをチェックし、エラーが出ていないか、想定と違う動きをしていないかを確認する習慣をつけましょう。
ありがちな失敗例とその回避策
EA初心者が陥りやすい失敗パターンをいくつか挙げ、その回避策を解説します。
失敗例1:バックテストの成績だけを見て全力投入する
過去データに対して極端に最適化されたEAは、将来の相場で同じように機能しないことが多いです。特にパラメータを細かくいじり続けて「一番きれいなカーブ」を探してしまうと、いわゆるカーブフィッティングに陥ります。回避策としては、検証期間を複数に分けてテストしたり、アウトオブサンプル期間を設けることが有効です。
失敗例2:相場環境の変化を無視して放置する
レンジ相場で好調だったEAが、急にトレンド相場になって大きなドローダウンを出すケースは珍しくありません。チャートの形やボラティリティを定期的に見直し、必要に応じて運用を一時停止したり、パラメータを調整する柔軟さが求められます。
失敗例3:複数EAのポジションが重なりすぎる
最初は1本のEAから始めるのがおすすめですが、慣れてくると複数EAを同時運用したくなります。このときに注意したいのは、複数EAが同じ通貨ペア・同じ方向にポジションを重ねてしまい、結果的にリスク管理が崩れてしまうことです。EAごとに最大ポジション数やロットを制限し、口座全体でのリスクを意識することが大切です。
まとめ:小さく作って、小さく試しながら経験値を積む
MT4で自動売買EAを自作することは、一見ハードルが高く感じられるかもしれません。しかし、ロジックを紙に書き出し、移動平均線やRSIといった基本的なインジケーターを組み合わせるところから始めれば、初心者でも少しずつ理解しながら前進できます。
いきなり複雑なEAを目指す必要はありません。まずは「1つの時間足」「2つ程度のインジケーター」「シンプルなエントリーと決済条件」という構成で、実際に動くEAを作り、デモ口座や小ロットで試してみることが重要です。その過程で、インジケーターの意味やパラメータの影響、相場環境の変化といった要素が体感的に理解できるようになります。
自分で組んだEAが実際にチャート上で売買を行い、その結果が損益として積み上がっていく経験は、裁量トレードだけでは得られない学びをもたらしてくれます。MT4とEA自作の基礎を押さえつつ、自分のペースで自動売買の世界を探求していきましょう。


コメント