
手持ちのMT4・MT5インジケーターのサインで自動売買するEAを、プログラミングなしで作る手順を、はじめての方向けに順番に説明します。
01 / ABOUT
このツールでできること
インジケーターの矢印やラインは、中身としては「バッファ」と呼ばれる数値の入れ物に値を入れて表示しています。このツールは、そのバッファの値を読み取って売買する EA のソースコード(.mq4 / .mq5)を作ります。
できること
- 矢印が出たら売買する EA
- 2本のラインが交差したら売買する EA
- オシレーターが水準を超えたら売買する EA
- 損切り・利確・トレーリングストップ・建値移動
- 固定ロット/残高の%リスク/残高に比例(複利)のロット計算
- スプレッド制限・ドテン・1ポジ制限
- MT4(MQL4)と MT5(MQL5)の両方
できないこと
- アラートやメール通知だけで値を出さないインジケーターの EA 化
- 複数のインジケーターを組み合わせた条件
- ナンピン・マーチンゲール・複数回に分けた決済
- MT4用インジケーターを MT5 で動かすこと(先に変換が必要)
入力した内容やインジケーターのソースは、ブラウザの中だけで処理します。サーバーには送信しません。
02 / PREPARE
準備するもの
- MT4 または MT5(デモ口座でログインしたもの)
- EA化したいインジケーター(.ex4 / .ex5。ソースの .mq4 / .mq5 があればより簡単)
- MetaEditor(MT4・MT5に付属。ツールバーの「MetaEditor」ボタンまたは F4 キーで起動)
- パソコンのブラウザ(スマホでもコード作成はできますが、保存とコンパイルはパソコンで行います)
インジケーターは、あらかじめ MT4 なら MQL4\Indicators、MT5 なら MQL5\Indicators フォルダに入れ、チャートに表示できる状態にしておきます。フォルダは MT4・MT5 の[ファイル]→[データフォルダを開く]から開けます。
03 / FLOW
全体の流れ
- STEP 1インジケーター名を入力
- STEP 2外部パラメータを入力
- STEP 3バッファ番号を調べる
- STEP 4判定方式を選ぶ
- STEP 5売買設定を決める
- STEP 6保存してコンパイル
- STEP 7バックテストで確認
- STEP 8チャートで動かす
STEP 1〜5 はツールの画面で入力します。入力するたびに下の「生成されたEAコード」が自動で更新されるので、決定ボタンなどはありません。入力内容はブラウザに保存されるので、次に開いたときも続きから作業できます。
STEP 1
インジケーター名を入力する

- 対象を選ぶ
MT4 で使うなら「MT4(MQL4)」、MT5 なら「MT5(MQL5)」を押します。
- インジケーター名を入力する
Indicators フォルダに入っているファイル名から拡張子を除いたものを入力します。例:
SuperArrow.ex4ならSuperArrow。大文字・小文字も同じにしてください。
ファイル名の確かめ方
MT4・MT5 の「ナビゲーター」ウィンドウ(Ctrl+N)の「インジケーター」に表示されている名前がファイル名です。Indicators フォルダの中のサブフォルダに入っている場合は、Market\SuperArrow のようにフォルダ名と \ を付けます。
STEP 2
外部パラメータを入力する
外部パラメータとは、インジケーターをチャートに入れるときに表示される「期間」「倍率」などの設定値のことです。EA はインジケーターを呼び出すときにこの値を渡すので、インジケーター側と同じ順番・同じ型で入力する必要があります。

