MT4プログラミング」カテゴリーアーカイブ

MT4でプログラムを組み時に必要な知識に関する記事をカテゴライズします。

メタエディターでプログラムを作成修正する

メタエディターでプログラムを作成する時の手順、プログラムを作成・修正する時に知っておくと便利な機能をご紹介します。

1.新規でプログラムを作成する手順
2.ソースを作成・修正する上で便利な機能
名前リストを表示する
パラメータ情報を表示する
関数リストを表示する
定義へ移動する
コメントを挿入する
関数ヘッダーを挿入する
ブロックコメントを挿入する
大文字にする
小文字にする
行インデントを増やす
行インデントを減らす

1.新規でプログラムを作成する手順

MQL4ウィザードを使用すると簡単にプログラムの枠組みが作成できます。
既にあるプログラムソース全体をコピーして修正するやり方もありますが、新規に作成する時は、MQL4ウィザードを使用して枠を作成して、必要な部品を既存のソースからコピーしてくるやり方を励行するようにしています。

MQL4ウィザードは、
メニュー → ファイル → 新規作成 を選択するか、ツールバーの 『新規作成』 ボタンをクリックすると表示されます。

MT4メタエディターMQL4ウィザードを開く

MQL4ウィザード

MT4メタエディターMQL4ウィザード

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

MQL4ウィザード画面でエキスパートアドバイザー(テンプレート)を選択して次へをクリックします。

MT4メタエディターMQL4ウィザードエキスパートアドバイザーの一般プロパティ

1:名前(EAの名称)、2:著作権表示、3:HomePageのアドレスを入力します。

プログラム開始時に指定するパラメータがあれば、4の追加ボタンをクリックして必要なパラメータを追加します。

5:追加したパラメータは、名前とデータタイプと初期値を指定します。

入力した内容はこの後プログラムソース上で変更することもできます。

入力が完了したら、次へをクリックします。

MT4メタエディターMQL4ウィザードエキスパートアドバイザーのイベントハンドラー

イベントハンドラーを指定する画面が表示されますが、チェックせずに次へをクリックします。
(イベントハンドラーで処理する処理内容がある時はチャックしますが)

MT4メタエディターMQL4ウィザードのエキスパートアドバイザーのテスターイベントハンドラー

テスターイベントハンドラーを指定する画面が表示されますが、チェックせずに完了をクリックします。
(テスターハンドラーで処理する処理内容がある時はチェックしますが)

MT4メタエディターMQL4ウィザードエキスパートアドバイザーの作成されたソース

指定した名前で、EAの必要最低限のソースの枠組みが作成されます。

B.カスタムインディケーターを作成する

MT4メタエディターMQL4ウィザードのインディケーターの作成

MQL4ウィザード画面でカスタムインディケーターを選択して次へをクリックします。

MT4メタエディターMQL4ウィザードのインディケーターの一般プロパティ

1:名前(インディケータの名称)、2:著作権表示、3:HomePageのアドレスを入力します。

プログラム開始時に指定するパラメータがあれば、4:追加をクリックして必要なパラメータを追加します。

5:追加したパラメータは、名前とデータタイプと初期値を指定します。

入力した内容はこの後プログラムソース上で変更することもできます。

修正が完了したら、次へをクリックします。

MT4メタエディターMQL4ウィザードのインディケーターのイベントハンドラー

イベントハンドラーを指定する画面が表示されますが、チェックせずに次へをクリックします。
(イベントハンドラーで処理する処理内容がある時はチェックしますが)

カスタムインディケータの描画プロパティを指定する画面が表示されます。

MT4メタエディターMQL4ウィザードのインディケーターの描画プロパティー

1:サブウィンドウに表示する場合サブウィンドウに表示をチェックします。
メインウィンドウ(チャート上)に表示する場合サブウィンドウに表示をチェックしません。

プロット欄に計算した結果を表示するインディケータの表示形式を指定します。2:追加をクリックして必要な表示形式を追加します。

3:ラベル名とタイプと色を指定します。

入力した内容はこの後プログラムソース上で変更することもできます

指定が完了したら、完了をクリックします。

MT4メタエディターMQL4ウィザードのインディケーターの作成されたソース

指定した名前で、カスタムインディケーターの必要最低限のソースの枠組みが作成されます。

