GlobalVariableGet関数の役割・働きについて
GlobalVariableGet関数はクライアント端末(=ユーザ個人のパソコン)に保存されているGlobal変数の値を取得するために使用されます。
つまり、Global変数からデータを「読み込む」際に活用されます
GlobalVariableGet関数は2つの書式をもつオーバーロード関数です。
※オーバーロード関数については↓の記事をご参照ください
GlobalVariableGet関数第1書式の引数と戻り値について
GlobalVariableGet関数第1書式の引数と戻り値は以下のようになっています。
double GlobalVariableGet(
string name // グローバル変数名
);
第1書式では、引数としてGlobal変数の名前を文字列として指定します。戻り値としてGlobal変数に格納されている値を取得するパターンです。戻り値のデータ型はdouble型です。
GlobalVariableGet関数第2書式の引数と戻り値について
GlobalVariableGet関数第2書式の引数と戻り値は以下のようになっています。
bool GlobalVariableGet(
string name, // グローバル変数名
double& double_var // グローバル変数の値を含む変数
);
第2書式では、第1引数でGlobal変数の名前を文字列として指定します。そして第2引数でGlobal変数に格納されている値を参照渡しで受け取る変数を指定します。
戻り値は成功時にtrue、失敗時にfalseを返すbool型です。
※参照渡しについては↓の記事をご参照ください
GlobalVariableGet関数を使う際の注意点
エラーの詳細情報が必要な場合は、GetLastError関数を呼び出すことができます。
※GetLastError関数については↓の記事をご参照ください
※注意:Global変数はMQL5 EA講座 第27回「グローバル変数について」で取り上げたグローバル変数とは別物になります。
当サイトではMT5をシャットダウン後も、一定期間値の記憶を保つことができる変数をアルファベット表記のGlobal変数、関数の外(=グローバル領域)に作られた(=宣言された)変数のことをカタカナ表記のグローバル変数として区別したいと思います。
MT5操作によるGlobal変数の確認方法
Global変数の存在を確認する方法は、GlobalVariableGet関数を使ったスクリプトでも可能ですが、MT5の操作でも確認可能です。操作手順は以下の通りです。
- MT5を開く
- メニューバーから「ツール」を選択
- 「グローバル変数」メニューをクリック
これで「グローバル変数」ウィンドウが開き、現在クライアント端末に保存されている全てのGlobal変数のリストが表示されます。ここで、変数名、値、最終更新時間などを確認することができます。
GlobalVariableGet関数を使ったサンプルコード
値を直接返すバージョンの使用例(第1書式)↓
double value = GlobalVariableGet("MyGlobalVariable");
if(value == 0 && GetLastError() != 0) {
// エラー処理
Print("Global変数の取得に失敗しました。エラーコード: ", GetLastError());
} else {
// 値の使用
Print("取得したGlobal変数の値: ", value);
}
参照を通じて値を取得するバージョンの使用例(第2書式)
double value;
if(GlobalVariableGet("MyGlobalVariable", value)) {
// 値の使用
Print("取得したGlobal変数の値: ", value);
} else {
// エラー処理
Print("Global変数の取得に失敗しました。エラーコード: ", GetLastError());
}
上記のサンプルコードはGlobalVariableGet関数を用いてMT5クライアント端末のGlobal変数から値を取得する方法を示しています。
適切に使用することで、エキスパートアドバイザーやインジケーター間でのデータ共有を効率的に行うことができます。
<参照>
Global変数/GlobalVariableCheck関数/GlobalVariableSet関数/GlobalVariableDel関数
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。