거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
라이브러리

Calendar-Based Backtesting: an Event-Driven Trading EA - MetaTrader 5용 라이브러리

조회수:
92
평가:
(4)
게시됨:
\MQL5\Include\
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

코드에는 이해를 돕기 위한 주석이 가득합니다. 이 설명에서는 주요 아이디어와 코드를 사용/재사용하는 방법을 설명합니다.

이 프레임워크는 세 가지 주요 구성 요소로 이루어져 있습니다:

1. CalendarRetriever.mq5(스크립트) - 이 스크립트는 과거의 경제 뉴스 이벤트를 가져와서 터미널의 "공통" 폴더에 있는 파일에 저장합니다. 이 파일은 나중에 백테스팅 중에 전문 어드바이저가 읽게 됩니다. 이 스크립트에는 두 가지 입력 매개변수가 필요합니다:

  • 시작 날짜 - 과거 뉴스 이벤트를 검색할 날짜입니다.
  • 종료 날짜 - 뉴스 이벤트를 저장해야 하는 마지막 날짜입니다.

이 스크립트를 실행하면 터미널의 "Common" 디렉터리에 "Calendar" 폴더가 생성되고 다음 텍스트 파일이 생성됩니다:

  • Countries.txt - 각 MQLCalendarCountry에 대한 정보를 포함합니다.
  • Events.txt - 이름, 영향력 및 국가 ID와 같은 이벤트 세부 정보를 저장합니다.
  • News.bin - 타임스탬프를 포함한 과거 뉴스 이벤트 값을 보관합니다.

    2. CalendarFile.mq (파일 포함) - 이 파일은 전문가 어드바이저에서 뉴스 데이터를 처리하는 구조화된 방법을 제공합니다. 이 파일에는 두 가지 주요 클래스가 포함되어 있습니다:

    • CalendarFileWriter - 스크립트에서 내부적으로 뉴스 데이터를 저장하는 데 사용됩니다.
    • CalendarFileReader - 전문가 어드바이저에서 뉴스 데이터를 읽고 처리하는 데 사용됩니다. 여기에는 이벤트 데이터를 로드하고 OnTick 함수에서 예정된 뉴스를 추적하는 함수가 포함되어 있습니다.
    3. NewsBacktest.mq5 (Expert Advisor) - 이 EA는 저장된 데이터를 사용하여 전략 테스터에서 실시간 뉴스 상황을 시뮬레이션합니다. 로드 기능을 사용하여 저장된 뉴스 데이터를 읽고 그에 따라 거래를 실행합니다.

    프레임워크 사용 방법:

    1. 캘린더 리트리버 스크립트 실행: 백테스트하려는 심볼을 선택하고 지정된 시작일과 종료일로 캘린더 리트리버.mq5 스크립트를 실행합니다.

    2. 전문가 조언자

      • EA는 CalendarFileReader 클래스를 사용하여 다음 함수를 사용하여 데이터를 로드합니다:
        • LoadEvents() - 이벤트 세부 정보를 로드합니다.
        • LoadCountries() - 국가 정보를 로드합니다.
        • LoadValues() - 과거 뉴스 값을 로드합니다.
      • 그런 다음 OnTick 함수에서 뉴스 이벤트를 처리하여 뉴스 이벤트가 발생하는 시기를 결정합니다. 예측하려면 Propagate(), 반응하려면 Track()을 사용합니다.
      • 다음 인덱스를 다음 예정된 이벤트로 설정하는 CalendarFileReader.Propagate() 함수는 매 틱마다 호출되어야 합니다.
      • CalendarFileReader.Track() 함수는 뉴스 이벤트가 지나가면 참을 반환하고 마지막 인덱스를 해당 특정 이벤트로 설정합니다. OnTick() 함수에서도 호출되지만 결과를 확인해야 합니다.
    3. 전략 백테스트하기 메타트레이더 5에서 전략 테스터를 열고 뉴스백테스트.mq5를 선택한 후 시각 모드에서 백테스트를 실행합니다.

    자신의 뉴스 기반 전략에 적용하는 방법:

    이 프레임워크는 유연하게 설계되어 트레이더가 경제 뉴스 이벤트를 중심으로 자신만의 전략을 개발할 수 있습니다. 다음은 이를 수정할 수 있는 몇 가지 방법입니다:

    • 특정 뉴스 유형에 반응하도록 OnTick()의 이벤트 필터링 로직을 조정합니다(예: NFP 또는 CPI 발표 이후에만 거래).
    • 주문 실행 로직을 수정하여 브레이크 아웃 거래 대신 초기 이동을 페이드하는 등 다양한 전략을 구현합니다.
    • 뉴스 이벤트와 함께 추가 지표를 사용하여 진입 신호를 구체화합니다.
    • 이벤트 영향 수준에 따라 지정가 주문의 만기 시간을 변경합니다.

    이 솔루션은 메타트레이더 5의 한계 내에서 뉴스 기반 전략을 최대한 현실적으로 백테스팅할 수 있게 해줍니다. 먼저 과거 뉴스 데이터를 검색한 다음 시장에 미치는 영향을 시뮬레이션함으로써 트레이더는 자신의 전략이 실제 상황에서 어떻게 작동하는지에 대한 귀중한 통찰력을 얻을 수 있습니다.

    더 쉽게 이해하려면 관련 동영상을 확인하시기 바랍니다:




    MetaQuotes Ltd에서 영어로 번역함.
    원본 코드: https://www.mql5.com/en/code/55630

    추세 평형 지표 TrendEQ 추세 평형 지표 TrendEQ

    추세 균형 지표 TrendEQ는 모멘텀과 변동성을 결합하여 시장 추세를 동적으로 분석합니다. 시장 추세에 대한 모멘텀을 측정함으로써 TrendEQ는 추세 강도와 방향에 대한 신뢰할 수 있는 척도를 제공합니다.

    다중 통화 모드 제어판 "제어판 MCM" 다중 통화 모드 제어판 "제어판 MCM"

    메타트레이더 5 터미널에서 다중 통화 지표 및 전문가 조언자를 위한 실제 다중 통화 모드 제어판의 변형을 제공합니다.

    지방 패널 지방 패널

    "MQL5 최고의 그래픽 제어판" 콘테스트에 참가할 수 있는 패널입니다. 패널의 특징은 시각적 모드에서 트레이딩 전략을 만들 수 있다는 점입니다.

    경쟁 대시보드 경쟁 대시보드

    수동 트레이딩 및 포지션 유지 간소화