C.スクリプトを作成する

MT4メタエディターMQL4ウィザードのスクリプト選択

MQL4ウィザード画面でスクリプトを選択して次へをクリックします。

MT4メタエディターMQL4ウィザードのスクリプトの一般プロパティー

1.スクリプトの名前、2:著作権表示、3:HomePageのアドレスを入力します。

プログラム開始時に指定するパラメータがあれば、4:追加をクリックして必要なパラメータを追加します。

5:追加したパラメータは、名前とデータタイプと初期値を指定します。

入力した内容はこの後プログラムソース上で変更することもできます。

修正が完了したら、次へをクリックします。

MT4メタエディターMQL4ウィザードのスクリプトのソース

指定した名前で、スクリプトの必要最低限のソースの枠組みが作成されます。

2.ソースを作成・修正する上で便利な機能

名前リストを表示する

作成編集中のプログラムコードに挿入可能な関数名候補一覧を表示することができます。
関数名、定数名、型の列挙値が候補の一覧として表示されます。

先頭の一文字を入力して、メニュー → 編集 → 名前リスト を選択すると、入力した文字から始まる候補が一覧で表示されます。

MT4メタエディター名前リストの表示例1

上記の例は、dを入力して名前リストを表示した例です。

MT4メタエディター名前リストの表示例2

上記の例は、dを入力して名前リストを表示しておいて、eを入力した結果表示された例です。
MQL4ではアルファベットの大文字と小文字は区別されます。

アルファベットは大文字小文字が区別されて認識されます。
候補が表示された状態で2文字目を入力すると、入力した2つの文字に一致した候補が表示されます。
関数名や定数や列挙値をうろ覚えでも簡単に探すことができます。

ショートカットキー Ctl+Space で名前リストを表示する。

先頭数文字を入力して、Ctl+Spaceキーで名前リストを表示することもできます。
マウスを握る必要が無いので素早く簡単に名前リストを表示できます。

パラメータ情報を表示する

名前リストを使用して関数名を入力できたけれども関数のパラメータがわからない時、カーソルがある位置の関数のパラメータ情報を表示することができます。

