TitanFX 新規口座開設ボーナス

当社限定 3,000円プレゼント!

海外FX口座開設&キャッシュバック FXplus

Anniversasry 10万口座達成

メールのお問い合わせ

10:00~24:00 (平日/祝日) 16:00~24:00 (土曜/日曜)

(24時間受付:年中無休)

海外FX口座開設&キャッシュバック FXplus

最新のMetaTrader4/5に対応したご利用ガイド集

MetaTrader4/5 ご利用ガイド

EA・インディケータ・オブジェクト(PC編)

Updated最終更新:

【MT4/MT5】エキスパートアドバイザ(EA)を作成する方法

MetaTrader4(MT4)/MetaTrader5(MT5)では、メタエディタ―と呼ばれるプログラミングツールを使って、エキスパートアドバイザ(EA)を作成します。MT4/MT5のエキスパートアドバイザ(EA)は、それぞれMQL4/MQL5という専用のプログラミング言語で記述されます。

ここでは、MT4/MT5でエキスパートアドバイザ(EA)を作成する方法について説明します。

MT4/MT5それぞれの説明は、タブ切替でご確認いただけます。

mt4
mt5

手順1

メニューバーの「ツール」をクリックし、「メタエディター」を選択します。

オプション画面を開く オプション画面を開く

手順2

メタエディターが起動します。メニューバーの「新規作成」ボタンをクリックします。

メタエディターを起動 メタエディターを起動

手順3

「エキスパートアドバイザ (テンプレート)」を選択し、「次へ」ボタンをクリックします。

エキスパートアドバイザを作成 エキスパートアドバイザを作成

手順4

作成するエキスパートアドバイザ(EA)の名称・著作者・表示させるリンク、また必要に応じてパラメータを設定し、「次へ」ボタンをクリックします。名前以外の項目は空にしても問題ありません。

また、これ以降に入力・設定する内容は、後からコード上で追加・変更・削除を行うことが可能です。

エキスパートアドバイザのプロパティ設定 エキスパートアドバイザのプロパティ設定

番号

項目名

説明

1

名前

作成するエキスパートアドバイザ(EA)の名称を指定します。

2

著作者

作成するエキスパートアドバイザ(EA)の著作者を記載します。

3

リンク

表示させるリンクを入力します。

point 名前と著作者の情報は設定画面に表示される

登録した名称・著作者・リンクの情報は、エキスパートアドバイザ(EA)の設定画面に表示されます。

手順5

使用するイベントハンドラ(特定のタイミングで自動的に実行される関数)を設定します。

イベントハンドラを設定 イベントハンドラを設定

番号

項目名

説明

1

OnTrade

OnTradeは、取引が実行された時に注文・約定・ポジション・取引履歴の変更を処理するための関数です。

2

OnTradeTransaction

OnTradeTransactionは、TradeTransactionに区分されるイベントが発生する時にエキスパートアドバイザ(EA)で呼び出され、取引リクエストの実行結果を処理するための関数です。

3

OnTimer

OnTimerは、指定した時間ごとに動作する関数です。間隔となる時間は後から、コード上で指定・変更できます。

4

OnChartEvent

OnChartEventは、チャートでのイベントを処理する関数です。チャート上でオブジェクトの作成・削除・移動・編集など、イベントが発生する際に実行されます。

5

OnBookEvent

OnBookEventは、板情報が変更されたときにその変化を処理するための関数です。

手順6

使用するテスターイベントハンドラを設定します。

テスターイベントハンドラの設定 テスターイベントハンドラの設定

番号

項目名

説明

1

OnTester

OnTesterは、ストラテジーテスターで最適化結果を算出する計算式に使用する関数です。

2

OnTesterInit

OnTesterInitは、ストラテジーテスターで最適化を行う際のエキスパートアドバイザ(EA)の初期化を実行する関数です。

3

OnTesterPass

OnTesterPassは、ストラテジーテスターによる最適化中のデータ処理を実行する関数です。

4

OnTesterDeinit

OnTesterDeinitは、ストラテジーテスターによる最適化終了後のデータ処理を実行する関数です。

手順7

MQL4言語でプログラムを記述します。

MQL4プログラムを記述 MQL4プログラムを記述
knowledge MQL4とMQL5の違い

MT4向けに使われるMQL4と、MT5向けに使われるMQL5は、似ている部分も多いですが互換性は無く、MT5のエキスパートアドバイザ(EA)をMT4で利用することはできません。

MQL4はC言語に似た構造を持つのに対し、MQL5はC++に似た構文で作成され、処理の柔軟性やバリエーションが広がっています。

手順8

プログラムを記述し終えたら、ツールバーの「コンパイル」ボタンをクリックします。

コンパイルを実行 コンパイルを実行
point コンパイルエラーで確認すること

プログラムの構文が間違っている、特定のファイルが見つからないなど、コンパイル時に問題があると以下のようにエラーが発生します。

コンパイルエラー コンパイルエラー

MQL4によるプログラムで間違えやすいのは、「セミコロン」の付け忘れや「全角スペースの使用」です。発生したエラーには、ほとんどの場合その理由が書かれているので、よく確認してプログラムを修正してください。

手順9

コンパイルが完了すると、「ナビゲータ」欄に作成したエキスパートアドバイザ(EA)が反映されます。

コンパイル完了 コンパイル完了

手順10

メタエディターを閉じてMT4に戻り、「ナビゲータ」に作成したエキスパートアドバイザ(EA)が反映されていることを確認します。

ナビゲータに作成したエキスパートアドバイザ(EA)が反映 ナビゲータに作成したエキスパートアドバイザ(EA)が反映

手順1