パラメータの確認方法
- インジケーターの設定画面を開く
チャート上のインジケーターを右クリック →「プロパティ」を開き、MT4 は「パラメーターの入力」タブ、MT5 は「パラメータ」タブを表示します(表記はバージョンによって少し違います)。
- 上から順に入力する
一覧の上から順に、ツールの「+ パラメータを追加」で行を増やして入力します。「名前」はメモ用なので、英数字なら自由に付けて構いません。
- 型を選ぶ
値の見た目から、下の表を参考に型を選びます。
| 設定画面での見た目 | 型 | 初期値の例 |
|---|---|---|
| 整数(14、20 など) | int | 14 |
| 小数(2.0、1.5 など) | double | 2.0 |
| true / false | bool | false |
| 文字(「----設定----」などの区切りも含む) | string | ----設定---- |
| 色 | color | clrRed |
| 単純 / 指数 / 平滑 / 線形加重 | ENUM_MA_METHOD | MODE_EMA |
| 終値 / 始値 / 高値 など | ENUM_APPLIED_PRICE | PRICE_CLOSE |
| 時間足(現在の時間足、H1 など) | ENUM_TIMEFRAMES | PERIOD_CURRENT |
| その他の選択肢(インジケーター独自) | int | 選択肢の上から 0, 1, 2… |
よくある間違い
- 「----基本設定----」のような区切り用の文字も1つのパラメータです。飛ばさずに string として入力します。
- 途中のパラメータを飛ばすと、それ以降の値がずれて正しく動きません。省略できるのは末尾だけです(省略した分はインジケーターの初期値になります)。
- パラメータが1つもないインジケーターは、何も入力しなくて大丈夫です。
ソースコードがあるときは自動入力が便利
インジケーターの .mq4 / .mq5 ファイルを持っている場合は、「インジケーターのソース(.mq4 / .mq5)から自動入力する」を開き、「ファイルを選択」でファイルを選ぶか、ソースを貼り付けて「貼り付けたソースを読み取る」を押します。

- 外部パラメータが、順番・型・初期値ごと自動で入力されます。
- ファイルを選んだ場合は、インジケーター名と MT4 / MT5 の区別も自動で入ります。
- バッファの一覧(番号・名前・描画の種類)が表示されます。「買い」「売り」ボタンで、そのままサインのバッファ番号に設定できます。
- 名前に Buy / Up・Sell / Down などが含まれるバッファは、買い・売りを推定して自動で設定します。推定なので、必ず確認してください。
STEP 3
バッファ番号を調べる
バッファ番号は、インジケーターが持っている値の入れ物の番号で、0 から数えます。買いの矢印がバッファ 0、売りの矢印がバッファ 1…のように割り当てられています。ソースがない場合は、次のどちらかの方法で調べます。
方法1:データウィンドウで確認する(おすすめ)
- データウィンドウを開く
MT4・MT5 のメニュー[表示]→[データウィンドウ](Ctrl+D)を開きます。
- サインが出ている足にマウスを合わせる
チャート上で買いの矢印が出ている足にマウスカーソルを合わせると、データウィンドウにインジケーターの値が並びます。
- 値が入っている行を数える
インジケーター名の下に並ぶ値のうち、上から 0, 1, 2… と数えた番号がバッファ番号です。買いの矢印の足で値が入り、売りの矢印の足では空になる行が「買いサインのバッファ」です。
非表示のバッファがあるインジケーターでは、データウィンドウの並びと番号がずれることがあります。うまく動かないときは、番号を1つずつ変えて試すか、方法2も確認してください。
方法2:「色の設定」タブで確認する(MT4)
MT4 ではインジケーターのプロパティの「色の設定」タブに、線や矢印がバッファ番号の順に並んでいます。一番上が 0、次が 1 です。MT5 の「色」タブは並び方が違うことがあるため、方法1またはソースでの確認をおすすめします。
STEP 4
サインの判定方式を選ぶ

| インジケーターの形 | 選ぶ判定方式 | 入力するもの |
|---|---|---|
| 上下の矢印やサインが出る | 値が入ったら | 買い矢印・売り矢印のバッファ番号 |
| 移動平均線のような2本のラインのクロス | 2本の交差 | ラインA(短期)・ラインB(長期)のバッファ番号 |
| RSI・CCI のようなオシレーター | 閾値超え | バッファ番号・水準(例:30 / 70)・上抜け/下抜け |
- 値が入ったら(矢印など)
- サインのない足のバッファは空(EMPTY_VALUE)になっている前提です。「値が 0 のときもサインなしとみなす」は、0 を空として使うインジケーターが多いため、通常はオンのままにします。「新たに点灯したときだけ」をオンにすると、色付きラインのように値が出続けるインジケーターでも、出始めの1回だけエントリーします。
- 2本の交差
- ラインA がラインB を下から上に抜けたら買い、上から下に抜けたら売りです。逆にしたい場合は、A と B の番号を入れ替えます。
- 閾値超え
- 例:RSI が 30 を上抜けたら買い、70 を下抜けたら売り。水準は、作った EA の設定画面からも変更できます。
- 判定足
- 「確定足(shift=1)」のままをおすすめします。足が確定してから判定するので、サインが出たり消えたりする影響を受けません。そのぶんエントリーは次の足の始まりになります。「未確定の足(shift=0)」はエントリーが早い代わりに、消えたサインでも売買してしまうことがあります。
STEP 5
売買設定を決める

