#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
*/
}
|