MetaEditorヘルプ

知的管理

名前の自動置換や関数のヒント表示に始まり、ブックマークやホットキーに至るまで、MetaEditorには様々なツールが実装されています。これらのツールにより、ソースコード記述を迅速に進め、そのナビゲーションを容易に行うことによってミスを未然に防ぐことができます。

このセクションではつぎの機能を説明します。

ソースコードへのいかなる変更も、「Undo 元に戻す」コマンド(メニュー「編集」⇒、「標準」ツールバー、または「Ctrl+Z」ホットキー)で元に戻すことができます。

関数名の自動置換

ビルトイン関数やユーザ関数のコンスタント、変数、クラスメンバー、キーワード他の名前候補をリスト表示します。置換候補は最初のキーイン文字で決まります。ソースコードを記述しているときに自動的にリストを表示します。手動でこのリストを開きたい場合は、最初の1文字をキーインした後で、「list_names_icon 名前リスト」コマンド(メニュー「編集」⇒、「標準」ツールバー、または「Ctrl+Space」ホットキー)を使用します。

名前リスト

「上矢印」または「下矢印」を使用して候補を選び、「Enter」キーを押せば完了です。マウスを使用しても可能です。文字列をタイプすると可能性のある置換候補がリスト表示されます。

パラメータに関する情報

この機能は、選択した関数のパラメータとその型を表示します。この情報を表示するには、「パラメータ情報 パラメータ情報」コマンド(メニュー「編集」⇒、「標準」ツールバー、または「Ctrl+Shift+Space」ホットキー)使用します。コマンドは、マウスカーソルがパラメータを指定する括弧内にあるとき実行されます。すると、パラメータのポップアップヘルプラインが関数の下に表示されます。

パラメータに関する情報

上記スクリーンショットの表示例を説明します。

  • [1 of 2] — これはこの関数のパラメータ指定には2通りあることを意味しています。もう一方への切り替えは、「上矢印」と「下矢印」キーを使用するかヒント行の上でマウスの左ボタンをクリックします。
  • bool — 関数の戻り値の型を示しています。
  • ObjectSetInteger — 関数の名前です。
  • (long chart_id, ... ) — 関数のパラメータ列と、その型を直前に示しています。マウスカーソルが現在置かれたパラメータは太字で表示されます。

定義へ移動