ロット・資金管理
| ロットの決め方 | どう決まるか | 向いている人 |
|---|---|---|
| 固定ロット | 毎回同じロット | はじめての方・動作確認 |
| 残高の%リスク | 損切りにかかったときの損失が、残高の指定%になるように計算 | 1回の損失を一定に抑えたい方 |
| 残高に比例(複利) | 「残高○○ごとに○ロット」の割合で増減 | 残高に合わせてロットを増やしたい方 |
- 固定ロット
- 最初は業者の最小ロット(0.01 など)で試してください。「残高の%リスク」で損切りがないときなど、ロットを計算できないときもこの値を使います。
- リスク(残高の%)
- 例:残高 100 万円・2%・損切り 30pips なら、30pips 逆行して損切りされたときの損失が約 2 万円になるロットで発注します。損切り(pips)の設定が必要です。一般的には 1〜2%程度が目安とされます。
- 残高いくらごとに・何ロット
- 例:100,000 ごとに 0.1 ロット → 残高 250,000 なら 0.25 ロット、残高 80,000 なら 0.08 ロット。金額は口座の通貨(円口座なら円)で指定します。
- 最大ロット
- 計算したロットの上限です。残高が大きく増えたときや計算の思わぬ結果に備えて、設定しておくと安心です。0 で制限なし。
どの方式でも、業者の最小ロット・最大ロット・刻み(0.01 単位など)に合わせて自動で調整します。計算結果が最小ロットに満たない場合は最小ロットで発注するため、そのぶんリスクは指定%より大きくなります。
決済ルール
- 損切り・利確(pips)
- エントリー価格から何 pips 離れたところに損切り・利確の注文を置くかです。0 にすると置きません。業者が決めた最小距離より近い場合は、EA が自動で広げます。
- 反対サインが出たとき
- 「決済してドテン」は保有中のポジションを決済して反対方向にエントリーします。「決済のみ」は決済だけ、「何もしない」は損切り・利確に任せます。
- トレーリングストップ
- 利益が伸びたときに、損切りを価格の後ろから追いかけるように動かして、利益を守る仕組みです。例:開始 20・トレール幅 15 → 利益が 20pips を超えたら、損切りを現在値から 15pips 後ろへ動かします。その後も価格が有利に動くたびに損切りを動かし、不利な方向には戻しません。「更新する最小幅」は、損切りを動かす最小の値幅です(細かく動かしすぎないため)。
- 建値移動
- 一定の利益が出たら、損切りをエントリー価格(建値)の近くへ動かして、負けにくくする仕組みです。例:発動 20・幅 1 → 利益が 20pips を超えたら、損切りを「買いならエントリー価格+1pips、売りなら−1pips」に動かします。トレーリングストップと同時に使えます。
エントリー条件
- エントリー方向
- 「買いのみ」「売りのみ」にすると、片方向だけエントリーします(反対サインでの決済は行います)。
- 最大スプレッド(pips)
- スプレッドがこの値より広いときはエントリーしません。指標発表時などの不利な約定を避けられます。0 で制限なし。
- 許容スリッページ(ポイント)
- 注文時に価格がずれても約定を認める幅です。5桁の業者では 10 ポイント=1 pips です。
- マジックナンバー
- この EA の注文を見分ける番号です。同じ口座で複数の EA を動かすときは、EA ごとに違う番号にします。
- 1pips のポイント数
- 通常は 0(自動)のままで大丈夫です。ゴールドや株価指数など、業者によって pips の考え方が違う銘柄では、1 pips が何ポイントかを入力します。
- 1ポジ制限
- オンにすると、保有中は新しいエントリーをしません。オフにすると、サインが出るたびにポジションを追加します。
STEP 6
EAを保存してコンパイルする

