GlobalVariableTemp

この関数は、一時的なグローバル変数の作成を試みます。変数が存在しない場合、システムは新しい一時的なグローバル変数を作成します。

bool  GlobalVariableTemp(
  string  name      // グローバル変数名
  );

パラメータ

name

[in]  一時的なグローバル変数の名称

戻り値

成功の場合は true、それ以外の場合は false。エラーの詳細には GetLastError() 関数が呼ばれます。

注意事項

一時的なグローバル変数はクライアント端末の実行中ににのみ存在し、端末シャットダウン後、自動的に削除されます。GlobalVariablesFlush() 実行の際に一時的なグローバル変数はディスクに書きだされないことにご注意下さい。

一時的なグローバル変数は、作成後はクライアント端末のグローバル変数と同じようにアクセスまた変更出来ます。

 

例:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link     "https://www.mql5.com"
#property version   "1.00"
 
#define   GV_NAME   "TestGlobalVariableTemp"
 
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
  double value=0;   // ここでグローバル変数の値を受け取る
 
//--- クライアント端末の一時グローバル変数が存在しない場合
//--- 1. プログラムが起動されていない
//--- 2. あるいは、プログラム実行中に端末が再起動した
  if(!GlobalVariableCheck(GV_NAME))
    {
    //--- クライアント端末の新しい一時グローバル変数を作成する
    if(!GlobalVariableTemp(GV_NAME))
       {
        Print("GlobalVariableTemp() failed. Error ", GetLastError());
        return;
       }
    //--- グローバル変数に現在の日付と時刻を設定する
    if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
       {
        Print("GlobalVariableSet() failed. Error ", GetLastError());
        return;
       }
 
    //--- 一時グローバル変数の値を取得し、プログラムの初回起動時または端末再起動時の時刻を操作ログに表示する
    if(!GlobalVariableGet(GV_NAME,value))
       {
        Print("GlobalVariableGet() failed. Error ", GetLastError());
        return;
       }
    Print("First start or starting the program after rebooting the terminal at ", TimeToString((datetime)value,TIME_DATE|TIME_MINUTES|TIME_SECONDS));
    }
 
//--- クライアント端末の一時グローバル変数がすでに作成されている場合、これはプログラムの再起動である
  else
    {
    //--- グローバル変数に現在の日付と時刻を設定する
    if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
       {
        Print("GlobalVariableSet() failed. Error ", GetLastError());
        return;
       }
 
    //--- 一時グローバル変数の値を取得し、プログラム再起動時刻を操作ログに出力する
    if(!GlobalVariableGet(GV_NAME,value))
       {
        Print("GlobalVariableGet() failed. Error ", GetLastError());
        return;
       }
    Print("Restarting the program at ", TimeToString((datetime)value, TIME_DATE|TIME_MINUTES|TIME_SECONDS));
    }
 
  /*
   最初の起動時、または端末再起動後の結果:
  First start or starting the program after rebooting the terminal at 2024.11.29 15:03:18
 
   複数回連続でプログラムを再起動した場合の結果:
  Restarting the program at 2024.11.29 15:03:25
  Restarting the program at 2024.11.29 15:03:33
  Restarting the program at 2024.11.29 15:03:45
  */
 }