Web Lukes
📄

【完全初心者向け】MT4 EA(自動売買)の作り方|30分で動くEAを作ろう

公開日: 2025/12/13更新日: 2025/12/13

「FXの自動売買をやってみたい...」 「でもEAってプログラミングでしょ?難しそう...」 「何から始めればいいかわからない...」

そんな悩み、めちゃくちゃわかります。

私も最初は「EA=プロのエンジニアが作るもの」だと思ってました。ネットで調べても業者の宣伝ばかりで、「結局どうやって作るの?」という肝心な情報が全然出てこない。

でも実は、EAって思ったより簡単に作れるんです。

この記事では、プログラミング完全未経験のあなたが、30分で実際に動くEAを作れるようになるまでを、一歩一歩丁寧に解説します。

そもそもEAって何?

EA(Expert Advisor)は、MT4で動く自動売買プログラムのことです。

日常生活で例えると...

  • 手動トレード = 毎朝自分で目覚ましを止めて起きる
  • EA = 目覚ましが鳴ったら自動でコーヒーが淹れられて、カーテンが開く

つまり、「こういう条件になったら買う」「こういう条件になったら売る」というルールを書いておけば、あなたが寝ている間も、仕事している間も、自動で取引してくれるプログラムです。

準備するもの

必要なものはMT4だけです。すでにインストールしてあればOK。

まだの人は、どこのFX業者でもいいのでMT4をダウンロードしてください。デモ口座で大丈夫です。

Step 1: MetaEditorを起動しよう

EAを作るには、MT4に付属しているMetaEditorというプログラミングツールを使います。

起動方法

  1. MT4を開く
  2. キーボードで F4キー を押す(または メニュー → ツール → MetaQuotes言語エディタ)

これだけ!MetaEditorが起動します。

![MetaEditorが起動した画面のイメージ]

「うわ、なんか難しそうな画面...」と思うかもしれませんが、大丈夫。必要な部分だけ使えばOKです。

Step 2: 新しいEAファイルを作成

2-1. 新規作成ウィザードを開く

  1. MetaEditorのメニューから ファイル → 新規作成(または Ctrl+N)
  2. 「エキスパートアドバイザ(テンプレート)」を選択して「次へ」

2-2. EA情報を入力

  • 名前: MyFirstEA(半角英数字で好きな名前)
  • 著作者: あなたの名前(空欄でもOK)
  • リンク: 空欄でOK

「次へ」→「次へ」→「完了」をクリック。

すると、こんなコードが自動生成されます:

MQL4
//+------------------------------------------------------------------+
//| MyFirstEA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
}
//+------------------------------------------------------------------+

「うわ、もう意味わからん...」って思いました? 大丈夫、一つずつ説明します。

Step 3: コードの意味を理解しよう

このコードには3つの重要な部分があります。

OnInit() - 起動時に1回だけ動く

MQL4
int OnInit()
{
// ここに書いたコードは、EAを起動した瞬間に1回だけ実行される
return(INIT_SUCCEEDED);
}

EAをチャートにセットした瞬間に、1回だけ実行されます。 初期設定とか、最初の挨拶とかに使います。

OnDeinit() - 終了時に1回だけ動く

MQL4
void OnDeinit(const int reason)
{
// ここに書いたコードは、EAを停止した時に1回だけ実行される
}

EAを外したり、MT4を閉じたりする時に動きます。 お片付け処理に使います。

OnTick() - 価格が動くたびに動く ⭐重要

MQL4
void OnTick()
{
// ここに書いたコードは、価格が変わるたびに実行される
// 売買ロジックはここに書く!
}

これが一番大事! 為替レートが動くたびに(1秒に何回も)実行されます。 「この条件で買う」「この条件で売る」という売買ロジックは、ここに書きます。

Step 4: 最初のEAを書いてみよう

いきなり売買するEAは難しいので、まずは**「動いてる!」と確認できる**シンプルなEAを作りましょう。

4-1. OnInit()にメッセージを追加

OnInit()の中に1行追加します:

MQL4
int OnInit()
{
Print("こんにちは!EAが起動しました!");
return(INIT_SUCCEEDED);
}

4-2. OnTick()に現在価格を表示

OnTick()の中に1行追加します:

MQL4
void OnTick()
{
Print("現在の価格: ", Ask);
}

完成コード

全体はこうなります:

MQL4
//+------------------------------------------------------------------+
//| MyFirstEA.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
#property version "1.00"
#property strict
int OnInit()
{
Print("こんにちは!EAが起動しました!");
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
Print("EAを終了します。お疲れ様でした!");
}
void OnTick()
{
Print("現在の価格: ", Ask);
}

Step 5: コンパイル(変換)しよう

書いたコードを、MT4が理解できる形式に変換します。

  1. MetaEditorで F7キー を押す(または ツールバーの「コンパイル」ボタン)
  2. 下のウィンドウに「0 error(s), 0 warning(s)」と表示されればOK!

もしエラーが出たら、コードをもう一度確認してください。スペルミスや、セミコロン(;)の付け忘れがよくある原因です。

Step 6: EAを動かしてみよう!

6-1. MT4に戻る

MetaEditorからMT4に戻ります(Alt+Tabか、タスクバーでMT4をクリック)。

6-2. EAをチャートにセット

  1. MT4の左側「ナビゲーター」ウィンドウで エキスパートアドバイザ を展開
  2. MyFirstEA をダブルクリック(またはチャートにドラッグ)
  3. 設定画面が出たら「OK」をクリック

