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

Mike 2011.02.02 03:03 44 0 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