プリプロセッサ(#property)

MQL4リファレンス

プリプロセッサとは、プログラムを動かす前にデータ入力やデータ整形などの準備的な処理の事です。

スポンサーリンク

#property(共通)

#propertyとは、プログラムの為のプロパティ(属性)をパラメーターで指定する事が出来ます。
これはカスタムインジケータの外部設定にも使われます。
インクルードファイルに記載されたプロパティは完全に無視されますので、メインのmq4ファイルで指定する必要があります。

strict

#property strictを宣言する事で厳格(strict)モードという設定になります。
そうする事でコンパイル時に厳格にソースコードがチェックされて、細かいエラーについて警告やエラーが出るようになります。

警告が出る書き方

コンパイルをすると警告が3件表示されました。

  • possible use of uninitialized variable ‘a’
    これは、初期化されていない変数「a」を使用していますという意味です。
    a+0.1という計算をしていますが、aに値が入っているか宣言していないですが、大丈夫ですか?という警告です。
  • possible loss of data due to type conversion
    これは、型変換によるデータ損失の可能性がありますという意味です。
    変数aは小数点数型なので、整数型の変数bに計算して代入すると小数点が消えちゃうよ?という警告です。
  • implicit conversion from ‘number’ to ‘string’
    これは、数値から文字列への変換されますよという意味です。
    文字列型である “b=” と「+」で変数bの値を連結させようとしているので、連結するなら文字列型に変換しちゃうよ?という警告です。

警告を出さない書き方

①変数a,bを宣言する際に、初期値をセットします。

②(int)を付ける事で整数型に変換する宣言となるので警告はなくなります。
※小数点以下を切り捨てて問題ない場合

③(string)を付ける事で文字列型に変換する宣言となるので警告はなくなります。
これは簡易的な方法で、IntegerToString関数のような型を変換する関数もあります。

他にも厳密モードで出る警告・エラーはありますので警告文を読み解いてみて下さい。

icon

ex4プログラムのアイコンとして使用する画像ファイルへのパスを指定します。
※アイコンファイルはICO形式である必要があります。

画像の保存場所はTerminal ≫ ターミナルディレクトリパス ≫ MAL4 ≫ Imagesにした場合です。

link

作成者や会社のWebサイトのリンクを記載します。

copyright

作成者(著作者)や会社名の名前を記載します。

version

プログラムのバージョンを記載します。
(最大31文字)

description

プログラムの簡単な説明文を記載します。
テキスト1行を記述して、複数行で記述する事も出来ます。
説明文の長さは改行を含めて合計511文字が上限です。

stacksize

プログラムのスタックサイズを指定します。
スクリプトまたはEAを起動する際には8MB以上のスタックが割り当てられます。
カスタムインジケーターの場合は、スタックサイズは常に1MBに固定されています。
ストラテジーテスターで起動する際には、常に16MBのスタックが割り当てられます。

library

start関数が割り当てられていないexport修飾子のついた関数は、他のMQL4プログラムでインポートする事が出来ます。

#property(インジケーター用)

indicator_chart_window

カスタムインジケーターをチャートウインドウに表示させます。

indicator_separate_window

カスタムインジケーターをサブウインドウに表示させます。

indicator_height

インジケーターサブウインドウの高さをピクセル単位で固定します。

indicator_buffers

インジケーター計算のバッファ数(1~512)

indicator_minimum

インジケーターサブウインドウの下限値の設定。

indicator_maximum

インジケーターサブウインドウの上限値の設定。

indicator_labelN

データウインドウに表示されるN番目のインジケーターラベルの設定。

indicator_colorN

N番目のインジケーターの色設定。

indicator_widthN

N番目のインジケーターの太さ設定。

indicator_styleN

N番目のインジケーターの線種設定。

indicator_typeN

N番目のインジケーターの描画スタイル設定。

indicator_levelN

サブウインドウにN番目のインジケーターレベル(水平線)を表示設定。

indicator_levelcolor

インジケーターレベル(水平線)の色設定。
(個別設定は不可)

indicator_levelwidth

インジケーターレベル(水平線)の線の太さ設定。
(個別設定は不可)

indicator_levelstyle

インジケーターレベル(水平線)の線種設定。
(個別設定は不可)

#property(スクリプト用)

script_show_confirm

スクリプトを実行する前に確認ウインドウを表示する。

script_show_inputs

スクリプトを実行する前にプロパティウインドウを表示し、確認ウインドウを無効にする。

コメント

タイトルとURLをコピーしました