거장이 재단을 맡았습니다. 브라보! 큰 변화가 다가오고 있습니다 :)
아직 아무것도 오지 않았습니다. 라이브러리.
#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/ko/code/32430 int OnInit() { return(!EventSetTimer(1)); } void OnTimer() { CALENDAR Calendar; string Currencies[2]; // 현재 캐릭터의 통화를 가져옵니다. Currencies[0] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_BASE); Currencies[1] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT); // 예정된 중요한 이벤트를 기호 통화별로 표시합니다. Calendar.Set(Currencies); Comment(Calendar.ToString(0, 5, true)); // 인쇄했습니다. }
중요한 뉴스를 놓칠 확률이 크게 줄어듭니다.
이러한 0에서 해쳇 호출은 0.6ms 이내에 실행됩니다. 물론 소비량을 0으로 줄일 수도 있습니다.
Stanislav Korotky:
ИМХО, все же не хватает более подробной документации. Понятно, что можно заглянуть в код, но тогда вместо разбирания в чужом коде можно и свой написать ;-).
mqh 내에서 Alt+M을 누릅니다. 메서드의 이름은 말이 되는 것 같습니다.
특히 Set을 먼저 수행하지 않고도 Get을 호출할 수 있는지 여부와 필터를 롤백할 수 있는지 여부가 명확하지 않습니다(제가 알기로는 불가능합니다).
Set - 개체를 이벤트로 채웁니다. 액세스하는 것은 배열의 요소에 액세스하는 것과 같습니다.
위의 예에서 이벤트 발생을 추적하는 더 편리한 방법이 있는지 명확하지 않습니다. 특히 내가 올바르게 이해했다면 데이터 업데이트가 반드시 이벤트 시작과 정확히 일치하는 것은 아니기 때문에 TimeCurrent의 발생이 아닌 change_id를 비교해야합니다.
백테스트에 대해 이야기하고 있다면 change_id는 존재하지도 않고 존재할 수도 없습니다.
실시간의 경우, 이 기능은 라이브러리에 조금 후에 추가될 예정입니다.
필터 롤백은 다른 모든 곳과 동일하게 필터 이전의 객체 복사본을 만듭니다.
구조적으로 다른 데이터 소스를 파서 형태로 임베드할 수 있도록 만들어졌습니다. 이를 위해 EVENT::Source 필드도 있는데, 이 필드는 이제 "MetaTrader5" 하나의 값과 동일합니다.
따라서 캘린더를 스택하는 기능이 있습니다. 여러 소스에서 데이터를 가져온 다음 한 곳에서 결합한다고 가정했습니다.
백테스트에 대해 이야기하는 경우 change_id는 존재하지 않으며 존재할 수도 없습니다.
실제 이벤트는 변경될 수 있으며, 테스터가 (라이브러리를 통해) 변경 이력을 재현하지 않으면 테스트의 적절성이 떨어집니다. 비슷한 주제가 이미 일부 스레드에서 다루어졌습니다. 이벤트의 온라인 지표가 동일하고 수정된 경우입니다. 수정 된 값을 사용하여 테스트하면 전문가가 "즉석에서"분석 한 그림을 얻을 수 없습니다. 아니면 업데이트에 대한 액세스 권한을 잘못 이해한 것일 수도 있습니다.
실제 이벤트는 변경될 수 있으며, 테스터가 (라이브러리를 통해) 변경 이력을 재현하지 않으면 테스트의 적절성이 떨어집니다. 비슷한 주제가 이미 일부 스레드에서 다루어졌습니다. 이벤트의 온라인 지표가 동일하고 수정된 경우입니다. 수정 된 값을 사용하여 테스트하면 전문가가 "즉석에서"분석 한 그림을 얻을 수 없습니다. 아니면 업데이트에 대한 액세스 권한을 잘못 이해한 것일 수도 있습니다.
캘린더에는 각 이벤트에 대해 네 가지 값이 포함되어 있습니다:
- 현재(실제) - 보도 자료가 나온 후 처음 받은 값입니다.
- 예측 - 뉴스가 공개되기 전에 예측된 값(누가?)입니다.
- 이전 - 이전에 동일한 캘린더 뉴스가 릴리스된 후 가장 먼저 수신된 값입니다. 즉, 이전 시간의 실제와 같습니다: 이전[i] = 실제[i - 1].
- 수정됨 - 이전 실제의 조정된 값입니다. 이 업데이트의 시간(및 횟수)은 캘린더에 저장되지 않습니다.
모든 HTML 캘린더( 표준 캘린더 및 터미널 포함)에서 트리플(실제, 예상, 이전) = (실제, 예상, 수정)이 됩니다. 따라서 다음 관련 이벤트가 발생할 때까지 기록에서 수정됨 필드를 사용할 수 없습니다. 다른 필드는 사용할 수 있습니다.
실제 수신의 지연 값 또는 더 정확하게는 특정 트레이딩 서버와 뉴스 소스의 동기화 해제에 대한 정보는 없습니다(그리고 있을 수도 없습니다). 그렇기 때문에 백테스트에서 고려하지 않습니다. 이 뉘앙스는 분명합니다.
위의 내용을 고려할 때, 백테스트에서 타임트레이드 서버와 이벤트 시간을 비교하는 것은 완전히 합법적입니다. 그리고 이벤트 직전의 값 (이전, 예상,수정)과 이벤트 직후의 값 (실제, 예상,이전 )을 사용합니다.

캘린더:
캘린더 - 기록 및 실시간에 대한 기본 분석.
Author: fxsaber