안녕하세요, 트레이더 여러분! 오늘은 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 -------------------------------+
기능 설명:
- 설정:
모든 설정은 #define 지시문을 통해 구성할 수 있습니다. OnTick(string symbol) 함수의 올바른 작동을 위해서는 두 가지 매개변수만 지정하면 됩니다: SYMBOLS_TRADING과 CHART_EVENT_SYMBOL입니다. 첫 번째 매개변수는 이벤트에 사용될 심볼 리스트를 정의하고, 두 번째 매개변수는 모든 심볼에 대한 이벤트 유형을 정의합니다. - 포함 파일:
#include OnTick(string symbol).mqh 파일이 필요합니다. 이 파일은 OnTick(string symbol) 함수의 구현을 포함하고 있습니다. 일부 표준 함수는 Expert Advisor 코드에서 선언되어야 하며, 비어있더라도 선언이 필요합니다. - 전략 테스터:
현재 OnChartEvent는 전략 테스터에서 지원되지 않습니다. 이를 해결하기 위해 글로벌 변수를 사용하여 이벤트를 처리합니다. 전략 테스터에서는 SYMBOLS_TRADING을 심볼 리스트로 지정해야 합니다. - 스파이:
"스파이"(에이전트-지표)를 사용합니다. "Spy Control panel MCM.ex5" 파일은MQL5\Indicators\폴더에 있어야 합니다. - 필요한 파일:
아카이브에서 파일을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) 함수의 구현에 필요한 모든 함수 포함 파일.