FXのチャートを一日中見続けるのは現実的ではありません。そこで役に立つのが、MT4(MetaTrader4)で動く自動売買プログラム「EA(Expert Advisor)」です。本記事では、MT4で自動売買を始めるための全体像から、インジケーターを使ったシンプルなEAを自分で組む方法までを、できるだけ専門用語をかみ砕きながら解説します。
いきなり高度なシステムトレードを目指す必要はありません。まずは「移動平均線クロス」「RSIの買われすぎ・売られすぎ」といった基本インジケーターを使い、ルールを明文化する → コードに落とす → テストするという流れに慣れることが重要です。
MT4自動売買の全体像をざっくり掴む
最初に、MT4で自動売買を行うときの全体像を整理しておきます。大きな流れは次のとおりです。
1. 戦略アイデアを言語化する(どんなときに買い・売り・決済するかを文章で書く)
2. アイデアをインジケーターや価格データで表現する(移動平均線、RSI、ボリンジャーバンドなど)
3. MQL4という言語を使ってEAに落とし込む
4. MT4のストラテジーテスターでバックテストを行い、結果を確認・改善する
5. デモ口座や少額のリアル口座で動作を確認しながら運用する
この一連のプロセスを一度経験すると、裁量トレードで何となく感じていた優位性を、ロジックとして検証できるようになります。重要なのは、「勝てる聖杯EA」を探すことではなく、自分で理解できるルールを作り、検証し、改善し続けることです。
EAと裁量トレードの違いとメリット・デメリット
EAのメリット
EAには、裁量トレードにはないメリットがいくつかあります。
・感情に左右されず、ルールどおりにトレードできる
・24時間チャートを見続けなくてもチャンスを逃しにくい
・同じロジックを長期間にわたって機械的に検証できる
・複数通貨ペア・複数時間足を同時に監視しやすい
特に、「損切りをずらしてしまう」「エントリーをためらってしまう」といったメンタル面の課題を抱えている人にとって、EAはルール遵守の強力なツールになります。
EAのデメリット・注意点
一方で、EAにも当然デメリットがあります。
・相場環境の変化に自動で適応してくれるわけではない
・スプレッドの拡大や約定滑りの影響を受ける
・バックテストで良く見えても、将来も同じように機能するとは限らない
・VPSやPCの稼働など、環境の維持が必要
つまり、EAは放っておけば勝手にお金が増える魔法の箱ではありません。あくまで、「自分で考えた戦略を、ブレずに実行するための道具」と捉えることが現実的です。
MT4とMQL4の基本構造を理解する
EAを自作するには、MQL4というプログラミング言語を避けて通れません。ただし、最初からすべてを理解する必要はなく、よく出てくる基本構造だけ押さえるだけでもシンプルなEAは作れます。
EAの基本的な3つの関数
典型的なEAでは、次の3つの関数がよく使われます。
・OnInit():EAをチャートにセットしたときに一度だけ実行される初期化処理
・OnDeinit():EAを外すときに実行される終了処理
・OnTick():価格が変動するたびに呼び出されるメインの処理
EAのエントリーや決済ロジックは、多くの場合OnTick()の中で書きます。イメージとしては、「新しいティックが来るたびに、今ポジションを持つべきか/決済すべきかをチェックする」処理です。
インジケーター値の取得
インジケーターを使ったEAでは、「今の移動平均線の値」「1本前のRSIの値」などを取得して条件判定に使います。例えば、単純移動平均線(SMA)であれば、MQL4では次のようなイメージになります。
// 終値ベースの期間20SMAを取得(現在足)
double maCurrent = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 0);
// 1本前の足のSMA
double maPrev = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
RSI、MACD、ボリンジャーバンドなども同様に、iRSI、iMACD、iBandsといった関数で値を取得し、それを「買い条件」「売り条件」として組み立てていきます。
移動平均線クロスEAを自作する流れ
ここからは、具体例として移動平均線クロス戦略のEAを自分で組む流れを見ていきます。シンプルですが、「ルールを言葉で書く → インジケーターに落とす → コードにする」という思考プロセスを体験するのに最適です。
ステップ1:戦略ルールを日本語で書き出す
いきなりコードから入るのではなく、まず日本語でルールを書き出します。例として、次のような戦略を考えてみます。
・短期移動平均線(期間10)が長期移動平均線(期間40)を下から上に抜けたら買いエントリー
・短期移動平均線が長期移動平均線を上から下に抜けたら売りエントリー
・損切りはエントリー価格から20pips逆行したところ
・利益確定はエントリー価格から40pips順行したところ
・同時に持つポジションは1つまで
この段階では、時間足や通貨ペアをどうするかも決めておきます。例えば、EURUSDの1時間足で検証するといったように、前提条件まで含めて文章にしておくと、後で結果を解釈しやすくなります。
ステップ2:ロットとリスクの考え方を決める
次に、1回のトレードでどれくらいのリスクを取るかを決めます。初めのうちは、1トレードあたり口座残高の1%~2%程度に抑えるイメージで、ロット数を決めるとよいでしょう。
EAでは、固定ロットにしても構いませんし、口座残高に応じてロットが増減する「複利ロット」にしても構いません。最初は、検証をシンプルにするために固定ロットから始めるのがおすすめです。
ステップ3:エントリー条件をコードにする
先ほどの移動平均線クロス戦略を、MQL4のイメージコードにすると次のようになります。
double maShortNow = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, 0);
double maShortPrev = iMA(NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, 1);
double maLongNow = iMA(NULL, 0, 40, 0, MODE_SMA, PRICE_CLOSE, 0);
double maLongPrev = iMA(NULL, 0, 40, 0, MODE_SMA, PRICE_CLOSE, 1);
// ゴールデンクロス(買いシグナル)
bool isBuySignal = (maShortPrev < maLongPrev) && (maShortNow > maLongNow);
// デッドクロス(売りシグナル)
bool isSellSignal = (maShortPrev > maLongPrev) && (maShortNow < maLongNow);
このように、「1本前はどうだったか」「今はどうなっているか」を比較することで、クロスが発生したタイミングを検出します。
ステップ4:ポジション管理と決済ロジック
エントリーシグナルが出たからといって無制限に注文を出すと、ポジションだらけになってしまいます。そのため、次のような制御を入れるのが一般的です。
・すでに同じ通貨ペアでポジションを持っていないかチェックする
・買いシグナルと売りシグナルが同時に出た場合の優先順位を決める
・損切り・利確のpipsをパラメータとして設定する
損切り・利確は、注文時にストップロスとテイクプロフィットを発注する方法のほか、OnTick()の中で価格を監視して成行決済する方法もあります。どちらが良いかは戦略やブローカーの仕様にもよるため、複数の実装パターンを試してみる価値があります。
代表的インジケーターを使ったEAアイデア
ここからは、基本的なインジケーターごとに、EAに落とし込みやすいアイデアをいくつか紹介します。すべてを一度に実装する必要はありません。1つ選んでシンプルに作り、テストしてみることが大切です。
1. 移動平均線(MA)を使ったトレンドフォロー
移動平均線は、最も基本的で汎用性の高いインジケーターです。典型的なEAのアイデアとしては、次のようなものがあります。
・短期MAが長期MAより上なら買い目線、下なら売り目線
・ゴールデンクロスでエントリーし、長期MAを終値が割り込んだら決済
・ボラティリティに合わせて、損切り幅をATRなどで調整する
重要なのは、どの時間足・どの通貨ペアでテストした結果なのかを常にセットで確認することです。同じロジックでも、5分足と4時間足ではまったく性格が異なります。
2. RSIを使った押し目買い・戻り売りEA
RSIは「買われすぎ・売られすぎ」を見るオシレーター系インジケーターです。EAでは、次のようなルールが考えられます。
・上昇トレンド中(例:価格が200SMAより上)のとき、RSIが30を下回ったら押し目買い
・下降トレンド中(価格が200SMAより下)のとき、RSIが70を上回ったら戻り売り
・RSIが50を再び超えた/割り込んだタイミングで決済
ポイントは、RSI単体ではなく、トレンド系インジケーターと組み合わせることです。これにより、レンジ相場では過度な逆張りを避け、トレンド方向に沿った押し目・戻りを狙う設計にできます。
3. ボリンジャーバンドを使ったレンジブレイクEA
ボリンジャーバンドは、価格のばらつきを視覚化するインジケーターです。EAで使う際の一例は次のとおりです。
・バンド幅(上バンドと下バンドの差)が一定以下になったらレンジ相場とみなす
・レンジ状態で、終値が上バンドを明確にブレイクしたら買い、下バンドをブレイクしたら売り
・一定pipsのトレーリングストップで利益を伸ばす
このように、「バンドが収縮 → ブレイク方向についていく」という典型的な考え方をEAに落とし込むことができます。
4. MACDを使ったトレンド転換キャッチEA
MACDはトレンドの強さや転換を探るインジケーターです。EAのアイデアとしては、
・MACDラインがシグナルラインを下から上に抜けたら買い
・上から下に抜けたら売り
・ダマシを減らすために、長期MAの方向と合わせてフィルタリングする
MACDはスイングトレードと相性がよく、時間足を4時間足や日足にするとノイズが減ることも多いです。「どの時間足で一番安定するか」をバックテストで比較することがポイントです。
バックテストとフォワードテストの進め方
EAを作ったら、いきなりリアル口座で動かすのではなく、まずMT4のストラテジーテスターで過去データを用いたバックテストを行います。
バックテストで見るべき指標
バックテストでは、単に「総損益」だけを見るのではなく、次のような指標にも注目します。
・最大ドローダウン(どれくらい資産が減る局面があったか)
・勝率とリスクリワード(平均利益と平均損失の比率)
・プロフィットファクター(総利益 ÷ 総損失)
・トレード回数(サンプル数が少なすぎないか)
例えば、プロフィットファクターが1.3以上、最大ドローダウンが口座残高の20%以内、トレード回数が数百回以上ある、などの条件を自分なりの基準として持っておくと、感情ではなく数字で戦略を評価しやすくなります。
フォワードテストで「生きている相場」に慣れる
バックテストである程度手応えを感じたら、次はデモ口座や少額のリアル口座でフォワードテストを行います。ここでは、
・指標発表時のスプレッド拡大でどの程度影響を受けるか
・サーバー障害や回線切断時にどう振る舞うか
・約定の滑り(スリッページ)が想定より大きくないか
といった、実際の運用でしか見えない要素を確認していきます。EAのロジックはそのままに、ロットを極小にして動作だけを確認するのも有効です。
典型的な失敗パターンと避け方
EA運用でよくある失敗パターンも、事前に知っておくと対策しやすくなります。
過剰最適化(オーバーフィッティング)
パラメータを細かく調整しすぎると、過去のチャートにだけ都合よくフィットしたEAになり、将来の相場では機能しにくくなります。これを防ぐために、
・テスト期間を分割し、ある期間で最適化したパラメータを別の期間で検証する
・パラメータを変えても結果が大きく崩れないか確認する
・「たまたまハマった」だけの尖ったパラメータを避ける
といった工夫が有効です。
リスクを取りすぎるロット設計
EAが連勝しているときほど、ロットを大きくしたくなりますが、連敗は必ず起こる前提でロット設計を行うことが重要です。例えば、「バックテスト上の最大連敗数 × 損切り幅」を基準にして、口座残高が耐えられるかを確認しておくと、破綻リスクを抑えられます。
EAを放置しすぎる
EAは自動売買ツールですが、「一度セットしたら完全放置でOK」というわけではありません。相場環境が大きく変わったときや、スプレッド・約定環境に変化があったときには、
・最近のトレード履歴を振り返って傾向をチェックする
・必要に応じて、一時停止や設定変更を行う
といった「運用の見直し」が欠かせません。
初心者が1か月で取り組むロードマップ
最後に、これからMT4でEA自作と自動売買に挑戦する初心者向けに、1か月で取り組める現実的なロードマップを例として示します。
第1週:MT4環境構築とインジケーターの理解
・MT4をインストールし、デモ口座を開設する
・移動平均線、RSI、MACDなど基本インジケーターをチャートに表示してみる
・過去チャートをスクロールし、「このサインで入れたらどうだったか」を目で追ってみる
第2週:戦略の文章化と簡単なMQL4の学習
・自分がわかりやすいと感じるインジケーターを1~2個選ぶ
・そのインジケーターを使った売買ルールを、日本語でA4一枚分くらいに書き出す
・ネットや解説書を参考に、EAの基本構造(OnInit・OnTickなど)と、インジケーター関数の使い方を学ぶ
第3週:シンプルEAの作成とバックテスト
・移動平均線クロスやRSI押し目買いなど、シンプルな戦略をEAとして実装する
・1つの通貨ペア・1つの時間足に絞ってバックテストを行う
・結果を見ながら、損切り・利確幅や時間足など基本パラメータを調整する
第4週:フォワードテストと振り返り
・デモ口座もしくはごく少額のリアル口座でEAを稼働させる
・トレード履歴とチャートを見ながら、「想定どおりに動いているか」「どんな局面が苦手か」を確認する
・1か月の振り返りとして、「次に改善したいポイント」「新しく試したいインジケーター」などをメモにまとめる
このサイクルを繰り返すことで、EAの性能だけでなく、自分自身の「戦略を考える力」「検証する力」も着実に鍛えられていきます。MT4の自動売買は、最初のハードルこそ高く見えますが、一つひとつステップを踏めば、個人投資家でも十分に扱える強力な武器になります。


コメント