
ウィザードの「Parameters」部分に指定した内容が次のように(画面赤枠部分)記述されています。
//---- input parameters
extern double SASHINE=0.0;
これは、「外部から、小数点ありの値を、"SASHINE"という識別子で受け取る」という意味を持ちます。
なお、"SASHINE"の横に"=0.0"とありますが、これは画面に表示する初期の値を指定する書き方で
す。
実際どのように画面に表示されるのか早速試してみます。
まずは、ウィザードにより作成された"Loop_Entry"プログラムを実行形式にコンパイルします。
#コンパイルの手順はこちらを参照ください。
次に、MetaTrader 画面にてコンパイルされた"Loop_Entry"プログラムをチャート上に表示します。
#プログラムをチャートに表示させる手順はこちらを参照ください。
すると、下記ウィンドウが表示されると思います。

このウィンドウの「パラメーターの入力」タグが、プログラムに受け渡すための値を入力する画面になります。
この画面を見てみると、一覧エリアの「Variable」の欄に"SASHINE"が、「Value」の欄に"0.0"が表示されています。
つまり、プログラムの"extern"行で指定した、"SASHINE=0.0"が画面上に表示され、「Value」欄をダブルクリックすることで任意の値を入力でき、OK ボタンをクリックすることでプログラムに入力した任意の値を渡すことができます。
では、本当に任意の値がプログラムに渡せるのか試してみます。
MetaEditor で"Loop_entry"プログラムを表示し、次のプログラムコードを追記します。
Print("指値の値は=",SASHINE);
上記コードは、"SASHINE"の識別子に入っている値を画面に表示するプログラムコードです。
これを、int init()エリアに追記します。
#init()エリアは、プログラムが起動するときに1回だけ実行される部分です。詳しくはこちら。

上記図のように記述できたら、再度プログラムをコンパイルします。
コンパイルが終了したら、MetaTrader にて"Loop_entry"プログラムをチャートに表示し、パラメーターの入力画面にて、"SASHINE"の Value 値として"123.45"を入力し OK ボタンをクリックしてください。

#すでにチャートにプログラムを表示済みの場合は、次の手順でも OK です。
1.チャート上のプログラム名が表示されているところにカーソルを合わせます。
2.右クリックをして<Expert Advisors>-<Properties>を選択します。

すると、ターミナルウィンドウの「Experts」タグに、入力された指値の値が表示されると思います。

これで、任意の値(今回は指値)をプログラムに受け渡すプログラムができました。
次は、受け渡した指値の値を注文で扱うようにしたいと思います。
0 件のコメント:
コメントを投稿