test_calendar (EURUSD,M1) 2023.10.0615:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar (EURUSD,M1) 2023.11.0315:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar (EURUSD,M1) 2023.12.0815:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar (EURUSD,M1) 2024.01.0515:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar (EURUSD,M1) 2024.02.0215:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar (EURUSD,M1) 2024.03.0815:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar (EURUSD,M1) 2024.04.0515:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar (EURUSD,M1)
test_calendar (XAUUSD,M1) 2023.10.0615:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar (XAUUSD,M1) 2023.11.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar (XAUUSD,M1) 2023.12.0815:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar (XAUUSD,M1) 2024.01.0515:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar (XAUUSD,M1) 2024.02.0215:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar (XAUUSD,M1) 2024.03.0815:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar (XAUUSD,M1) 2024.04.0515:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar (XAUUSD,M1)
BrokerDaylightSchedule (XAUUSD,M1) Server : FXOpen-MT5
BrokerDaylightSchedule (XAUUSD,M1) Time : 2024.04.1303:05:59
BrokerDaylightSchedule (XAUUSD,M1) Offset : GMT+3
BrokerDaylightSchedule (XAUUSD,M1) DST_US : server dst begins on the second Sunday of March (+1) and ends on the first Sunday of November (-1)
Trading.com
test_calendar (EURUSD,H4) 2023.10.0608:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar (EURUSD,H4) 2023.11.0307:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar (EURUSD,H4) 2023.12.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar (EURUSD,H4) 2024.01.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar (EURUSD,H4) 2024.02.0208:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar (EURUSD,H4) 2024.03.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar (EURUSD,H4) 2024.04.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar (EURUSD,H4)
test_calendar (USDJPY,H1) 2023.10.0608:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar (USDJPY,H1) 2023.11.0308:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar (USDJPY,H1) 2023.12.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar (USDJPY,H1) 2024.01.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar (USDJPY,H1) 2024.02.0208:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar (USDJPY,H1) 2024.03.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar (USDJPY,H1) 2024.04.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar (USDJPY,H1)
BrokerDaylightSchedule (USDJPY,H1) Server : Trading.comMarkets-MT5
BrokerDaylightSchedule (USDJPY,H1) Time : 2024.04.1220:06:30
BrokerDaylightSchedule (USDJPY,H1) Offset : GMT-4
BrokerDaylightSchedule (USDJPY,H1) DST_US : server dst begins on the second Sunday of March (+1) and ends on the first Sunday of November (-1)
오류의 원인을 추적한 결과, DST::IsEurope()에 구현된 알고리즘이 신뢰할 수 없기 때문에(즉, 스프레드 스캔) 이 DST_US 브로커에 대해 DST::RolloverTime()이 잘못 참을 반환하는 것으로 확인되었습니다.
test_calendar_fixed.mq5
#include "Calendar.mqh"#include "TimeZoneInfo.mqh"// https://www.mql5.com/en/code/48419voidOnStart()
{
CALENDAR Calendar;
if(Calendar.Set(NULL, CALENDAR_IMPORTANCE_NONE, D'2023.10.1', TimeCurrent()))
{
Calendar.FilterByEventID(840030016); // NFP//Calendar.AutoDST();//-----------------------------------------------------------------------
EVENT eEvents[];
Calendar.GetEvents(eEvents); // 이벤트를 추출합니다.for(int i = ArraySize(eEvents) - 1; i >= 0; i--)
{
if(eEvents[i].TimeMode == CALENDAR_TIMEMODE_DATETIME ||
eEvents[i].TimeMode == CALENDAR_TIMEMODE_TENTATIVE)
{
//--- 서버 시간 변환 -> GMT
eEvents[i].time += DST::TimeServerGMTOffset();
//--- GMT 변환 -> 다시 서버 시간으로 변환(올바른 오프셋 사용)
eEvents[i].time = CTimeZoneInfo::ConvertTimeForPlace(eEvents[i].time, ZONE_ID_UTC, ZONE_ID_BROKER);
}
}
Calendar = eEvents; // 이벤트 복원//-----------------------------------------------------------------------Print(Calendar.ToString());
}
}
이제 결과가 정확합니다:
test_calendar_fixed (EURUSD,H4) 2023.10.0608:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar_fixed (EURUSD,H4) 2023.11.0308:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar_fixed (EURUSD,H4) 2023.12.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar_fixed (EURUSD,H4) 2024.01.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar_fixed (EURUSD,H4) 2024.02.0208:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar_fixed (EURUSD,H4) 2024.03.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar_fixed (EURUSD,H4) 2024.04.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar_fixed (EURUSD,H4)
test_calendar_fixed (USDJPY,H1) 2023.10.0608:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar_fixed (USDJPY,H1) 2023.11.0308:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar_fixed (USDJPY,H1) 2023.12.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar_fixed (USDJPY,H1) 2024.01.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar_fixed (USDJPY,H1) 2024.02.0208:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar_fixed (USDJPY,H1) 2024.03.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar_fixed (USDJPY,H1) 2024.04.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar_fixed (USDJPY,H1)
BrokerDaylightSchedule (USDJPY,H1) Server : Trading.comMarkets-MT5
BrokerDaylightSchedule (USDJPY,H1) Time : 2024.04.1220:11:17
BrokerDaylightSchedule (USDJPY,H1) Offset : GMT-4
BrokerDaylightSchedule (USDJPY,H1) DST_US : server dst begins on the second Sunday of March (+1) and ends on the first Sunday of November (-1)
test_calendar (USDJPY,H1) 2023.10.0608:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar (USDJPY,H1) 2023.11.0308:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar (USDJPY,H1) 2023.12.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar (USDJPY,H1) 2024.01.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar (USDJPY,H1) 2024.02.0208:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar (USDJPY,H1) 2024.03.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar (USDJPY,H1) 2024.04.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar (USDJPY,H1)
test_calendar (EURUSD,H4) 2023.10.0608:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar (EURUSD,H4) 2023.11.0307:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar (EURUSD,H4) 2023.12.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar (EURUSD,H4) 2024.01.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar (EURUSD,H4) 2024.02.0208:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar (EURUSD,H4) 2024.03.0808:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar (EURUSD,H4) 2024.04.0508:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar (EURUSD,H4)
BrokerDaylightSchedule (EURUSD,H4) Server : Trading.comMarkets-MT5
BrokerDaylightSchedule (EURUSD,H4) Time : 2024.04.1317:40:05
BrokerDaylightSchedule (EURUSD,H4) Offset : GMT-4
BrokerDaylightSchedule (EURUSD,H4) DST_US : server dst begins on the second Sunday of March (+1) and ends on the first Sunday of November (-1)
DST_NONE 브로커에도 또 다른 문제가 있으니 주의하세요:
test_calendar (EURUSDm,M5) 2023.10.0612:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar (EURUSDm,M5) 2023.11.0312:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar (EURUSDm,M5) 2023.12.0812:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar (EURUSDm,M5) 2024.01.0512:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar (EURUSDm,M5) 2024.02.0212:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar (EURUSDm,M5) 2024.03.0812:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar (EURUSDm,M5) 2024.04.0512:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar (EURUSDm,M5)
test_calendar_fixed (EURUSDm,M5) 2023.10.0612:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 336 K | 1 K | 187 K | 227 K
test_calendar_fixed (EURUSDm,M5) 2023.11.0312:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 150 K | -8 K | 336 K | 297 K
test_calendar_fixed (EURUSDm,M5) 2023.12.0813:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | -3 K | 150 K |
test_calendar_fixed (EURUSDm,M5) 2024.01.0513:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 216 K | 1 K | 199 K | 173 K
test_calendar_fixed (EURUSDm,M5) 2024.02.0213:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 353 K | 186 K | 216 K | 333 K
test_calendar_fixed (EURUSDm,M5) 2024.03.0813:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 275 K | 220 K | 353 K | 229 K
test_calendar_fixed (EURUSDm,M5) 2024.04.0512:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 303 K | 176 K | 275 K | 270 K
test_calendar_fixed (EURUSDm,M5)
BrokerDaylightSchedule (EURUSDm,M5) Server : Exness-MT5Trial
BrokerDaylightSchedule (EURUSDm,M5) Time : 2024.04.1321:46:15
BrokerDaylightSchedule (EURUSDm,M5) Offset : GMT+0
BrokerDaylightSchedule (EURUSDm,M5) DST_NONE
exness 서버가 DST로 변경되지 않기 때문입니다. 뉴욕은 겨울철에 GMT-5이므로 뉴욕 시간 오전 08:30의 NFP는 (08:30 + 5:00 오프셋) = 13:30 Exness 서버 시간과 일치해야 합니다.
12:30에서 직접 뺍니다(-3 + 31*/2 대신):
일부러 이렇게 한 것은 아니며, 향후에는 CalendarValueHistoryByEvent의 입력 매개변수를 변경할 수 있을 것으로 예상하기 때문입니다.
일부러 이렇게 한 것은 아니며, 향후에는 CalendarValueHistoryByEvent의 입력 매개변수를 변경할 수 있을 것으로 예상하기 때문입니다.
를 사용할 수 있습니다:
라이브러리를 업데이트한 후에는 캘린더를 모든 브로커의 호가 기록과 동기화해야 합니다.
...
최신 버전에서 시간별 정렬이 제거되었나요?
최신 버전에서 시간 정렬을 제거했나요?
예. MQ가 정렬되었다고 확신했습니다. 제가 틀렸습니다.
ZY가 추가되었습니다.
안타깝게도 현재 캘린더를 신뢰할 수 없습니다.
다음은 이벤트 목록에서 중요한 CHF 뉴스가 누락된 경우와 이에 대한 시장의 반응입니다.
그리고 이것은 뉴스가 있는 또 다른 캘린더입니다.
튜토리얼에서 캘린더 작업에 대한 보물창고 같은 정보를 발견했습니다. 특히 테스터에서요.
Теперь мы можем выбрать индикатор CalendarMonitorCached.mq5 в тестере и увидеть в динамике, на истории, как меняется таблица новостей.
테스터의 캘린더 캐시가 있는 뉴스 인디케이터
캘린더 캐시가 있으면 뉴스에 대한 트레이딩 전략을 테스트할 수 있습니다. 다음 섹션에서 보여드리겠습니다.
같은 코드, 차트 기호에 따라 다른 결과가 나왔습니다. 2개의 브로커를 테스트했습니다.
test_calendar.mq5
FXOpen:
Trading.com
오류의 원인을 추적한 결과, DST::IsEurope()에 구현된 알고리즘이 신뢰할 수 없기 때문에(즉, 스프레드 스캔) 이 DST_US 브로커에 대해 DST::RolloverTime()이 잘못 참을 반환하는 것으로 확인되었습니다.
test_calendar_fixed.mq5
이제 결과가 정확합니다:
라이브러리 수정에 도움이 되었기를 바랍니다.
같은 코드, 차트 기호에 따라 다른 결과가 나왔습니다. 2개의 브로커를 테스트했습니다.
오류의 원인을 추적한 결과, DST::IsEurope()에 구현된 알고리즘이 신뢰할 수 없기 때문에(즉, 스프레드 스캔) 이러한 DST_US 브로커에 대해 DST::RolloverTime()이 잘못 참을 반환하는 것으로 나타났습니다.
test_calendar_fixed.mq5
이제 결과가 올바릅니다:
라이브러리 수정에 도움이 되었기를 바랍니다.
버그를 발견하고 재현하는 방법과 제안된 해결책을 알려주셔서 대단히 감사합니다!
DST.mqh 파일을 변경했습니다.
DST_US 브로커에서는 완전히 수정되지 않았습니다.
DST_NONE 브로커에도 또 다른 문제가 있으니 주의하세요:
exness 서버가 DST로 변경되지 않기 때문입니다. 뉴욕은 겨울철에 GMT-5이므로 뉴욕 시간 오전 08:30의 NFP는 (08:30 + 5:00 오프셋) = 13:30 Exness 서버 시간과 일치해야 합니다.안타깝게도 현재 캘린더를 신뢰할 수 없습니다.
매우 유감스럽게도 MQ 캘린더에는 현재 날짜의 이벤트 시간에도 오류가 있습니다.
뉴스는 07:30(위의 대체 캘린더와 기호 그래프에서는)이지만, MQ 캘린더에서는 ( 웹 버전 포함) 뉴스가 한 시간 후에 있을 것이라고 말합니다.