関数名の後に続く ( の位置にカーソルを合わせて
メニュー → 編集 → パラメータ情報 を選択すると、関数のパラメータ情報が表示されます。

MT4メタエディターパラメータリストの表示例1

上記の例は、iMA() と入力して括弧の間にカーソルを置いてパラメータ情報を表示した例です。

MT4メタエディターパラメータリストの表示例2

左から順番に入力しますが、1番目のパラメータを入力し , を入力すると2番目のパラメータがハイライトされます。

ショートカットキー Ctl+Shift+Space でパラメータ情報を表示する。
関数名の後に続く ( の位置にカーソルを合わせて Ctl+Shift+Spaceキーでパラメータ情報を表示することもできます。
マウスを握る必要が無いので素早く簡単にパラメータ情報を表示できます。

関数リストを表示する

現在編集しているプログラムソースの全てのの宣言関数のリストを表示できます。

リストを表示するには、 メニュー → 編集 → 関数リスト を選択します。
関数リストが表示されます。

MT4メタエディター関数リストを表示する

表示された関数を選択すると、関数が定義されている行へジャンプします。

MT4メタエディター関数リストを表示する2

ツールバーの 『ファイル中の関数とメソッドのリスト』 ボタンをクリックしても関数リストを表示することができます。

ショートカットキー「Alt+M」を使用しても関数リストを表示することができます。

定義へ移動する

この機能は、関数や変数の定義あるいは宣言文の行へジャンプすることができます。

定義や宣言文を確認したい関数や変数にカーソルを置き、
メニュー → 編集 → 定義へ移動 を選択または
ツールバーの 『関数の定義へ移動する』 ボタンをクリックします。

MT4メタエディター定義へ移動

この例は『ExtCCIBuffer』にカーソルを置いて、移動します。

MT4メタエディター定義へ移動後の表示

定義あるいは宣言文が別のファイルにある場合は、そのファイルを開いてマウスカーソルを対応する位置に移動します。インクルードファイル(#include)への移動も行います。

ショートカットキー「Alt+G」を使用しても定義へジャンプすることができます。

また、マウスの右クリックで表示される、右クリックメニューの先頭からも定義へジャンプすることができます。

コメントを挿入する

コメント行にする

選択した各行の頭に”//”を挿入します。複数の行を選択して一気にコメント行にできます。

コメントにしたい行を選択してから、

MT4メタエディターコメント挿入1

メニュー → 編集 → 拡張 → コメント行にする を選択します。

MT4メタエディターコメント挿入2

下記の処理結果となり、コメント行となりました。

MT4メタエディターコメント挿入3

ショートカットキーは、マニュアルに記載がありますが日本語キーボードでは機能しないようです(2016年7月7日現在)

コメント行の解除

各選択行の頭から”//”を削除します。複数のコメント行を選択して一気にコメント解除できます。

コメント解除したい行を解除してから、

MT4メタエディターコメント解除1

メニュー → 編集 → 拡張 → コメント行の解除 を選択します。

MT4メタエディターコメント解除2

下記の処理結果となり、コメント行が解除されました。

MT4メタエディターコメント解除3

ショートカットキーは、マニュアルに記載がありますが日本語キーボードでは機能しないようです(2016年7月7日現在)

関数ヘッダーを挿入する

関数のヘッダコメントテンプレートを挿入します。
以下のような3行のコメントテンプレートが挿入されます。

//+——————————————————————+
//|                      |
//+——————————————————————+

関数ヘッダーを挿入したい位置にカーソルを置いて、

MT4メタエディター関数ヘッダー挿入1

メニュー → 編集 → 拡張 → 関数ヘッダー を選択します。

MT4メタエディター関数ヘッダー挿入2

関数ヘッダーブロックが挿入されました。

MT4メタエディター関数ヘッダー挿入3

ショートカットキー「Ctl+.」を使用しても関数ヘッダーを挿入することができます。

ブロックコメントを挿入する

1行ラインコメントを挿入します。

//—

1行ラインコメントを挿入したい位置にカーソルを置いて、
メニュー → 編集 → 拡張 → ブロックコメント を選択します。

MT4メタエディターブロックコメント挿入

ショートカットキー「Ctl+/」を使用しても1行ラインコメントを挿入することができます。

大文字にする

選択した文字列を大文字に変換できます。

MQL4ではアルファベットの大文字と小文字は区別されます。ソースを記述していくうちに定義の大文字小文字が混ざって混乱してしまった時に修正するのに便利だと思います。

大文字に変換したい文字列を選択して、
メニュー → 編集 → 拡張 → 大文字にする を選択します。

MT4メタエディター大文字にする

ショートカットキー「Ctrl+Shift+U」を使用しても大文字に変換できます。

小文字にする

選択した文字列を小文字に変換できます。

MQL4ではアルファベットの大文字と小文字は区別されます。ソースを記述していくうちに定義の大文字小文字が混ざって混乱してしまった時に修正するのに便利だと思います。

小文字に変換したい文字列を選択して、
メニュー → 編集 → 拡張 → 小文字にする を選択します。

MT4メタエディター小文字にする

ショートカットキー「Ctrl+U」を使用しても小文字に変換できます。

行インデントを増やす

プログラムのソースコードを人が読んでわかりやすいように段落を揃えます、その時に便利なのが行インデントです。

選択した行の頭に3つの空白文字(またはひとつのタブ文字)を挿入することができます。

行の先頭に空白を挿入したい行を選択するか、その行の頭にカーソルを置き、

MT4メタエディター行インデントを増やす1

メニュー → 編集 → 拡張 → 行インデントを増やす を選択します。

MT4メタエディター行インデントを増やす2

選択した行の先頭に3つの空白が挿入されました。

MT4メタエディター行インデントを増やす3

複数の行に空白を挿入する場合はそれらの行を選択してください。

行インデントを減らす

プログラムのソースコードを人が読んでわかりやすいように段落を揃えます、その時に便利なのが行インデントです。

選択した行の頭の3つの空白文字(またはひとつのタブ文字)を削除することができます。

行の先頭の空白を減らしたい行の先頭にカーソルを置き、

MT4メタエディター行インデントを減らす1

メニュー → 編集 → 拡張 → 行インデントを減らす を選択します。

MT4メタエディター行インデントを減らす2

選択した行の先頭に3つの空白が削除されました。

MT4メタエディター行インデントを減らす3

ショートカットキー「Tab+Shift」を使用しても3つの空白文字を削除できます。

メタエディターの起動 初期画面と初期設定

メタエディター(Meta Editor)はMQL4でプログラムを開発する開発環境を提供しています。ここでは、初めてメタエディターを開くときの注意点を紹介します。
MT4では、プログラミング言語MQL4を使ってエキスパートアドバイザー、カスタムインディケーター、スクリプト等のプログラムを作成することができます。これらのプログラムは自動トレードを実行したり、新しいアイディアのインディケータを実行したりすることができます。

1.メタエディターの起動方法
2.日本語表示にしましょう
3.ヘルプを開いて、英語のままの時は
4.データフォルダーについて(EA、インディケーター、スクリプトの保存場所)
5.ナビゲーターウィンドウを表示する

1.メタエディターの起動方法

・ツールバーから起動する

MT4ツールバーのメタエディターの起動ボタンをクリックします。

MT4メタエディターをツールバーから起動する

・メニューバーから起動する

MT4メニューバーのツール→メタエディターを選択します。

MT4メタエディターをメニューから起動するから

・F4キーで起動する

MT4のウィンドウでF4キーを押します。

2.日本語表示にしましょう

メタエディターを初めて開くと英語バージョンで開きます

メタエディターのメニューバー → View → Languages → Japanese を選択します。

MT4メタエディター初期画面英語版

言語の変更を適用するにはメタエディターの再起動が必要なので、restart ボタンをクリックしてメタエディターを再起動します。

MT4メタエディター再起動

メタエディターが日本語で表示されて起動しました。

MT4メタエディター初期画面日本語版

ヘルプを開いて、英語のままの時の対応

メニューバーのヘルプ→ヘルプトピックスを開いて、ヘルプの言語が英語のままの時は、以下の手順を試してみてください。

1.メニューバーのツール→オプションを選択して、オプションウィンドウを表示する。

MT4メタエディターオプション設定をメニューから表示する

2.オプションウィンドウのヘルプをクリックする。

MT4メタエディターオプションウィンドウ

3.メタエディターユーザーガイドが日本語で表示されます。

MT4メタエディターユーザーガイド日本語

3.データフォルダーについて(EA、インディケーター、スクリプトの保存場所)

MT4で実行するEA、インディケーター、スクリプトは必ずMT4のデータフォルダーの中のそれぞれのフォルダーの中に保存しなければなりません。

データフォルダーの開き方とPC上の場所について
メニューバー → ファイル → データフォルダーを開くを選択します。

MT4データフォルダーを開く

以下のようなフォルダーウィンドウが開きます。

MT4メタエディターデータフォルダーの構成

上部がMT4のデータフォルダーの最上位下位層となります。
下部がプログラム関連のMQL4フォルダーの構成となります。

データフォルダーのPC上の場所
Windows7の場合
C:\Users\UserName\AppData\Roaming\MetaQuotes\Terminal\71808ACDDF4589A555C107AF1E5AEBA0

1つのPCに複数のMT4がインストールされている場合、32桁の「71808ACDDF4589A555C107AF1E5AEBA0」で識別します。
証券会社が同じでも、MT4が二つインストールされていれば、32桁のフォルダーの識別IDは異なります。

EA、インディケーター、スクリプトの保管場所はそれぞれ以下の通りです。

EAエキスパートアドバイザー:\MQL4\Experts

インディケーター:\MQL4\Indicators

スクリプト:\MQL4\Scripts

4.ナビゲーターウィンドウを表示する

MT4で稼働するプログラム類を保管したMQL4フォルダーをナビゲートするウィンドウをメタエディターの左側に表示することができます。

メタエディターのメニューから開く メニュー → 表示 → ナビゲーター

MT4メタエディターのナビゲーターをメニューから開く

ツールバーから開く ツールバーの「MQLライブラリーを開く」ボタンをクリックする

MT4メタエディターナビゲーターをツールバーから開く

ナビゲータウィンドウへは、MT4のプログラム類が保存されている、\MQL4\以下のフォルダーが表示されます。

MT4メタエディターナビゲーター右クリックで処理

ナビゲータウィンドウから、修正するプログラムを選択して右クリックで、ソースを開いたり、コンパイルすることができます。