MT4でインジケーターを使った自動売買(EA)を作ることは、裁量トレードから一歩進んだ「仕組み化」への第一歩です。難しそうに感じるかもしれませんが、考え方の筋道さえ押さえれば、初心者でもシンプルなEAなら十分に自作できます。
この記事では、移動平均線・RSI・MACDといった代表的なテクニカル指標を使いながら、「どのように発想し、どのようにルールを文章化し、それをEAという形に落とし込んでいくか」を、実践的な手順に沿って解説します。
インジケーターEAとは何か ― 「裁量のクセ」を機械に置き換える発想
多くのトレーダーは、チャート上でインジケーターを見ながら「そろそろ売られすぎだから買ってみよう」「移動平均線を上抜けたから上昇トレンドだ」といった判断をしています。このとき、頭の中では次のような条件がぼんやりと動いています。
「RSIが30以下になって反発したら買う」
「短期移動平均線が長期移動平均線を上抜けたら買い」
「MACDヒストグラムがゼロラインを上抜けたらトレンド転換」
インジケーターEAとは、このような「自分の中のルール」を、できるだけブレなく、感情抜きで実行させるために、機械に任せる仕組みです。ポイントは次の3つです。
1. 条件を数字で表現すること
2. エントリーと決済のルールを明文化すること
3. リスク管理(ロット・損切り・最大ポジション数など)もセットで決めること
「なんとなく買う・なんとなく利確する」という裁量のクセを、ロジックと数字に置き換える。この発想がそのままEA作りの出発点になります。
MT4で動くEAの基本構造をイメージする
MT4の自動売買プログラムは、MQL4という専用言語で書かれたファイル(EA)が、チャートに張り付いた状態で動作します。初心者の段階では、細かいコードを覚える必要はなく、「EAはこういうタイミングで動いている」というイメージを持つだけで十分です。
EAが動く主なタイミング
MT4のEAは、主に次の3つのタイミングで処理を行います。
1. チャートにEAをセットしたとき(初期化処理)
2. 新しいティック(価格更新)が来るたび(メインの売買ロジック)
3. チャートから外したときやMT4を閉じるとき(終了処理)
実際の売買ロジックは、2番目の「新しいティックが来るたび」の処理の中で行われます。ここで、現在の価格やインジケーター値を読み取り、「条件を満たしているか?」を毎回チェックし、条件を満たしたら新規注文を出したり、決済を行ったりします。
インジケーターの値をどうEAで使うか
MT4で標準搭載されているインジケーター(移動平均線、RSI、MACDなど)は、EAから関数を使って呼び出すことができます。例えば、EAは次のような流れでインジケーターを利用します。
1. 「どの時間足・どの通貨ペア・どのインジケーター」を使うか決める
2. インジケーターのパラメータを指定する(期間・適用価格など)
3. 「最新の足」「一本前の足」など、どのバーの値を使うかを指定する
この考え方さえ理解しておけば、細かいコードは後から少しずつ覚えていけばよく、「インジケーターの値をルールに使う」という発想に集中できます。
インジケーターEA設計の3ステップ
ここからは、インジケーターEAを設計する実務的な流れを3ステップで整理します。いきなりコードを書こうとすると挫折しやすいので、「必ず紙やメモ帳に日本語でルールを書く」というプロセスを挟むことが重要です。
ステップ1:日本語でルールを書き出す
最初にやるべきことは、「自分がどんな条件のときにエントリーしたいのか」を、100%日本語で書き出すことです。例えば、移動平均線とRSIを組み合わせるなら次のように書けます。
・15分足チャートでトレードする
・短期移動平均線(期間10)が長期移動平均線(期間40)を上抜けたら買いトレンドとみなす
・買いトレンド中にRSIが30以下まで下がったあと、再び30を上抜けたら押し目買いエントリー
・損切りは直近安値の少し下に置く
・利確はリスクリワード1:2を目安に固定pips、またはRSIが70を超えたら決済
この段階では「どの足を使うか」「どのインジケーターを使うか」「エントリーと決済の条件」「損切り幅・ロット」を漏れなく書き出すことが大切です。まだコードやEAのことは考えず、「トレードルールとして筋が通っているか」を意識します。
ステップ2:使うインジケーターを絞り込む
初心者のうちは、インジケーターを3つ以上組み合わせると途端に複雑になり、EAも「めったにエントリーしないロボット」になりがちです。まずは次のような基本セットから始めるとよいでしょう。
・トレンド方向を判断する指標:移動平均線(SMA/EMA)
・勢い(モメンタム)や売られすぎ・買われすぎを見る指標:RSI
・トレンド転換や押し目・戻りのタイミングを見る指標:MACD
この中から「トレンド判定1つ+エントリータイミング1つ」という構成にすると、シンプルかつ論理的なEAになりやすくなります。
ステップ3:エントリー・決済・リスク管理をセットで決める
インジケーターEAの設計では、エントリー条件だけでなく、必ず次の3点をセットで決めます。
1. エントリー条件
2. 損切りと利確の条件
3. 1回あたりのリスク(ロット)と最大ポジション数
例えば、RSI逆張りEAなら次のように設計できます。
・通貨ペア:EURUSD
・時間足:15分足
・エントリー条件:RSI期間14が30以下から30を上抜けたら買い
・損切り:エントリーから20pips逆行したら成行決済
・利確:エントリーから30pips有利に動いたら利確
・最大ポジション数:片側1ポジションのみ
・トレード時間:ロンドン市場とニューヨーク序盤のみ(例:日本時間16時〜翌2時)
ここまで決めてからEA化を考えると、ロジックがぶれにくく、検証もしやすくなります。
具体例1:移動平均線クロス+トレンドフォローEA
最初の具体例として、もっとも基本的な「移動平均線クロス」を使ったEAの設計を解説します。ここでは、短期移動平均線が長期移動平均線を上抜けたときに買い、下抜けたときに売るというシンプルなロジックです。
戦略コンセプト
・トレンドが発生した局面を狙って、その流れに乗っていく
・レンジ相場ではダマシが増えるので、フィルター条件を追加してノイズを減らす
ルールの日本語化
具体的には、次のように日本語でルールを書き出します。
・通貨ペア:USDJPY
・時間足:1時間足
・インジケーター:
短期SMA:期間20
長期SMA:期間80
・買いエントリー条件:
1. 1本前の確定足で、短期SMAが長期SMAを下から上にクロスした
2. 価格が長期SMAより上で推移している
3. 既に買いポジションを持っていない
・売りエントリー条件:
1. 1本前の確定足で、短期SMAが長期SMAを上から下にクロスした
2. 価格が長期SMAより下で推移している
3. 既に売りポジションを持っていない
・損切り:エントリー足の直近高値・安値から一定pips離れた位置に設定
・利確:リスクリワード1:2を目安に固定pips、またはトレーリングストップ
EA化するときには、「1本前の確定足」という表現が重要です。確定前の足を使うとシグナルが頻繁に変わり、過剰に有利なバックテスト結果になりやすいため、基本的には確定足のインジケーター値のみを使うようにします。
実際の運用イメージと注意点
移動平均線クロスEAは、トレンド相場では連勝しやすい一方、レンジ相場で連敗しやすい特徴があります。そのため、次のようなフィルターを追加することでパフォーマンスの安定を狙えます。
・ATR(平均真値幅)が一定値以上のときだけエントリーする(ボラティリティフィルター)
・上位時間足(例:4時間足)のトレンド方向と揃っているときだけエントリーする
・主要な経済指標発表前後は新規エントリーを停止する
こうしたフィルターも、まずは日本語でルール化し、その後必要に応じてEAに組み込んでいきます。
具体例2:RSI逆張りEA ― 「売られすぎ」からの反発を自動で狙う
次に、RSIを使った逆張りEAの具体例です。裁量トレードでも人気の手法ですが、自動化することで「感情に左右されないエントリーとエグジット」を実現しやすくなります。
戦略コンセプト
・RSIの「売られすぎ(30以下)」と「買われすぎ(70以上)」を利用して反発を狙う
・トレンドの方向を完全に無視すると危険なので、シンプルなトレンドフィルターを併用する
ルールの日本語化
・通貨ペア:EURUSD
・時間足:15分足
・インジケーター:
RSI期間14
200SMA(長期トレンド判定用)
・買いエントリー条件:
1. 現在の価格が200SMAより上(上昇トレンドとみなす)
2. RSIが30以下になったあと、一本前の足でRSIが30を上抜けた
3. 既に買いポジションを持っていない
・売りエントリー条件:
1. 現在の価格が200SMAより下(下降トレンドとみなす)
2. RSIが70以上になったあと、一本前の足でRSIが70を下抜けた
3. 既に売りポジションを持っていない
・損切り:エントリー足の高値・安値から一定pips離れた位置、または直近スイング高値・安値
・利確:固定pips、またはRSIが反対側の水準(50付近など)に戻ったら決済
このように、トレンドフィルターを組み合わせることで、完全な逆張りではなく「上昇トレンド中の押し目買い」「下降トレンド中の戻り売り」として使うことができます。
RSI逆張りEAで意識したいポイント
RSI逆張りEAでは、次のポイントを特に意識します。
・トレンドと逆向きのエントリーをしないようにする
・連続シグナル(何本も続けてRSIが30の近くをうろうろする状態)で過剰にポジションを増やさない
・指標発表などで急激な動きが出たときのロスカットを明確に決めておく
EAとして実装する際には、「一度エントリーしたら決済するまで同じ方向には新規エントリーしない」といったルールを入れておくと、ポジションの持ちすぎを防ぎやすくなります。
具体例3:MACDトレンドフォローEA ― 押し目・戻りをシステマチックに狙う
MACDはトレンドの強さと転換点を捉えるのに適した指標です。ここでは、MACDシグナルとゼロラインを使ったトレンドフォローEAの例を紹介します。
戦略コンセプト
・強いトレンドが出ているときだけエントリーする
・MACDシグナルのクロスとゼロラインを組み合わせて押し目・戻りを狙う
ルールの日本語化
・通貨ペア:GBPJPY
・時間足:1時間足
・インジケーター:標準MACD(12,26,9)
・買いエントリー条件:
1. MACDのメインラインがゼロラインより上(上昇トレンド)
2. 一度MACDシグナルが下方向にクロスして押し目を形成
3. その後、メインラインがシグナルを再度上抜けたときに買いエントリー
・売りエントリー条件:
1. MACDのメインラインがゼロラインより下(下降トレンド)
2. 一度MACDシグナルが上方向にクロスして戻りを形成
3. その後、メインラインがシグナルを再度下抜けたときに売りエントリー
・損切り:押し目・戻りの直近高値・安値の外側に設定
・利確:ATRをベースにしたトレーリングストップ、またはRR1:2の固定pips
MACDは多少複雑に見えますが、EA側から見れば「ゼロより上か下か」「シグナルとどちらが上か」という単純な条件の組み合わせです。日本語でロジックを整理してからEA化すれば、混乱を減らせます。
パラメータ最適化と過剰最適化のバランス
インジケーターEAを作ると、多くの人がすぐに「どの期間設定が一番儲かるか」を探したくなります。MT4のストラテジーテスターを使えば、パラメータを変更しながら簡単にバックテストができますが、ここには大きな落とし穴があります。
過剰最適化とは何か
過剰最適化とは、「過去のチャートにだけ異常にフィットしたパラメータ」を選んでしまう現象です。例えば、ある3年間のEURUSD15分足で「RSI期間13.7、売られすぎ27、買われすぎ69」という非常に細かい数字に調整した結果、バックテストでは素晴らしい成績が出たとします。しかし、それはたまたまその期間の値動きに合わせて調整しすぎただけで、将来の相場環境では同じように機能しない可能性が高くなります。
実務的な最適化の考え方
パラメータ最適化を行うときは、次のような考え方を守ると健全です。
・期間や閾値は「多少動かしても成績が大きく変わらない」範囲を選ぶ
・過去の全期間で一番良い値ではなく、「広い範囲でそこそこ安定している」値を選ぶ
・検証期間を分割し、一部の期間で調整したパラメータを別の期間で検証する(フォワードテスト)
このような視点でパラメータを見ると、「偶然ハマっただけの設定」と「ある程度ロバストな設定」を見分けやすくなります。
実運用前に必ずやっておくべきチェック
インジケーターEAを実際の口座で動かす前に、最低限次の点は確認しておくことをおすすめします。
1. 戦略テスターでのバックテスト
・スプレッドを現実的な値に設定しているか
・スリッページや約定拒否をある程度想定しているか
・長期の期間(できれば5年以上)で検証しているか
2. デモ口座でのフォワードテスト
・バックテストと同じようなトレード頻度・損益カーブになっているか
・想定していないタイミングでエントリー・決済していないか
・指標発表時の急変動で異常な挙動がないか
3. リスク管理の確認
・1回のトレードで口座残高の何%をリスクにさらしているか
・最大ドローダウンがどのくらい想定されるか
・同時にいくつのポジションを保有する可能性があるか
これらを明確にしておくことで、EA運用中のブレや不安を大きく減らすことができます。
インジケーターEA作りを通じて身につく「システム思考」
インジケーターEAを自分で組むプロセスは、そのまま「勝ちパターンを言語化するトレーニング」でもあります。裁量トレードだけを続けていると、自分の勝ち負けの理由があいまいなまま時間だけが過ぎてしまいがちです。
一方、EA作りでは、必ず次のような問いと向き合うことになります。
・自分はどの時間足・どの通貨ペアで勝ちやすいのか
・自分が得意なパターンはトレンドフォローなのか、レンジ逆張りなのか
・どのインジケーターの組み合わせなら、自分の感覚に近いシグナルになるか
・1回あたり、どの程度のリスクなら心理的に耐えられるか
これらを数字とルールに落とし込んでいくことで、単なる「EAの作り方」を超えて、自分なりのトレーディングスタイルが徐々に明確になっていきます。
まとめ ― シンプルなインジケーターEAから始めて、少しずつ拡張していく
MT4でインジケーターEAを自作することは、「難しいプログラミング作業」というよりも、「自分のトレードルールを整理して、機械にも理解できる形にする」作業です。最初は、移動平均線クロスやRSI逆張りのようなシンプルな戦略から始めて構いません。
重要なのは、
・必ず日本語でルールを書き出す
・インジケーターは多くても2〜3種類に絞る
・エントリーだけでなく、損切り・利確・ロットもセットで決める
・バックテストとフォワードテストで戦略の癖を把握する
という基本を守ることです。
こうしたステップを踏みながら、少しずつフィルター条件を追加したり、複数のインジケーターを組み合わせたりしていけば、「自分の相場観を反映したオリジナルEA」を育てていくことができます。インジケーターEA作りは、トレードを仕組み化し、感情に振り回されない判断を身につけるための強力な武器になります。


コメント