- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueHistory
국가 및 통화별로 정렬할 수 있는 기능을 사용하여 지정된 시간 범위의 모든 이벤트에 대한 값 배열을 가져오기.
bool CalendarValueHistory(
|
매개변수
values[]
[out] 이벤트 값을 수신하기 위한 MqlCalendarValue 유형 배열. 다음을 확인 하세요캘린더 이벤트 핸들링 예제.
datetime_from
[in] 시간 범위 이벤트의 초기 날짜는 지정된 아이디로 선택되고, 반면 datetime_from < datetime_to.
datetime_to=0
[in] 시간 범위 이벤트의 종료 날짜는 지정된 ID로 선택됩니다. datetime_to 가 설정되지 않은 경우(또는 0인 경우), 캘린더 데이터베이스에서 지정된 datetime_from으로 시작하는 모든 이벤트 값이 반환됩니다 (향후 이벤트 값을 포함).
country_code=NULL
[in] 국가 코드명 (ISO 3166-1 alpha-2)
currency=NULL
[in] 국가 통화 코드명.
값 반환
성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 오류에 대한 정보를 얻기 위해GetLastError() 함수 호출. 가능한 오류:
- 4001 – ERR_INTERNAL_ERROR (일반 실행시간 오류),
- 4004 – ERR_NOT_ENOUGH_MEMORY (요청된 작업을 위한 메모리가 충분하지 않음),
- 5401 – ERR_CALENDAR_TIMEOUT (요청시간 제한 초과),
- 5400 – ERR_CALENDAR_MORE_DATA (배열 크기가 부족하여 모든 값에 대한 설명을 받을 수 없으며, 해당 값에 대한 설명만 수신됨),
- 다음에 대한 실행 실패 오류: ArrayResize()
주의
이코노믹 캘린더로 작업하는 모든 기능은 무역 서버 시간 (TimeTradeServer)을 사용합니다. 즉, MqlCalendarValue 구조 및 시간과 CalendarValueHistoryByEvent/CalendarValueHistory 기능의 시간 입력은 사용자의 로컬 시간이 아니라 거래 서버 시간대에 설정됩니다.
고정된 길이의 events[] 배열이 함수에 전달되어 전체 결과를 저장할 공간이 충분하지 않으면 ERR_CALENDAR_MORE_DATA (5400) 오류가 활성화됩니다.
만약datetime_to가 설정되지 않은 경우(또는 0인 경우), 캘린더 데이터베이스에서 지정된 datetime_from으로 시작하는 모든 이벤트 값이 반환됩니다(향후 이벤트 값 포함).
country_code 및 통화 필터의 경우, NULL 및 "" 값은 동일하며 필터의 부재를 의미합니다.
country_code의 경우, MqlCalendarCountry 구조의코드필드(예:"US", "RU" 또는 "EU")를 사용해야 합니다.
통화의 경우, MqlCalendarCountry 구조의 통화 필드(예: "USD", "RUB" 또는 "EUR")를 사용해야 합니다.
필터는 연결로 적용되는데, 즉 논리적 'AND'는 두 조건(국가 및 통화)이 동시에 충족되는 이벤트 값만 선택하는데 사용됩니다.
MqlCalendarValue structure는 actual_value, forecast_value, prev_value 와 revised_prev_value 필드의 value를 체크하고 세팅하는 메서드를 제공합니다. 만약 아무런 value도 없을 경우 필드는 LONG_MIN (-9223372036854775808)을 저장합니다.
이들 필드에 저장된 value에는 백만이 곱해집니다. 다음의 함수를 사용하여 MqlCalendarValu에서 밸류를 받을때 CalendarValueById, CalendarValueHistoryByEvent, CalendarValueHistory, CalendarValueLastByEvent and CalendarValueLast, 필드 밸류가 LONG_MIN과 같은지 확인해야 합니다; 만약 필드에 밸류가 지정된 경우 밸류를 얻기 위해서는 밸류를 1,000,000로 나누어 줘야 합니다. value를 가져오는 또 다른 방법은 MqlCalendarValue 구조의 함수를 사용하여 value를 확인하고 가져오는 것입니다.
예를 들어:
//+------------------------------------------------------------------+
|
추가 참조
CalendarCountries, CalendarEventByCountry, CalendarValueHistoryByEvent, CalendarEventById, CalendarValueById