- ファイルをダウンロードする
「ファイルをダウンロード」を押すと、
インジケーター名_EA.mq4(MT5 は .mq5)が保存されます。 - Experts フォルダに移す
MT4・MT5 の[ファイル]→[データフォルダを開く]で、MT4 は
MQL4\Experts、MT5 はMQL5\Expertsにファイルを移します。 - MetaEditor で開いてコンパイルする
MetaEditor(F4)で移したファイルを開き、[コンパイル]ボタン(F7)を押します。下の「エラー」タブに 0 errors と出れば完成です。
- ナビゲーターに表示させる
MT4・MT5 のナビゲーターの「エキスパートアドバイザ」を右クリック →「更新」を押すと、作った EA が表示されます。
「コードをコピー」を使う場合
MetaEditor で[ファイル]→[新規作成]→「エキスパートアドバイザ(テンプレート)」で空の EA を作り、中身をすべて消してから貼り付けて保存・コンパイルします。慣れないうちはダウンロードの方が確実です。
STEP 7
バックテストで動きを確かめる
いきなり動かさず、まずストラテジーテスターでサインどおりに売買しているかを確認します。
- ストラテジーテスターを開く
メニュー[表示]→[ストラテジーテスター](Ctrl+R)を開きます。
- EA と条件を選ぶ
作った EA、通貨ペア、時間足、期間を選びます。「ビジュアルモード」にチェックを入れると、チャートで売買の様子を見られます。
- サインと売買を見比べる
テスト中のチャートにインジケーターを表示し、矢印やクロスが出た次の足でエントリーしているかを確認します(確定足で判定するため、1本遅れるのが正常です)。
結果のレポートは、EAバックテスト診断・比較ツールに読み込むと、改善ポイントや他の設定との比較を確認できます。
STEP 8
チャートで動かす
- EA をチャートに入れる
ナビゲーターから EA を、動かしたい通貨ペア・時間足のチャートにドラッグします。
- 自動売買を許可する
設定画面の「全般(共通)」タブで、MT4 は「自動売買を許可する」、MT5 は「アルゴ取引を許可」にチェックを入れます。「パラメーターの入力」タブでは、ロットなどを変更できます。
- ツールバーのボタンをオンにする
MT4 は[自動売買]、MT5 は[アルゴ取引]ボタンをオンにします。チャート右上のアイコンが有効の表示になれば稼働中です。
- ログを確認する
MT4 は「ターミナル」、MT5 は「ツールボックス」の「エキスパート」タブに、エラーが出ていないか確認します。
動かしたあとに気をつけること
- パソコンを閉じたり MT4・MT5 を終了したりすると EA も止まります。24時間動かす場合は VPS を使います。
- 最初はデモ口座で数週間動かし、バックテストと同じような売買になっているか確かめてから本番口座に移ってください。
TROUBLE
困ったときは
エントリーしない
- インジケーター名が違う:「エキスパート」タブに「cannot open file」「cannot load custom indicator」や、EA が出す「インジケーター「○○」を読み込めません」などのメッセージが出ていないか確認します。STEP 1 のファイル名を見直してください。
- バッファ番号が違う:STEP 3 の方法で番号を確認します。
- パラメータの順番・型が違う:STEP 2 を見直します。区切り用の文字列を飛ばしていないかも確認します。
- スプレッドが広い:「スプレッド拡大のため見送り」と出ていたら、最大スプレッドを広げます。
- 自動売買がオフ:STEP 8 の2と3を確認します。
- エントリー方向・1ポジ制限:買いのみ/売りのみになっていないか、すでにポジションを持っていないか確認します。
毎回の足でエントリーしてしまう・同じサインで何度もエントリーする
サインの足だけでなく、ずっと値が入り続けるインジケーターです。「値が入ったら」方式の「新たに点灯したときだけエントリーする」をオンにします。それでも続く場合は、「値が 0 のときもサインなしとみなす」もオンにします。
サインから1本遅れてエントリーする
確定足(shift=1)で判定しているため正常です。足が確定してサインが消えないことを確かめてから、次の足の始まりでエントリーします。
バックテストと実際の売買が違う
インジケーターがリペイント(過去のサインが後から消えたり移動したりする)している可能性があります。チャートを見ていて、一度出た矢印が消えたり位置が変わったりする場合はリペイント型です。このタイプはバックテストの成績が実際より良く見えるので注意してください。
コンパイルでエラーが出る
- 拡張子が合っているか確認します(MT4 は .mq4、MT5 は .mq5)。MT4 用のコードを MT5 の MetaEditor でコンパイルするとエラーになります。
- コピーして貼り付けた場合は、ツールの「ファイルをダウンロード」で保存し直してください。
- ツールで入力を変えた場合は、新しいコードで保存し直します。
ロットが思ったより大きい・小さい
- 「残高の%リスク」では、損切り幅が狭いほどロットが大きくなります。損切り(pips)と最大ロットを確認してください。
- 計算したロットが業者の最小ロットより小さいときは、最小ロットで発注します。「エキスパート」タブに「最小ロット未満のため」と表示されます。
- 計算には業者が提供する「1ティックあたりの損益額」を使います。クロス円以外の通貨ペアや CFD では、デモ口座で実際の損失額が想定どおりか確認してください。
トレーリングストップ・建値移動が動かない
- 利益が「開始(利益 pips)」「発動(利益 pips)」を超えるまでは動きません。
- 業者の最小距離(ストップレベル)より現在値に近い位置には損切りを置けないため、そのぶん離れた位置になります。
- EA の設定画面で「トレール幅」「建値移動の発動」が 0 になっていると使われません。
MT4 のインジケーターを MT5 で使いたい
EA は同じプラットフォーム用のインジケーターしか呼び出せません。ソースがある場合は、MQL4→MQL5変換ツールで MT5 用に変換してからコンパイルし、MT5 の Indicators フォルダに入れてください。
TERMS
用語集
- EA(エキスパートアドバイザー)
- MT4・MT5 で自動売買を行うプログラムです。
- iCustom(アイカスタム)
- EA からカスタムインジケーターを呼び出して値を読む仕組みです。このツールが作る EA は iCustom でインジケーターの値を読んでいます。
- バッファ
- インジケーターが足ごとに値を入れておく入れ物です。番号は 0 から数えます。
- EMPTY_VALUE
- 「値なし」を表す特別な値です。矢印が出ていない足のバッファには通常この値が入ります。
- shift(判定足)
- 何本前の足で判定するかです。0 が今動いている足、1 がひとつ前の確定した足です。
- pips / ポイント
- ポイントは価格の最小単位、pips は FX で使う値幅の単位です。小数点以下3桁・5桁の業者では 1 pips=10 ポイントです。
- マジックナンバー
- EA が自分の注文を見分けるための番号です。
- ドテン
- 保有中のポジションを決済し、同時に反対方向のポジションを持つことです。
- トレーリングストップ
- 価格が有利に動くのに合わせて、損切りの位置を追いかけるように動かす決済方法です。
- 建値移動(ブレークイーブン)
- 一定の利益が出たら、損切りをエントリー価格付近に動かして、損失になりにくくすることです。
- 資金管理
- 口座残高に対して、1回の取引でどれだけのリスクを取るかを決めることです。このツールでは「残高の%リスク」「残高に比例」でロットを自動計算できます。
- リペイント
- 一度表示されたサインが、後から消えたり位置が変わったりすることです。
- コンパイル
- ソースコード(.mq4 / .mq5)を、MT4・MT5 で実行できるファイル(.ex4 / .ex5)に変換することです。
NOTES
利用上の注意
- このツールはEA作成を補助するものです。生成したコードや、そのEAによる売買の結果について、利益を保証するものではありません。
- インジケーターの作り方によっては、想定どおりにサインを読み取れないことがあります。必ずバックテストとデモ口座で動作を確認してからご利用ください。
- インジケーターの利用規約で EA からの利用や改変が禁止されていないか、事前に確認してください。
- 入力内容はブラウザ内でのみ処理され、サーバーには送信しません。入力の保存はお使いのブラウザにのみ行います。












