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