시스템트레이딩 게시글

MetaTrader 5에서 멀티 통화 OnTick 이벤트 핸들러 사용하기

첨부파일
280.zip (5 KB, 다운로드 0회)

안녕하세요, 트레이더 여러분! 오늘은 MetaTrader 5에서 멀티 통화 모드를 활용하는 방법에 대해 이야기해보려고 해요. 새로운 OnTick(string symbol) 함수 구현을 통해 여러 통화를 동시에 관리할 수 있는 방법을 소개할게요.

주요 이점:

  • 실제 데모 및 실계좌에서 진정한 멀티 통화 모드를 제공합니다.
  • 설정이 간편합니다.
  • OnTick(string symbol) 이벤트 리스트를 NewTick 및/또는 NewBar로 설정할 수 있습니다.
  • 모든 Market Watch 심볼 또는 특정 심볼을 설정할 수 있습니다.
  • Market Watch 심볼을 사용할 때는 OnTick(string symbol)에서 이벤트를 실시간으로 관리할 수 있습니다.
  • 작동 방식에 대한 복잡한 이해가 필요하지 않으며, 모든 코드는 포함 파일에 포함되어 있습니다.
  • 전략 테스터에서 사용할 수 있습니다.

Expert Advisor 템플릿은 다음과 같습니다:

//+------------------------------------------------------------------+
//|  OnTick(string symbol).mq5 |
//|  Copyright 2010, Lizar |
//|  https://www.mql5.com/ru/users/Lizar |
//+------------------------------------------------------------------+
#define VERSION     "1.00 Build 1 (01 Fab 2011)"

#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/ru/users/Lizar"
#property version     VERSION
#property description "Expert Advisor 템플릿"
#property description "멀티 통화 OnTick(string symbol) 이벤트 핸들러"

//+------------------------------------------------------------------+
//| MULTICURRENCY MODE SETTINGS |
//| OnTick(string symbol) 이벤트 핸들러 설정 |
//| 1.1 이벤트 진행에 필요한 심볼 리스트: |
#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"
//| 1.2 Market Watch의 모든 심볼을 사용하려면: |
//#define  SYMBOLS_TRADING    "MARKET_WATCH"
//| 1.1 또는 1.2 중 하나만 선택해야 합니다. |
//| 2. OnTick(string symbol) 이벤트 유형: |
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//| 3. 포함 파일: |
#include <OnTick(string symbol).mqh>
//+------------------------------------------------------------------+

int OnInit()
  {
   //--- 여기에 코드를 추가하세요...
   return(0);
  }
  
void OnTick(string symbol)
  {
   //--- 여기에 코드를 추가하세요...
   Print("새로운 이벤트 심볼: ",symbol);
  }
  
void OnChartEvent(const int id,
         const long& lparam,
         const double& dparam,
         const string& sparam)
  {
   //--- 여기에 코드를 추가하세요...
  }
  
void OnDeinit(const int reason)
  {
   //--- 여기에 코드를 추가하세요...
  }

//+------------------------------ end -------------------------------+

기능 설명:

  1. 설정:
    모든 설정은 #define 지시문을 통해 구성할 수 있습니다. OnTick(string symbol) 함수의 올바른 작동을 위해서는 두 가지 매개변수만 지정하면 됩니다: SYMBOLS_TRADINGCHART_EVENT_SYMBOL입니다. 첫 번째 매개변수는 이벤트에 사용될 심볼 리스트를 정의하고, 두 번째 매개변수는 모든 심볼에 대한 이벤트 유형을 정의합니다.
  2. 포함 파일:
    #include OnTick(string symbol).mqh 파일이 필요합니다. 이 파일은 OnTick(string symbol) 함수의 구현을 포함하고 있습니다. 일부 표준 함수는 Expert Advisor 코드에서 선언되어야 하며, 비어있더라도 선언이 필요합니다.
  3. 전략 테스터:
    현재 OnChartEvent는 전략 테스터에서 지원되지 않습니다. 이를 해결하기 위해 글로벌 변수를 사용하여 이벤트를 처리합니다. 전략 테스터에서는 SYMBOLS_TRADING을 심볼 리스트로 지정해야 합니다.
  4. 스파이:
    "스파이"(에이전트-지표)를 사용합니다. "Spy Control panel MCM.ex5" 파일은 MQL5\Indicators\ 폴더에 있어야 합니다.
  5. 필요한 파일:
    아카이브에서 파일을 MQL5 폴더로 추출해야 합니다.
    필요한 파일은 다음과 같습니다:
    • /MQL5/Experts/OnTick(string symbol).mq5 - Expert Advisor 예제 소스 코드;
    • /MQL5/Experts/OnTick(string symbol).ex5 - Expert Advisor 컴파일된 파일;
    • /MQL5/Indicators/Spy Control panel MCM.mq5 - 에이전트-지표 소스 코드;
    • /MQL5/Indicators/Spy Control panel MCM.ex5 - 에이전트-지표 컴파일된 파일;
    • /MQL5/Include/OnTick(string symbol).mqh - OnTick(string symbol) 함수의 구현에 필요한 모든 함수 포함 파일.

연관 포스트

댓글 (0)