기고글 토론 "MetaTrader 5와 MQL5 경제 달력: 뉴스를 재현 가능한 있는 트레이딩 시스템으로 구현하는 방법"

 

새로운 기고글 MetaTrader 5와 MQL5 경제 달력: 뉴스를 재현 가능한 있는 트레이딩 시스템으로 구현하는 방법 가 게재되었습니다:

이 글에서는 MetaTrader 5에 내장된 경제 달력를 활용한 뉴스 트레이딩에 대한 체계적인 접근 방식에 대해 알아봅니다: 구체적으로는 데이터 구조, API 함수, 시간 동기화 규칙 및 이벤트 필터링에 대해 알아봅니다. 서버에 과부하를 일으키지 않고 캐싱 및 점진적인 업데이트를 하는 방법이 다루어집니다. 또한 동일한 알고리즘을 사용하여 결정적 테스트를 위해 히스토리를 .EX5 리소스로 내보내는 작동 메커니즘도 제공합니다.

현대 뉴스 트레이더의 주요 문제점은 파편화된 도구들과 체계적인 알고리즘 트레이딩 워크 플로우의 부재입니다. 매매를 하면서 인터넷 브라우저(뉴스 사이트 검색)와 거래 단말기에 동시에 주의를 기울이는 것은 상당히 어렵습니다.

뉴스 트레이더의 워크 플로우는 다음과 같습니다: 웹 브라우저에서 뉴스 달력을 빠르게 열고 이벤트 변경 사항을 확인 → 다가오는 이벤트를 재빨리 평가하고 매매할 내용과 방법을 결정 → MetaTrader 5 터미널로 이동해서 펜딩 오더를 설정하거나 터미널에서 뉴스 발표를 기다렸다가 결정. 이러한 시나리오에서 트레이더는 종종 작업 맥락을 놓치게 되어 뉴스와 관련한 반응이 지연되고 결국 손실로 이어집니다.

뉴스 트레이딩이 명확한 규칙, 반복 가능한 결과, 자동화된 테스트를 갖춘 엔지니어링처럼 작동하기를 원하시나요? 이 글의 목적은 MetaTrader 5 용 뉴스 레이어의 작동 아키텍처를 보여주는 것입니다: 단일 데이터 소스, 달력 API의 적절한 사용, 필터링 및 캐싱 메커니즘, 과거 이벤트를 테스터 용 리소스로 내보내기, 그리고 실시간과 테스터 간 자동 전환 기능을 통해 동일한 코드로 실시간 데이터와 과거 데이터 모두에서 일관된 결정적 결과를 도출할 수 있도록 합니다.


작성자: MetaQuotes

 

기사 감사합니다. 정말 흥미롭네요. 어떻게 작동하는지 자세히 알아보겠습니다... 저도 Vibe 코드와 AI 에이전트를 뉴스와 트위터 파서를 통해 연결해 보고 싶었는데, 그렇게 해볼 생각입니다... MQL5와 AI 에이전트를 결합한 하이브리드 방식도 구성할 수 있겠네요....

 
Roman Shiredchenko #:

기사 감사합니다. 정말 흥미롭네요. 어떻게 작동하는지 자세히 알아보겠습니다... 저도 Vibe 코드와 AI 에이전트를 통해 트위터 뉴스와 파서를 연결하고 싶었는데, 이제 해볼 수 있겠네요... MQL5와 AI 에이전트를 결합한 하이브리드 방식도 구성할 수 있겠네요....

모든 세부 사항이 담긴 전체 거래 내역이 이미 터미널에 있는데 굳이 무언가를 파싱할 필요가 있을까요? 게다가 AI도 이미 있잖아요)
 
Dmitriy Skub #:
터미널에 모든 세부 사항이 담긴 전체 기록이 이미 있는데 굳이 무언가를 파싱할 필요가 있을까요? 게다가 AI도 있잖아요)

멋지네, 봐야겠다... 그리고 바이브 코딩도 해야지... )

 

작성 내용:

Если брокер учитывает переход на летнее/зимнее время — календарь автоматически подстраивается под этот переход

MQL5 API에 변경 사항이 있다면 지적해 주시기 바랍니다만, 예전에는 캘린더가 일광 절약 시간제(DST)를 고려하여 '현재' 시간대에 맞춰 조정되었습니다. 즉, 여름철에는 함수 호출 시 UTC+3 시간대의 타임스탬프가 반환되는 반면, 반면 겨울철에 동일한 기간의 기록에 대한 요청은 UTC+2 시간대의 타임스탬프가 붙은 이벤트를 반환받게 됩니다. 이는 서버가 일광 절약 시간제(DST)로 전환하고 다시 원래 시간대로 되돌리는 경우입니다. 따라서 반년 이상의 기간에 걸친 캘린더 기록을 정확하게 불러오려면 브로커의 시간대 변경 이력을 분석해야 합니다. 자세한 내용은 코드베이스에서 확인하세요.

또한 리소스 형태의 캘린더 링크 캐시 방식은 실용성이 떨어질 뿐만 아니라, 특히 본문에서 언급된 오류(예: 전문가(Expert)를 재컴파일하는 것을 잊지 마세요)를 유발합니다. 모든 에이전트가 접근할 수 있는 Common 폴더에 있는 파일로 캘린더 캐시를 입력 매개변수에 지정하는 것은 어떨까요?

Economic Calendar Monitor and Cache for Backtesting on History
Economic Calendar Monitor and Cache for Backtesting on History
  • 2024.11.10
  • www.mql5.com
This indicator displays current events on the chart and allows you to export the calendar to archives for backtesting, automatically fixing time discrepancies between the history of bars and the history of events. This is an improved version of CalendarMonitorCached indicator from the algotrading book.
 
MQL5 API에 변경 사항이 있다면 지적해 주시기 바랍니다만, 예전에는 캘린더가 일광 절약 시간제(DST)를 반영하여 ‘현재’ 시간대에 맞춰 조정되었습니다. 즉, 여름철에는 함수 호출 시 UTC+3 시간대의 타임스탬프가 반환되는 반면, 반면 겨울철에 동일한 기간의 기록을 조회하면 서버가 일광 절약 시간제로 전환하고 다시 원래 시간대로 되돌릴 경우, UTC+2 시간대의 타임스탬프가 붙은 이벤트를 받게 됩니다. 따라서 반년 이상의 기간에 걸친 캘린더 기록을 정확하게 추출하려면 브로커의 시간 변환 이력을 분석해야 합니다 часового пояса 브로커의 이력 데이터를 분석해야 합니다. 자세한 내용은 코드베이스에서 확인하세요.

그런데 왜 호가(사실상 모든 타임스탬프)가 예를 들어 UTC로 관리되지 않는 것일까요?

왜 딜러들의 틱이 동일한 시간 기준에 대해 서로 다른 수치로 표현되는 것일까요?

철학적 질문이네요 :-) 그냥 관례가 그렇게 되어버렸을 뿐입니다. 비록 이것이 틀렸고 별다른 이유 없이 문제를 일으키긴 하지만요.


추신. 그래서 “과거 뉴스”는 다른 출처에서 가져오는 편이 좋습니다.

그리고 절대로 직접 “시계 변환 이력을 분석”해서는 안 됩니다. 이 모든 것은 이미 존재하며, OS 기능이나 시스템 라이브러리의 일부입니다. tzdata를 검색해 보세요

자전거를 얼마나 더 만들 수 있을까, 게다가 엉성한 자전거를

 
Stanislav Korotky #:

이전에는 달력이 일광 절약 시간제(DST)를 고려하여 현재 시간대에 맞춰 조정되었는데, 즉 여름철에는 함수 호출 시 UTC+3 시간대의 타임스탬프가 반환되고, 반면 겨울철에 동일한 기간의 기록을 조회하면, 서버가 일광 절약 시간제(DST)로 전환하고 다시 원래 시간대로 되돌리는 경우, UTC+2 시간대의 타임스탬프가 붙은 이벤트를 받게 됩니다.

저도 같은 인상을 받았습니다.
 
Maxim Kuznetsov #:


추신. 그러니 "역사 관련 뉴스"는 다른 출처에서 확인하는 편이 좋습니다.

그리고 절대 직접 "시계 번역의 역사"를 "분석"해서는 안 됩니다. 이 모든 정보는 이미 존재하며, OS의 기능이나 시스템 라이브러리의 일부입니다. tzdata를 구글에서 검색해 보세요.

자전거를 얼마나 더 만들 수 있을까, 게다가 엉성한 자전거를


다른 출처로는 문제를 해결할 수 없습니다. 이 문제는 MT5에서 시세 데이터를 저장하는 방식에 깊이 뿌리박혀 있기 때문입니다.

우선 여러분이 만든 제대로 된 자전거를 보여주신 다음에 조언을 해 주세요.

 
MetaQuotes:

현대 뉴스 트레이더가 직면한 주요 문제는 도구 세트가 파편화되어 있고 체계적인 알고리즘 기반 거래 워크플로가 부족하다는 점입니다. 거래를 진행하는 동안 인터넷 브라우저(뉴스 사이트 탐색)와 거래 터미널 사이에서 주의를 분산시키는 것은 상당히 어렵습니다.

뉴스 트레이더의 워크플로는 다음과 같습니다. 웹 브라우저에서 뉴스 캘린더를 빠르게 열어 이벤트 변경 사항을 확인 → 예정된 이벤트를 신속하게 평가하고 무엇을, 어떻게 거래할지 결정 → MetaTrader 5 터미널로 이동하여 보류 주문을 넣거나, 터미널 앞에 앉아 뉴스 발표를 기다리며 결정을 내립니다. 이러한 상황에서 트레이더는 종종 맥락을 놓치게 되며, 이는 뉴스에 대한 반응 지연으로 이어지고, 결국 손실로 이어집니다.

뉴스 트레이딩을 명확한 규칙, 재현 가능한 결과, 자동화된 테스트가 적용된 공학적 문제처럼 처리하고 싶으신가요? 이 기사의 목적은 MetaTrader 5용 뉴스 레이어의 작동 아키텍처를 보여주는 것입니다: 단일 데이터 소스, 캘린더 API의 적절한 활용, 필터링 및 캐싱 메커니즘, 테스터용 리소스로의 과거 이벤트 내보내기, 그리고 라이브와 테스터 간의 자동 전환을 통해 동일한 코드가 실시간 데이터와 과거 데이터 모두에서 결정론적인 결과를 산출하도록 하는 것입니다.

네, 이것이 바로 뉴스 트레이딩의 진정한 고충입니다.

브라우저, 캘린더, 터미널 사이를 오가다 보면 집중력이 흐트러지고 반응 속도도 크게 떨어집니다. 뉴스를 거래 환경으로 직접 불러오는 통합된 워크플로우나 시스템을 갖추면 실행 속도가 확실히 빨라지고 일관성도 높아질 것입니다.

테스트와 자동화를 통해 이를 구조화되고 반복 가능한 “엔지니어링 방식”의 설정으로 전환한다는 아이디어는, 감정적 결정이나 지연된 결정을 피하는 데 실제로 매우 합리적입니다.