サービス/商品
お客様サポート
Trader's Market
FXONの特徴 arrow プロモーション arrow パートナー arrow
サービス/商品
お客様サポート
Trader's Market

口座開設方法や取引ツールの使い方、ヘルプデスクのQA集など、お客様向けサポート情報を掲載しています。

Web Trader Web Trader
FXONの特徴 FXONの特徴 FXONの特徴
arrow
プロモーション プロモーション プロモーション
arrow
パートナー パートナー パートナー
arrow
Trader's Market Trader's Market Trader's Market
bg

PC編 エキスパートアドバイザ(EA)を作成する方法

good

この記事は:

に公開されています

に更新されています

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)が反映

この記事はお役に立ちましたか?

thumb_down いいえ
thumb_down はい

0人0人がこの記事が役に立ったと言っています

貴重な意見をいただきありがとうございます。

送信