GlobalVariableSet関数|グローバル変数の設定
佐川直弘(株式会社トリロジー取締役)
MetaTrader4(MT4)では、システムグローバル変数を利用することで、作成したシステム(エキスパートアドバイザー、インディケーターなど)の間でグローバル変数を共有することができます。この記事では、システムグローバル変数を設定する方法について、初心者向けにわかりやすく解説します。
GlobalVariableSet関数|システムグローバル変数を設定する方法
システムグローバル変数を設定するには、`GlobalVariableSet`関数を使用します。この関数を使うことで、グローバル変数を新規作成または既存の変数を更新することができます。
以下は、`GlobalVariableSet`関数の基本的な仕様です。
- GlobalVariableSet関数の仕様
- datetime GlobalVariableSet(
string name, // グローバル変数名
double value // 値
);
この関数は、グローバル変数を設定します。設定に成功した場合、設定した日時が戻り値として返されます。失敗した場合は `0` が返されます。エラーの詳細情報は `GetLastError` 関数を使用して取得できます。
以下は、`GlobalVariableSet`関数を使ってグローバル変数を設定するサンプルコードです。
- グローバル変数設定の例
- if(GlobalVariableSet(“BarsCount", Bars) == 0) {
return(false);
}
このサンプルコードでは、`GlobalVariableSet`関数を使って “BarsCount" という名前のグローバル変数に `Bars` の値を設定しています。
GlobalVariableSetOnCondition関数|条件付きでグローバル変数を設定する方法
特定の条件が満たされた場合にのみグローバル変数を設定するには、`GlobalVariableSetOnCondition`関数を使用します。この関数は、現在の値が指定の条件値に一致した場合にのみグローバル変数を設定します。
以下は、`GlobalVariableSetOnCondition`関数の基本的な仕様です。
- GlobalVariableSetOnCondition関数の仕様
- bool GlobalVariableSetOnCondition(
string name, // グローバル変数名
double value, // 値
double check_value // 条件値
);
この関数は、現在の値が条件に合った場合にのみグローバル変数を設定します。設定に成功した場合は `true` を、失敗した場合は `false` を返します。エラーの詳細情報は `GetLastError` 関数を使用して取得できます。
以下は、`GlobalVariableSetOnCondition`関数を使って条件付きでグローバル変数を設定するサンプルコードです。
- 条件付きグローバル変数設定の例
- int init() {
//—- グローバル変数を作成する
GlobalVariableSet(“MY_DATAFILE_SEM", 0);
//…
}
int start() {
//—- 共通リソースのロックを試みる
while (!IsStopped()) {
//—- ロックの試行
if (GlobalVariableSetOnCondition(“MY_DATAFILE_SEM", 1, 0) == true) break;
//—- 変数が削除された可能性があるか?
if (GetLastError() == ERR_GLOBAL_VARIABLE_NOT_FOUND) return (0);
//—- 休止
Sleep(500);
}
//—- リソースがロックされました
// … 何らかの処理
//—- リソースのロックを解除
GlobalVariableSet(“MY_DATAFILE_SEM", 0); }
このサンプルコードでは、`GlobalVariableSetOnCondition`関数を使って、"DATAFILE_SEM" という名前のグローバル変数を条件付きで設定しています。
システムグローバル変数を設定する機能は、以下のような場合に役立ちます。
- よく使われるケース
- – 複数のエキスパートアドバイザーやインディケーター間でデータを共有したいとき
– プログラム間で連携を行いたいとき
– 特定の条件が満たされた場合にのみ値を更新したいとき
これらのケースで、`GlobalVariableSet`関数および`GlobalVariableSetOnCondition`関数を使うことで、効率的にシステムグローバル変数を設定することができます。
まとめ
MetaTrader4の`GlobalVariableSet`関数と`GlobalVariableSetOnCondition`関数を使えば、システムグローバル変数を簡単に設定できます。これにより、トレーダーはシステム間でデータを共有しやすくなり、取引の精度を向上させることができます。初心者の方も、この記事を参考にぜひシステムグローバル変数の設定に挑戦してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません