『新メタトレ入門本』EA:新規ファイルの作成・基本プログラム(if文)


新MT4対応 FXメタトレーダープログラミング入門』(新メタトレ入門本)連動企画です。

今回から、本書の第4章「エキスパートアドバイザー(EA)のプログラミング」に入ります。

まずは、「4-1 新規ファイルの作成」と「4-2 EAの基本プログラム」を取り上げますが、EAのプログラミングはMT4とMT5とで異なる点が多いので、記事を分けて説明します。

今回の記事では、基本的な文法であるif文までを扱います。

【目次】
第1章 メタトレーダーの紹介
第2章 スクリプトのプログラミング
第3章 カスタム指標のプログラミング
第4章 エキスパートアドバイザー(EA)のプログラミング
  4-1 新規ファイルの作成
  4-2 EAの基本プログラム
  4-3 ストラテジーテスターによるEAの動作確認
  4-4 EAのサンプルプログラム
  4-5 EAのデバッグ
  4-6 ストラテジーテスターによるEAの最適化
  4-7 EAの自動売買のためのプログラミング

本書アップデート情報

このセクションでは、本書内容のアップデートはありません

関連するMT5情報

新規ファイルの作成

MT5のメタエディターの「新規作成」メニューでは、EAとして2種類の選択項目があります。

テンプレート」「自動生成」のどちらかを選択することになりますが、本書は、EAのプログラムをゼロから作成する「テンプレート」の方を対象としています。

「自動生成」の方はMT4にはないMT5特有の機能ですが、プログラミングの考え方が違ってくるので、ここでの説明は省略します。

テンプレート」として作成されるプログラムは、スクリプトやカスタム指標と同じく「#property strict」がないだけで、基本的にMT4で作成されるプログラムと同じです。

EAの基本プログラム

EAの売買ロジックで必須となる条件分岐については、MQL4とMQL5とで違いはありません

条件式で「&&」と「||」の評価の順番が旧MQL4と新MQL4とで異なりますが、MQL5は新MQL4と同じで、「&&」が「||」より先という仕様になっています。

したがって

if(条件1 || 条件2 && 条件3)

という条件式の場合、「条件2 && 条件3」を先に評価することになるはずです。ただし、コンパイル時に

「check operator precedence for possible error; use parentheses to clarify precedence」

という警告が出ることがあります。そのままでも問題と思いますが、警告が気になるようでしたら

if(条件1 || (条件2 && 条件3))

のように先に評価させたい部分を「(」「)」で囲んでおくとよいでしょう。

前へ

『新メタトレ入門本』カスタム指標:独自のテクニカル指標の作り方・デバッグ

次へ

『新メタトレ入門本』EAの基本プログラム