この機能は、選択された関数または変数の定義あるいは宣言文へ自動的に移動します。定義あるいは宣言文が別のファイルにある場合は、そのファイルを開いてマウスカーソルを対応する位置に移動します。この機能はインクルードファイル(#include)への移動も行います。

定義へ移動するためには、カーソルをパラメメータに置き、「定義へ移動 定義へ移動」コマンド(メニュー「編集」⇒、「標準」ツールバー、または「Alt+G」ホットキー)を使用します。インクルードファイルへの移動は、それが使用されている行にカーソルを置き、上記コマンドのいずれかを使用します。

関数リスト

この機能は、カレントファイルのすべての宣言関数のリストを表示します。リストを表示するには、「List Functions 関数リスト」コマンド(メニュー「編集」⇒、「標準」ツールバー、または「Alt+M」ホットキー)を使用します。

関数リスト

関数に指定されたパラメータは括弧内に表示されています。マウスの左ボタンをクリックするか「Enter」キーを押してファイル内の関数定義へ移動できます。が関数のタイプに応じてそれぞれのアイコンが付きます。

  • Function— 関数
  • Fucntion of Events Handling— イベント処理の関数(On*)
  • Public Method of Class— publicクラス
  • Protected Method of Class— protectedクラス
  • Private Method of Class— privateクラス

コメントの挿入

ソースコードのコメントに関して複数のコマンドが実装されています。メニュー「編集」⇒、または「標準」ツールバーにあります。

  • Function Header 関数ヘッダ — 関数のヘッダコメントテンプレートを挿入します。
  • Block Comment ブロックヘッダ — 1行ラインコメントを挿入します。
  • Comment Lines コメント行にする — 選択した各行の頭に"//"を挿入します。
  • Uncomment Lines コメント行の解除 — 各選択行の頭から"//"を削除します。

Block Commentブロックコメント」の使用または「Ctrl+/」ホットキーを使用すると、選択した位置に1行コメントを挿入します。

//---

Function Header関数ヘッダ」コマンドか「Ctrl+.」ホットキーを使用すると、指定した位置に機能コメントテンプレートを挿入します。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

コード編集に用いるその他の機能

メニュー「編集」⇒「Advanced」サブメニューに、ソースコード編集を容易にするいくつかのコマンドを用意しています。

  • Increase Line Indent Increase Line Indent — このコマンドは選択した行の頭に3つの空白文字(またはひとつのタブ文字)を挿入します。1行に空白を挿入するため、その行の頭にカーソルを置き、このコマンドを実行します(またはタブホットキーを押します)。複数の行に空白を挿入する場合はそれらの行を選択してください。
  • Decrease Line Indent Decrease Line Indent — このコマンドは選択した行の頭の3つの空白文字(またはひとつのタブ文字)を削除します。同じ動作をTab+Shiftキーで行えます。
  • Make Uppercase Make Uppercase — このコマンドは、選択したフレーズを大文字に変換します。同じ動作を「Ctrl+Shift+U」ホットキーを使用して行えます。
  • Make Lowercase Make Lowercase — このコマンドは選択したフレーズをすべて小文字に変えます。同じ動作を「Ctrl+U」ホットキーを使用して行えます。

ブックマークの扱い

ブックマークは、ソースコードの行に印しをつけて付けおき、後でそれを見つけ易くするためのものです。ブックマークに関するコマンドは、メニュー「編集」⇒「ブックマーク」サブメニュー⇒、「標準」ツールバー、および編集ウィンドウにおけるコンテキストメニューにあります。MetaEditorには、ブックマークに関してつぎのコマンドがあります。

  • Toggle Bookmark ブックマークのオン/オフ — 編集ファイルのカレント行のブックマークをその状態によってオン/オフします。同様の動作を「Ctrl+F2」ホットキーを押して行えます。
  • 次のブックマーク 次のブックマーク — カレントソースコードの次のブックマークへ移動します。同じ動作を「F2」ホットキーを押して行えます。
  • 前のブックマーク 前のブックマーク — カレントソースコードの前のブックマークへ移動します。同じ動作を「Shift+F2」ホットキーで行えます。
  • ブックマークを一括削除 ブックマークを一括削除 — カレントファイルのブックマークを一括削除します。同じ動作を「Ctrl+Shift+F2」ホットキーを使用して行えます。

MetaEditorには識別子付きブックマーク機能があります。 - このブックマークには1桁の識別子が与えられます。識別子付きブックマークは「Ctrl」キーを押しながら、0〜9のいずれかのキーを押します。以前にセットされた識別子付きブックマークへ移動するには、「Alt」キーを押しながら対応するキーを押します。識別子付きブックマークはソースコード内のナビゲーションを容易にします。

Go To Line

カレントファイルのソースコード行へ迅速に移動するには、「Go To Line 行へ移動」コマンド(メニュー「編集」⇒、または「標準」ツールバー)を使用します。このコマンドはつぎのウィンドウを表示します。

Go To Line

ファイルのコードの行番号の範囲がウィンドウに示されます。移動したい行番号を入力し「OK」ボタンを押します。

スニペット

コーディングを容易にするため、MetaEditorはスニペットをインクルードして挿入できます。 — スニペットは小さなコード断片のテンプレートで、MQL4/MQL5言語の構造体を記述します。スニペットを挿入するために特別なキーワードを入力します。すると、カーソルは次のように変化A snippet can be insertedし、スニペットを挿入可能であることを意味します。つぎに「Tab」キーを押します。

例えば、クラス宣言を挿入するなら「class」を入力し、「Tab」キーを押します。

スニペットの例

そうするや否や、キーワードはクラス宣言に置換されます。スニペットのアクティブフィールド(このケースでは、クラスの名前、コンストラクタ、およびデストラクタ)をスイッチするには、「Tab」と「Shift+Tab」キーを使用します。

アクティブフィールドを変更すると、スニペットの他のフィールドも自動的に変更されます。例えば、クラス名を変更すれば、コンストラクタ名とデストラクタ名も自動的に変更されます。「for」文中の変数名のひとつを変更すれば、その文中の他の変数名も変更されます。

スニペット機能は、構造体、クラス、列挙型、メソドおよび関数について、「Ctrl+Enter」ホットキーを押せば認識します。その時カーソルは構成要素記述の中になければなりません。その組合せキーを押すと、上述したように「Tab」と「Shift+Tab」ホットキーを使用して要素間(クラス、構造体、列挙型の場合)、および引数間(メソドと関数の場合)を移動できます。

現在、つぎのスニペットがサポートされています。

キーワード

内容

#import

インポート宣言

OnBookEvent

OnBookEventイベントハンドラ

OnCalculate

OnCalculateイベントハンドラ

case

「case」セレクタ

OnChartEvent

OnChartEventイベントハンドラ

class

class宣言

OnDeinit

OnDeinitイベントハンドラ

do

「do while」ループ宣言

enum

列挙型宣言

for

「for」ループ宣言

if

「if」条件宣言

else

「else」条件宣言

OnInit

OnInitイベントハンドラ

OnStart

OnStartイベントハンドラ

struct

構造体宣言

switch

「switch」セレクタ

OnTester

OnTesterイベントハンドラ

OnTesterInit

OnTesterInitイベントハンドラ

OnTesterPass

OnTesterPassイベントハンドラ

OnTesterDeinit

OnTesterDeinitイベントハンドラ

OnTick

OnTickイベントハンドラ

OnTimer

OnTimerイベントハンドラ

OnTrade

OnTradeイベントハンドラ

OnTradeTransation

OnTradeTransationイベントハンドラ

while

「while」ループ宣言

リソースの挿入

"Edit—Insert"メニュコマンド を使用するとリソースファイルをすばやく挿入して、アプリケーション開発を容易にすることができます。

#propertyとしてのオプション

現在の位置に#property指令を挿入してすぐに言語で利用可能なすべてのプログラムプロパティのリストを開きます。

#resourceとしてのBMP/WAV

画像または音声ファイルをプログラムリソースに追加するには、このコマンドを実行して、BMPまたはWAVファイルを選択します(適切なファイルは \MQL5ディレクトリに配置されている必要があります)。選択されたファイルへの適切なパスを持つ#resource指令が、プログラムの現在位置に挿入されます。

#resource "\\Images\\image.bmp"

#importとしてのDLL/EX5

このコマンドを実行して適切なファイルを選択することで、外部ライブラリやEX5/EX4ファイルから関数をインポートできます(ファイルは\MQL5ディレクトリに配置されている必要があります)。選択されたファイルへの適切なパスを持つ一対の#import指令が、プログラムの現在位置に挿入されます。

#import "..\Experts\SendNotification.ex5"
 
#import

指令間でインポートされた関数の説明を追加します。

#includeとしてのMQH

インクルードファイルをプログラムコードに挿入するには、このコマンドを実行してMQHファイルを選択します(適切なファイルは\MQL5ディレクトリに配置されている必要があります)。選択したファイルへの適切なパスを含む#include指令が、プログラムの現在位置に挿入されます。

#include <Arrays\Array.mqh>

バイナリ配列としてのファイル

このコマンドを使用すると、バイナリ配列形式のファイルをプログラムテキストに追加できます。コマンドを実行して、目的のファイルを選択します (適切なファイルは\MQL5ディレクトリに配置されている必要があります)。char配列がプログラムの現在位置に挿入されます。

とりわけ、この機能を使用すると、エキスパートアドバイザーや指標を持つチャートテンプレートを転送することができます。テンプレートをプログラムコードに配列として挿入し、ディスクに保存してからFileSave関数を使用します。その後、テンプレートはChartApplyTemplate関数を使用して目的のチャートに適用できます。

//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- バイナリ配列としてのテンプレートファイル
   unsigned char my_template[]=
     {
      0xFF,0xFE,0x3C, ... ,0x00 // この例のデータ配列は短縮されている
     };
//--- テンプレートの保存と適応
   if(FileSave("my_template.tpl",my_template))
     {
      Print("Custom template saved in \\MQL5\\Files");
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
         Print("Custom template applied to the current chart");
      else
         Print("Failed to apply custom template");
     }
   else
      Print("Failed to save custom template");
  }

テキスト配列としてのCSV

テキストファイルのデータをプログラムコードに追加するには、このコマンドを実行してTXTまたはCSVファイルを選択します(適切なファイルは \MQL5ディレクトリに配置されている必要があります)。ファイルからのデータを含む必要な次元を持つ文字列配列が、プログラムの現在位置に挿入されます。

string data[][3]=
  {
   {"name1","value1"},
   {"name2","value2"},
   {"name3","value3"}
  };

テキスト変換

MetaEditorでは、ソースデータのフォーマットを簡単に変換できます。目的のファイルを開いてその中のテキストを選択し、Edit—Convertメニューからコマンドの1つを実行します。

  • ASCIIからHEX
  • ASCIIからBase64
  • ASCIIからバイナリ配列
  • HEXからASCII
  • Base64からASCII