プログラムのプロパティ (#property)

全ての MQL5 プログラムは、明示的に起動せずにプログラムの中で適切なサービスを提供してクライアント端末を補助する #property という付加的な特定のパラメータを指定することが出来ます。これは、まず第一に、指標の外部設定に関連します。インクルードファイルに記載されているプロパティは完全に無視されます。プロパティは、メイン mq5 ファイルで指定する必要があります。

#property 識別子の値

コンパイラは、実行モジュールの設定に宣言された値を書き込みます。

定数

Type

説明

icon

string

EX5 プログラムのアイコンとして使用される画像ファイルへのパス。パス指定のルールはリソースの場合と同じです。このプロパティは、MQL5 のソースコードのメインモジュールで指定される必要があります。アイコンファイルは ICO 形式である必要があります。

link

string

会社のウェブサイトへのリンク。

copyright

string

会社名。

version

string

プログラムのバージョン(最大 31 文字)

説明

string

MQL5 プログラムの簡単な説明文。複数の説明が存在でき、各々がテキストの1行を記述します。合計した説明の長さは、改行を含んで 511 文字を超えることは出来ません。

stacksize

int

MQL5 プログラムスタックサイズ。関数の再帰呼び出しを実行する際には充分なサイズのスタックが必要です。

スクリプトまたはチャート上のエキスパートアドバイザーを起動する際には、8 MB 以上のスタックが割り当てられます。指標の場合には、スタックサイズは常に 1 MB に固定されています。

プログラムはがストラテジーテスターで起動される場合には、常に 16 MB のスタックが割り当てられます。

library

 

ライブラリ。start 関数は割り当てられません。export 修飾子のついた関数は 他の MQL5 プログラムにインポート出来ます。

indicator_applied_price

int

「適用価格」フィールドの初期値を指定します。値は ENUM_APPLIED_PRICE から選べます。プロパティが指定されていない場合、初期値は PRICE_CLOSE です。

indicator_chart_window

 

チャートウィンドウで指標を表示します。

indicator_separate_window

 

別ウィンドウで指標を表示します。

indicator_height

int

ピクセル単位での指標サブウィンドウの固定された高さ(INDICATOR_HEIGHT プロパティ)。

indicator_buffers

int

指標計算に使用されるバッファ数。

indicator_plots

int

指標の グラフィックシリーズの数。

indicator_minimum

double

個別の指標ウィンドウのスケーリングの下限。

indicator_maximum

double

個別の指標ウィンドウのスケーリングの上限。

indicator_labelN

string

データウィンドウに表示された N 番目のグラフィックシリーズ のラベルの設定。複数の指標バッファ(DRAW_CANDLES、DRAW_FILLINGなど)を必要とするグラフィックシリーズでは、ラベル名はセパレータ「 ; 」を使用して定義されています。

indicator_colorN

color

線 N の表示色。N はグラフィックシリーズの番号で 1 から始まります。

indicator_widthN

int

グラフィックシリーズの線の太さ。N はグラフィックシリーズの番号で 1 から始まります。

indicator_styleN

int

ENUM_LINE_STYLE を使用して指定されたグラフィックシリーズの線のスタイル。N はグラフィックシリーズの番号で 1 から始まります。

indicator_typeN

int

ENUM_DRAW_TYPE を使用して指定されたグラフィカルプロットの種類。. N はグラフィックシリーズの番号で 1 から始まります。</t4>

indicator_levelN

double

個別の指標ウィンドウにおける N の水平レベル。

indicator_levelcolor

color

指標の水平レベルの色。

indicator_levelwidth

int

指標の水平レベルの太さ。

indicator_levelstyle

int

指標の水平レベルのスタイル。

script_show_confirm

 

スクリプト実行の前に、確認メッセージウィンドウを表示します。

script_show_inputs

 

スクリプト実行の前にプロパティウィンドウを表示して確認メッセージウィンドウを無効化します。

tester_indicator

string

「indicator_name.ex5」の形式でのカスタム指標の名称。 対応するパラメータが定数文字列を介して設定されている場合、テストが必要な指標はiCustom() の呼び出しから自動的に定義されています。他の全ての場合(IndicatorCreate() 関数の使用や指標名を設定するパラメータでの非定数文字列の使用)、このプロパティが必要とされています。

tester_file

string

テスタのファイル名。二重引用符内で拡張子の表示も含みます(文字列定数)。指定されたファイルはテスタに渡されます。テストされるべき入力ファイルがある場合、指定が必ず必要です。

tester_library

string

二重引用符内で拡張子を含むライブラリ名。ライブラリは拡張子として「dll」または「ex5」を持つことが出来ます。テストを必要とするライブラリは自動的に定義されます。 しかし、ライブラリのいずれかがカスタム 指標で使用されている場合、このプロパティが必要です。

tester_set

string

入力パラメータの値とステップを含むセットファイルの名前。このファイルは、テスト及び最適化の前にテスタに渡されます。ファイル名は、拡張子を含み二重引用符で定数文字列として指定されます。

EA名とバージョン番号をセットファイル名に"<expert_name>_<number>.set"として指定すると、パラメータバージョンのダウンロードメニューに<number>バージョン番号の下に自動的に追加されます。たとえば、"MACD Sample_4.set"という名前は、これがバージョン番号が4の"MACD Sample.mq5" EAのセットファイルであることを意味します。

フォーマットを調べるには、ストラテジーテスターでテスト/最適化設定を手動で保存し、この方法で作成したセットファイルを開くことをお勧めします。

tester_no_cache

string

ストラテジーテスターは最適化を実行する際にすべての実行されたテストパスを最適化キャッシュに保存します。ここではテスト結果は入力パラメータセットごとに保存されます。これにより、無駄な時間を再計算にかけることなく、再最適化中に同じパラメータに対する既製の結果を使用することができます。

しかし、一部のタスク (例: 数学計算) では、既成の結果が最適化キャッシュにあるかどうかにかかわらず、計算を実行する必要があります。この場合、ファイルにはtester_no_cacheプロパティが含まれるべきです。テスト結果はキャッシュに保存されるため、実行されたテストパスのすべてのデータはストラテジーテスターで確認できます。

tester_everytick_calculate

string

ストラテジーテスターでは、指標はそのデータがアクセスされるとき、すなわち指標バッファの値が要求されたときにのみ計算されます。各ティックで指標値を取得する必要がない場合、これによってテストと最適化の速度が大幅に上がります。

 

tester_everytick_calculateプロパティを指定することによって、全てのディックでの指標の計算を強要できます。

 

ストラテジーテスターの指標は、以下の場合にはすべてのティックで強制的に計算されます。

 

この関数はストラテジーテスターにのみ適用され、端末での指標は常に受信したティックごとに計算されます。

optimization_chart_mode

string

最適化結果の視覚化に使用されるチャートタイプと2つの入力パラメータの名前を指定します。たとえば、「3d, InpX, InpY」は、テストされたInpXおよびInpYパラメータ値に基づいた座標軸を使用して、結果が3Dチャートに表示されることを意味します。したがって、このプロパティを使用すると、最適化チャートとチャートタイプをプログラムコードで直接表示するために使用されるパラメータを指定できます。

可能なオプション:

  • 「3d, input_parameter_name1, input_parameter_name2」は3D視覚化チャートを意味し、回転、拡大、縮小が可能です。チャートは2つのパラメータを使用して作成されます。
  • 「2d, input_parameter_name1, input_parameter_name2」は、各セルが結果に応じて特定の色で描画される2Dグリッドチャートを意味します。チャートは2つのパラメータを使用して作成されます。
  • 「1d, input_parameter_name1, input_parameter_name2」は線形チャートを意味し、結果は指定されたパラメータでソートされます。各パスはポイントとして表示されます。チャートは1つのパラメータに基づいて作成されます。
  • 「0d, input_parameter_name1, input_parameter_name2」は、パス結果の到着時間でソートされた結果を持つ通常のチャートを意味します。各パスはチャートのポイントとして表示されます。パラメータの表示は必須ではありませんが、指定されたパラメータは他のチャートタイプへの手動切り替えに使用できます。

オプションで、1つまたは2つの入力パラメータを指定せずに、チャートタイプのみを指定できます。この場合、ターミナルは必要なパラメータを選択して最適化チャートを表示します。

説明とバージョン番号に関するサンプルタスク

#property version     "3.70"     // エキスパートアドバイザーの現在のバージョン
#property description "ZigZag universal with Pesavento Patterns"
#property description "At the moment in the indicator several ZigZags with different algorithms are included"
#property description "It is possible to embed a large number of other indicators showing the highs and"
#property description "lows and automatically build from these highs and lows various graphical tools"

プログラムの起動時に説明とバージョンの表示する例

 

各指標バッファ用に別々のラベルを指定する例("C open; C high; C low; C close")

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   1
#property indicator_type1   DRAW_CANDLES
#property indicator_width1  3
#property indicator_label1 "C open;C high;C low;C close"

各指標バッファのラベルを表示する例