メニューバーの「ツール」をクリックし、「MetaQuotes 言語エディタ」を選択します。

MetaQuotes 言語エディタ MetaQuotes 言語エディタ

手順2

メタエディターが起動します。メニューバーの「新規作成」ボタンをクリックします。

メタエディター メタエディター

手順3

「エキスパートアドバイザ (テンプレート)」または「エキスパートアドバイザ (自動生成)」を選択し、「次へ」ボタンをクリックします。

エキスパートアドバイザ エキスパートアドバイザ
point テンプレートと自動生成の違い

「エキスパートアドバイザ(テンプレート)」を選択した場合、デフォルトのプログラムにはパラメータや関数など、以降の手順で設定した項目だけが記述されます。「エキスパートアドバイザ(自動生成)」を選択した場合は上記の項目に加え、MT5で標準搭載されているインディケータなどのソースを追加できます。

手順4

作成するインディケータの名称・著作者・表示させるリンク、また必要に応じてパラメータを設定し、「次へ」ボタンをクリックします。名前以外の項目は空にしても問題ありません。

また、これ以降に入力・設定する内容は、後からコード上で追加・変更・削除を行うことが可能です。

パラメータを設定 パラメータを設定

番号

項目名

説明

1

名前

作成するエキスパートアドバイザ(EA)の名称を指定します。

2

著作者

作成するエキスパートアドバイザ(EA)の著作者を記載します。

3

リンク

表示させるリンクを入力します。

point 名前と著作者の情報は設定画面に表示される

登録した名称・著作者・リンクの情報は、エキスパートアドバイザ(EA)の設定画面に表示されます。

名前と著作者の情報は設定画面に表示 名前と著作者の情報は設定画面に表示

手順5

使用するイベントハンドラ(特定のタイミングで自動的に実行される関数)を設定します。

イベントハンドラ イベントハンドラ

番号

項目名

説明

1

OnTrade

OnTradeは、取引が実行された時に注文・約定・ポジション・取引履歴の変更を処理するための関数です。

2

OnTradeTransaction

OnTradeTransactionは、TradeTransactionに区分されるイベントが発生する時にエキスパートアドバイザ(EA)で呼び出され、取引リクエストの実行結果を処理するための関数です。

3

OnTimer

OnTimerは、指定した時間ごとに動作する関数です。間隔となる時間は後から、コード上で指定・変更できます。

4

OnChartEvent

OnChartEventは、チャートでのイベントを処理する関数です。チャート上でオブジェクトの作成・削除・移動・編集など、イベントが発生する際に実行されます。

5

OnBookEvent

OnBookEventは、板情報が変更されたときにその変化を処理するための関数です。

手順6

使用するテスターイベントハンドラを設定します。

テスターイベントハンドラ テスターイベントハンドラ

番号

項目名

説明

1

OnTester

OnTesterは、ストラテジーテスターで最適化結果を算出する計算式に使用する関数です。

2

OnTesterlnit

OnTesterInitは、ストラテジーテスターで最適化を行う際のエキスパートアドバイザ(EA)の初期化を実行する関数です。

3

OnTesterPass

OnTesterPassは、ストラテジーテスターによる最適化中のデータ処理を実行する関数です。

4

OnTesterDeinit

OnTesterDeinitは、ストラテジーテスターによる最適化終了後のデータ処理を実行する関数です。

手順7

MQL5言語でプログラムを記述します。

MQL5プログラム MQL5プログラム
knowledge MQL4とMQL5の違い

MT4向けに使われるMQL4と、MT5向けに使われるMQL5は、似ている部分も多いですが互換性は無く、MT4のエキスパートアドバイザ(EA)をMT5で利用することはできません。

MQL4はC言語に似た構造を持つのに対し、MQL5はC++に似た構文で作成され、処理の柔軟性やバリエーションが広がっています。

手順8

プログラムを記述し終えたら、ツールバーの「コンパイル」ボタンをクリックします。

ツールバーの「コンパイル」ボタン ツールバーの「コンパイル」ボタン
point コンパイルエラーで確認すること

プログラムの構文が間違っている、特定のファイルが見つからないなど、コンパイル時に問題があると以下のようにエラーが発生します。

**** ****

MQL5によるプログラムで間違えやすいのは、「セミコロン」の付け忘れや「全角スペースの使用」です。発生したエラーには、ほとんどの場合その理由が書かれているので、よく確認してプログラムを修正してください。

手順9

コンパイルが完了すると、「ナビゲータ」欄に作成したエキスパートアドバイザ(EA)が反映されます。

ナビゲータの指定フォルダ内に作成したエキスパートアドバイザ(EA)が反映 ナビゲータの指定フォルダ内に作成したエキスパートアドバイザ(EA)が反映

手順10

メタエディターを閉じてMT5に戻り、「ナビゲータ」に作成したエキスパートアドバイザ(EA)が反映されていることを確認します。

作成したエキスパートアドバイザ(EA)が反映 作成したエキスパートアドバイザ(EA)が反映

EA・インディケータ・オブジェクト(PC編)

Updated最終更新:

当社の「海外FX 業者レビュー」に掲載の情報は、情報の提供のみを目的としており、投資に関する何らかの勧誘を意図するものではありません。

なお、この情報は、編集時点で当社が信頼できると判断した情報源をもとに作成したものですが、その内容および情報の正確性、完全性または適時性について、当社は保証を行っておらず、また、いかなる責任を持つものでもありません。投資にあたっての最終判断は、お客様ご自身でなさるようお願いいたします。

本コンテンツは、当社(FXplus)が独自に制作したものであり、当サイトに掲載されているデーターの無断転用は禁止しております。掲載記事を二次利用する場合は、当社までご連絡ください。

もっとみる