TimeTradeServer

거래 서버의 계산된 현재 시간을 반환. TimeCurrent()와 달리 시간 값 계산은 클라이언트 터미널에서 수행되며 컴퓨터의 시간 설정에 따라 달라집니다. 함수의 2가지 변수가 있습니다.

매개변수 없이 호출

datetime  TimeTradeServer();

MqlDateTime 유형 매개변수를 사용하여 호출

datetime  TimeTradeServer(
   MqlDateTime&  dt_struct      // 구조 유형의 변수
   );

매개변수

dt_struct

[out]  구조 유형의 변수 MqlDateTime.

값 반환

datetime 유형의 값

주의

MqlDateTime 구조 유형 변수가 매개변수로 전달된 경우 그에 따라 채워집니다.

고해상도 카운터 및 타이머를 정렬하려면 밀리초 단위의 값을 생성하는 GetTickCount() 함수를 사용합니다.

전략 테스터에서 테스트하는 동안 TimeTradeServer() 는 내역 데이터에 따라 시뮬레이션 되며 항상 TimeCurrent()와 동일합니.

예:

void OnStart()
  {
//--- 날짜/시간 데이터로 채워질 MqlDateTime 변수를 선언하고 마지막 쿼트 시간과 거래 서버의 예상 현재 시간을 가져옵니다.
   MqlDateTime tm={};
   datetime    time_current=TimeCurrent();                  // 첫 번째 호출 형식: 종합시세 창에 있는 심볼 중 하나에 대한 마지막 시세 시간
   datetime    time_server =TimeTradeServer(tm);            // 두 번째 호출 형식: MqlDateTime 구조를 채운 거래 서버의 현재 예상 시간
   int         difference  =int(time_current-time_server);  // Time Current와 Time Trade Server의 차이점
   
//--- 마지막 쿼트 시간과 거래 서버의 현재 예상 시간을 로그에 채워진 MqlDateTime 구조의 데이터로 표시합니다.
   PrintFormat("Time Current: %s\nTime Trade Server: %s\n- Year: %u\n- Month: %02u\n- Day: %02u\n"+
               "- Hour: %02u\n- Min: %02u\n- Sec: %02u\n- Day of Year: %03u\n- Day of Week: %u (%s)\nDifference between Time Current and Time Trade Server: %+d",
               (string)time_current, (string)time_servertm.yeartm.montm.daytm.hourtm.mintm.sectm.day_of_yeartm.day_of_week,
               EnumToString((ENUM_DAY_OF_WEEK)tm.day_of_week), difference);
  /*
  결과:
   Time Current2024.04.18 16:10:14
   Time Trade Server2024.04.18 16:10:15
   - Year2024
   - Month04
   - Day18
   - Hour16
   - Min10
   - Sec15
   - Day of Year108
   - Day of Week4 (THURSDAY)
   Difference between Time Current and Time Trade Server: -1
  */
  }