메타트레이더 시간 관련 함수
함수 전체 : https://www.mql5.com/en/docs/dateandtime
함수 TimeCurrent
- 2개 함수형태 제공된다. 반환값 자료형은 모두 datetime , 인자 있는 함수는 MqlDateTime 구조체 형식으로 데이터 받을 수 있어 편리.
- 최근 수신된 틱의 시각 반환.
- 장 종료 구간에서는 값이 갱신되지 않고 마지막 틱 시각으로 유지된다.
- 시간 기준 : 메타 트레이더 시간
datetime TimeCurrent(
MqlDateTime& dt_struct // structure type variable
);
datetime TimeCurrent();
함수 TimeTradeServer
- 초단위 epoch time.
- MT5 의 서버 시각을 반환하므로 장종료 구간에서도 호출가능.
- 서버에 요청하는 방식은 아니고 mt5 실행 중인 PC 시각 기준으로 계산된 메타 서버 시각
구조체 MqlDateTime
- 년 월 일 시 분 초 요일 정보 각각 확보 편리.
struct MqlDateTime
{
int year; // Year
int mon; // Month
int day; // Day
int hour; // Hour
int min; // Minutes
int sec; // Seconds
int day_of_week; // Day of week (0-Sunday, 1-Monday, ... ,6-Saturday)
int day_of_year; // Day number of the year (January 1st is assigned the number value of zero)
};
함수 TimeToStruct
dtatetime 자료형의 변수를 인자로 전달하면 MqlDateTime 으로 받음.
bool TimeToStruct(
datetime dt, // date and time
MqlDateTime& dt_struct // structure for the adoption of values
);
당일 시작(0시0분0초) 이후 경과 시간 구하기
void OnTick()
{
MqlDateTime st_time;
TimeCurrent(st_time);
int minute_from_day0 = 60*st_time.hour + st_time.min; // 당일0시이후경과분.
int sec_from_day0 = 3600*st_time.hour + 60*st_time.min + st_time.sec;//당일0시 이후 경과초.
}
일 변경 검출
int ymd_prev = -1;// -1 로 초기화하여 ea 시작초기 OnTick 에서 일변경 점검되게 함.
void OnTick()
{
MqlDateTime st_time;
TimeCurrent(st_time);
int ymd_cur = st_time.year*10000 + st_time.mon*100 + st_time.day;
// 일 변경 점검.
if(ymd_prev != ymd_cur)
{
// 일변경시 처리할것들 . 예: 당일 거래 가능시간 확보등.
ymd_prev = ymd_cur;
}
}
함수 TimeGMT()
- UTC+0 기준의 현재 시각을 초단위로 반환.
메타서버의 UTC+0 대비 오프셋 구하는 예 .
- 메타서버의 시간은 UTC+0 기준이 아니며 UTC+2, UTC+3 등 일광절약시간 대 적용하는 경우가 많다.
- 현재 메타서버에서 적용중인 시간대가 무엇인지 확인하는 방법.
int server_utc_offset_sec()
{
return (int)(TimeTradeServer() - TimeGMT());
}
메타서버 시간대가 UTC+2 적용중이면
예
TimeTradeServer() = 1703678400
TimeGMT() = 1703671200
차이 = +7200 sec → UTC+2
메타서버 시간대가 UTC+3 적용중이면
차이 = +10800 sec → UTC+3
연관
MT5 . 종목별 거래 가능 시간 정보 . SymbolInfoSessionTrade()
MT5 종목별 거래 가능 시간 MT5 에서 심볼 스펙을 보면 거래 가능시간 확인할 수 있다. 골드(XAUUSD+) 거래가능시간을 보면 매일 1시 1분 부터 23시 58분 (토요일은 23시 57분) 임을 확인 할 수 있다. 시간
igotit.tistory.com
메타트레이더 . 시간 .
메타 트레이더 의 시간 표현 기준 메타에서 보이는 시간들 , 예 . 메타에서 FXTM 으로 접속한 경우 보이는 챠트의 시간, Trade 탭에 보이는 Time 등, 메타트레이더 (4 / 5 모두) 에서 표현되는 모든 시간
igotit.tistory.com
메타트레이더 5. 체계정리. 활용법/지식
MetaTrader 5 메타트레이더 5 , 메타에디터, MQL5 활용정보 체계정리. 본 글에서 주요 정리대상 정보 1. 메타트레이더 5 사용법. 2. MQL5 언어 기반 "직접 코딩"하여 메타프레이더5에서 자동매매 달성하기
igotit.tistory.com
메타트레이더 4. 체계정리. 활용법/지식.
MetaTrader 4 메타트레이더 4 활용정보 체계정리. - 글로벌 트레이딩 소프트웨어. - 지속 발전 가능한 안정된 시스템. - 직접 코딩 가능한 MQL4 언어. C 언어 유사 - - MQL4 에서도 클래스 사용가능하므로
igotit.tistory.com
첫 등록 : 2023.05.04
최종 수정 : 2025.12.24
단축 주소 : https://igotit.tistory.com/4361
'트레이딩 > 메타트레이더 코딩' 카테고리의 다른 글
| 메타트레이더 . VSCode 에서 MQL Tools 기반 쾌적 코딩 환경 구축 (2) | 2024.05.27 |
|---|---|
| 메타트레이더 . 코딩 . OnTimer . 시간격 이벤트 (1) | 2023.05.04 |
| 메타트레이더 . 코딩 . 터미널 전역변수 . 멀티스레드 EA 동기화 처리 (0) | 2023.04.30 |
| 메타트레이더 . 코딩 . 여러 EA 구동시 가용마진 확인 방법 . 터미널 전역 변수 활용 (0) | 2023.04.28 |
| 메타트레이더 . 다 종목 매매 전략 백테스팅 MT5 만 가능 (0) | 2023.04.02 |
댓글