Select Language

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

MetaTrader5でエキスパートアドバイザ(EA)を作成する際、メタエディターと呼ばれるプログラムツールを利用し、MetaTrader5専用のプログラミング言語であるMQL5というプログラミング言語を使ってプログラムを記述します。ここでは、MetaTrader5にて、エキスパートアドバイザ(EA)を作成する方法を説明します。

手順1

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

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

手順2

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

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

手順3

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

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

「エキスパートアドバイザ(テンプレート)」を選択した場合、プログラムのデフォルトには、エキスパートアドバイザ(EA)の名称、著作権、パラメータ、関数など、必要最低限の項目のみ記述されています。「エキスパートアドバイザ(自動生成)」を選択した場合は、エキスパートアドバイザ(EA)の名称、著作権、パラメータ、関数に加え、MetaTrader5に標準搭載されているインディケータのソースがプログラムのデフォルトに記述されています。

手順4

作成するエキスパートアドバイザ(EA)の名称、著作者、表示させるリンクを入力します。必要に応じて、パラメータを設定後、「次へ」ボタンをクリックします。

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

番号

項目名

説明

1

名前

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

2

著作者

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

3

リンク

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

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

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

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

手順5

設定するイベントハンドラ(特定の条件を満たすことで呼ばれる関数)を設定します。

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

番号

項目名

説明

1

OnTrade

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

2

OnTradeTransaction

OnTradeTransactionは、イベントが発生するときにエキスパートアドバイザ(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の違い

MQL4とMQL5は似ているものの、相互の互換性はありません。MQL4はC言語に似た構造を持つのに対し、MQL5はC++に似た構文で作成されます。MetaTrader4で利用していたエキスパートアドバイザ(EA)をそのままMetaTrader5で利用することはできないので注意が必要です。

手順8

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

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

プログラムの構文が間違っていたりすると、以下のようにコンパイルエラーが発生します。

**** ****

プログラムで間違えやすいのが「セミコロン」のつけ忘れや「全角スペースの使用」です。見た目で半角と全角は区別しにくいため、コンパイルエラーが出たときは確認してください。

手順9

コンパイル完了後、ナビゲータの指定フォルダ内に作成したエキスパートアドバイザ(EA)が反映されます。

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

手順10

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

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

Date

作成日

 : 2021.04.08

Update

最終更新

 : 2021.11.18

著者情報

中丸 貴仁 | Takayoshi Nakamaru

マニュアル制作コンサルタント歴12年 経営学修士(MBA)

arw
Takayoshi Nakamaru

マニュアル制作会社フィンテックスにて、マニュアルに関する様々な顧客課題解決に従事。金融系からエンターテインメント系まで様々な経験から幅広い業務知識を得て、「分かりやすいマニュアル」のあるべき姿を提示。複数の大企業で、外部マニュアル制作プロジェクトマネージャーを兼務している。

【企業情報】
http://www.fintecs.co.jp/profile/

監修者情報

高木 明 | Akira Takagi

システムエンジニア・MetaTraderアドミニストレータ

arw
Akira Takagi

2014年、ブラジルUninove大学 コンピュータ科学科を卒業し、その後、様々なシステム開発に携わる。
2019年にFXサービス立ち上げに開発者として参加。その後、MetaTraderのプラグインおよびAPIの開発にも従事。MetaQuotes社認定の、MetaTrader5 Administratorの資格を保持しており、開発だけでなく、コンサルティングやアドバイザーとしても活躍している。


免責事項:Disclaimerarw

当サイトの、各コンテンツに掲載の内容は、情報の提供のみを目的としており、投資に関する何らかの勧誘を意図するものではありません。
これらの情報は、当社が独自に収集し、可能な限り正確な情報を元に配信しておりますが、その内容および情報の正確性、完全性または適時性について、当社は保証を行うものでも責任を持つものでもありません。投資にあたっての最終判断は、お客様ご自身でなさるようお願いいたします。

本コンテンツは、当社が独自に制作し当サイトに掲載しているものであり、掲載内容の一部または、全部の無断転用は禁止しております。掲載記事を二次利用する場合は、必ず当社までご連絡ください。

  • Facebook
  • Twitter
  • LINE

Myforexでは、このウェブサイトの機能向上とお客様の利便性を高めるためにクッキー使用しています。本ウェブサイトでは、当社だけではなく、お客様のご利用状況を追跡する事を目的とした第三者(広告主・ログ解析業者等)によるクッキーも含まれる可能性があります。利用の方針

クッキー利用に同意する