パラメーター
MT4を利用する際にインジケーターのパラメーターやEAなどのロット数やマジックナンバーなど、
利用者が自由に設定や変更したい数値があります。
これらの数値を変数として宣言することで外部パラメーターとして利用することができます。
外部パラメータの利用できる変数には、
- input変数
- extern変数
があります。それぞれについて説明します。
input変数
input変数はインジケーターやEAの入力パラメーターを決定します。
プログラムのプロパティウィンドウから利用者が設定できます。
input変数の書式は以下のように記述します。
#property strict input 型 変数名 //変数の名称
input修飾子はデータ型の前に書きましょう。また、input変数はグローバル変数で宣言します。
input変数で宣言された変数はプログラム内部で変更することはできず、
読み取り専用でアクセスすることはできないです。
パラメータの入力”タブの変数の名称をは同じ行の後に書かれたコメントの文字列が使われます。
これでユーザーにとって分かり易い名前を表示させる事が出来ます。
extern変数
extern変数もinput変数と同様に、MQL4プログラムの入力パラメータを決定します。
extern変数は以下のように記述します。
#property strict extern 型 変数名
extern変数はプログラム動作中に変更する事が出来ます。
extern変数とinput変数の違い
- 外部パラメータの値は変更できない。
- 外部パラメータは、プログラム内の処理によって変更可能
externとinputの違いですが、
externで作成した外部パラメータは、プログラム内の処理によって変更可能です。
inputを使用した外部パラメータの値は変更ができません。
externの代わりにinputをつけることでもユーザーに設定可能な外部パラメータとして表示されます。
externで外部パラメータを受け取り、
それを変数として使い回すと予期してない問題が発生する可能性があります。
基本的にパラメータを設定する場合は、externよりもinputがおすすめです。
まとめ
今回はパラメーターについて説明しました。
カスタムインジケーターやEAを作る際にパラメーターは必要です。
input変数とextern変数の違いなどをしっかりと理解しておきましょう。
パラメーター:利用者が自由に設定や変更したい数値を設定できる
input変数:外部パラメータの値は変更できない
extern変数:外部パラメータをプログラム内の処理によって変更可能できる
コメント