「パラメーターの入力」を設定 extern変数

MQL4基礎

ストレージクラス

extern 変数

extern変数は、EAの「パラメーターの入力」タブでユーザーが取引の設定値を入力できるようにするためのものです。外部から設定値を入力できるようにするので外部変数になります。

extern変数、input変数は MQL4プログラムの入力パラメーターを決定するものになります。input変数とは異なり、extern変数の値はプログラム操作中に変更することができます。
extern変数は OnInit関数で初期化されるので、パラメーター設定当初(再設定も含む)は入力パラメーターで設定した値になっています。

EAの「パラメーター入力」タブ

構成

extern int a = 1; // 変数aの初期値

データ型は int以外も使うことができます。

プログラムの最初にプリプロセッサの「#property strict」を付けることで、コメント以下の文字をパラメーターに表示させることができます。

使用例

extern変数を使用した「入力パラメーター」の表示

コード

// extern変数を使用した「入力パラメーター」の表示
#property strict

extern double a = 1; // 変数aの初期値

void OnInit()
{
a = a + 0.1;
Print("変数a = ",a); // 変数a = 1.1
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

extern変数を使うことで「パラメーターの入力」タブから変数の設定ができるようになります。又、この時に「#property strict」を使うことで「パラメーターの入力」の変数名にプログラムの externがある行のコメント以下で設定した文字が入るようになります。

extern変数は、以下の結果ように途中の処理によって変更が可能です。

エキスパートタブに表示されるメッセージ
「#property strict」が無しの時

「#property strict」を使わない場合は、プログラムで使われた変数名がそのまま「パラメーターの入力」の変数名として使われることになります。

「#property strict」はコンパイルする時に構文を厳格にチェックをする機能があるので必ず使うようにしてください。

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