6-3. 自動売買を有効にする

MT4上部の「自動売買」ボタンをクリックして、緑色(ON)にします。

6-4. 動作確認

MT4下部の「エキスパート」タブをクリックすると...

Code
こんにちは!EAが起動しました!
現在の価格: 149.123
現在の価格: 149.125
現在の価格: 149.124
...

おめでとう!!🎉 あなたの初めてのEAが動きました!!

Step 7: 少しだけレベルアップ

せっかくなので、もう少しだけ機能を追加してみましょう。

買値と売値の両方を表示

MQL4
void OnTick()
{
Print("買値(Ask): ", Ask, " / 売値(Bid): ", Bid, " / スプレッド: ", (Ask - Bid) * 10000, "pips");
}

特定の条件でだけメッセージを出す

MQL4
void OnTick()
{
// スプレッドが2pips以下の時だけ表示
double spread = (Ask - Bid) * 10000;
if(spread <= 2.0)
{
Print("スプレッド狭い!今がチャンス! ", spread, "pips");
}
}

よくあるエラーと対処法

「';' expected」エラー

原因: 行末のセミコロン(;)を忘れている

MQL4
// ❌ ダメな例
Print("Hello")
// ✅ 正しい例
Print("Hello");

「'OnInit' - function already defined」エラー

原因: OnInit()が2つある。コピペで重複した可能性。

EAがチャートに表示されない

原因: コンパイルしていない、またはエラーがある。F7でコンパイルを再実行。

次のステップ

おめでとうございます!これであなたはEA開発者の第一歩を踏み出しました。

「え、これだけ?売買はしないの?」

そう、今回は売買まではやっていません。でも、EAの基本構造を理解したことが超重要なんです。

次の記事では、実際に移動平均線を使って売買するEAを作ります。今回学んだOnTick()の中に、売買ロジックを書いていきます。

📚 次に読む記事: 移動平均線クロスEAを作ろう

まとめ

  • EA = MT4で動く自動売買プログラム
  • MetaEditor = EAを書くためのツール(F4で起動)
  • OnInit() = 起動時に1回実行
  • OnTick() = 価格が動くたびに実行(売買ロジックはここ)
  • コンパイル = F7でコードを変換

最初は「Print()で文字を表示する」だけでいいんです。それが動いた時の感動を覚えておいてください。

その小さな一歩が、将来の自動売買システムにつながります。

プログラミングは「動いた!」の積み重ね。焦らず、一歩ずつ進んでいきましょう。応援しています! 🚀

🎁おすすめツール・サービス

FX自動売買VPSなら50%OFF

キャンペーンで月1,790円〜。MT4/MT5プリインストール済み、自動復旧機能付き。14日間無料お試し。

シンクラウドデスクトップ for FX
ゴトー日EAを探しているならソースコード付

4年で資金4.7倍のバックテスト実績。ソースコード付きで自由にカスタマイズ可能。

ゴトー日EA Ultimate版(3,980円)

※上記リンクにはプロモーション(広告)が含まれています

🔮
MEMBERSHIP

量子相場謀略|ホソノP

ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。

✓EAソースコード公開
✓バックテスト生データ共有
✓リアルタイム相場分析
✓メンバー限定記事
メンバーシップに参加する※ noteアカウントで簡単登録

📚あわせて読みたい

📄

【コピペOK】移動平均線クロスEAの作り方|ゴールデンクロス・デッドクロスで自動売買

移動平均線のゴールデンクロス・デッドクロスで自動売買するEAを作ります。コード全文公開、コピペですぐ動く!初心者でも理解できるよう1行ずつ解説します。

FX自動売買2025/12/13
📄

【MQL4入門】プログラミング未経験者のための基礎文法ガイド

MQL4のプログラミングを始めたいけど、変数?関数?何それ?という完全初心者向け。日常の例えを使って、EAを書くために必要な基礎文法をゼロから解説します。

FX自動売買2025/12/13
📄

【コピペOK】RSI逆張りEAの作り方|売られすぎ・買われすぎで自動売買

RSIが30以下で買い、70以上で売りという逆張りEAを作ります。移動平均線クロス(順張り)との違いも解説。コード全文公開、初心者でも理解できます。

FX自動売買2025/12/13
📄

🤖【革命】ChatGPTでEA開発!プログラミング初心者でも自動売買が作れる時代に

ChatGPTを使えばプログラミング未経験でもMT4/MT5のEA(自動売買)が作れる?実際に試した人の声と、メリット・デメリット、成功のコツをまとめました。EA開発のハードルが劇的に下がっています。

FX自動売買2026/1/18
📄

【2026年最新】AIでFXのEAは本当に作れるのか?ChatGPT・Claude比較とMQL4の習得難易度を徹底解説

『AIでEAを作れる』と聞くけど本当?ChatGPT、Claude、Copilotを使ったEA開発の実態と限界、MQL4/MQL5の習得時間・難易度を実体験ベースで徹底解説。プログラミング未経験者に向けた完全ガイド。

programming2026/1/28
💻

😤『cBot・MQL4・MQL5・Python、どれから始めればいいの!?』習得時間を徹底比較【実体験ベース】

自動売買を始めたいけど、cBot(C#/Python)・MQL4(MT4)・MQL5(MT5)・Python、どれを学ぶべき?プログラミング未経験者〜経験者別に習得時間の目安と効率的な学習順序を実体験ベースで解説。

プログラミング・開発2026/1/13