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

다중 통화 이벤트 핸들러 OnTick(string symbol) - MetaTrader 5용 expert

Konstantin Gruzdev
Konstantin Gruzdev
Research Engineer. Been programming since 1982. Since 2001, I write software for companies operating in the stock and currency markets. With MetaTrader been working since 2006. Since 2010 an active participant MQL5.Community.
My main creative contribution to the MQL5-coding and the community:
| Korean English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
조회수:
184
평가:
(45)
게시됨:
업데이트됨:
onmultitick.zip (24.14 KB)
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

설명:

이것은 MetaTrader 5에서 본격적인 다중 통화 모드를 구현할 수 있는 또 다른 방법입니다. 표준 OnTick(string symbol) 틱 처리기 형식으로 제작되었습니다.

장점:

  • 데모 및 실계좌에서 진정한 다중 통화 기능을 지원합니다.
  • 간편한 설정.
  • OnTick(string symbol)에서 수신할 이벤트(NewTick 및/또는 NewBar)를 설정할 수 있습니다.
  • "시장 개요" 창에 표시된 상품이나 사용자 지정 심볼 목록에 대한 이벤트를 수신하도록 설정할 수 있습니다.
  • "시장 개요" 창의 종목으로 작업할 때, OnTick(string symbol)에서 어떤 종목에 대한 이벤트를 수신할지 "실시간"으로 제어할 수 있습니다.
  • 이 기능이 어떻게 작동하는지 자세히 파악할 필요는 없습니다. 모든 코드는 포함 파일로 분리되어 있으므로, 사용자 코드를 작성할 때 방해가 되지 않습니다.
  • 테스터에서 작동합니다.

전문가 템플릿은 다음과 같습니다:

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

#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/ko/users/Lizar"
#property version     VERSION
#property description "전문가 템플릿 사용 시"
#property description "OnTick(string symbol) 다중 통화 처리기"

//+------------------------------------------------------------------+
//|                다중 통화 모드 설정                  |
//|          OnTick(string symbol) 이벤트 핸들러용           |
//|                                                                  |
//| 1.1 이벤트를 수신해야 하는 기호 목록:     |
#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"
//| 1.2 "시장 개요" 창에서 모든 종목에 대한 이벤트 수신:    |
//#define  SYMBOLS_TRADING    "MARKET_WATCH"
//|     참고: 1.1항 또는 1.2항 중 하나를 선택해야 합니다.     |
//|                                                                  |
//| 2.  OnTick(string symbol)의 이벤트 유형:                       |
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//|     참고: 이벤트 유형은 열거형과 일치해야 합니다  |
//|                 ENUM_CHART_EVENT_SYMBOL.                         |
//|                                                                  |
//| 3.  모든 기능을 포함하는 포함 파일:                 |
#include <OnTick(string symbol).mqh>
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| 전문가 초기화 함수                                   |
//| 이 함수는 전문가 코드에 반드시 포함되어야 합니다,   |
//| 비어 있더라도                                             |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- 여기에 코드를 입력하세요...  
   return(0);
  }
  
//+------------------------------------------------------------------+
//| 전문 멀티 틱 함수                                       |
//| 이 함수는 표준 OnTick() 대신 사용됩니다                          |
//+------------------------------------------------------------------+
void OnTick(string symbol)
  {
   //--- 여기에 코드를 입력하세요...
   Print("기호별 새 이벤트: ",symbol);
  }
  
//+------------------------------------------------------------------+
//| ChartEvent 함수                                              |
//| 이 함수는 전문가 코드에 반드시 포함되어야 합니다,   |
//| 비어 있더라도                                             |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // 이벤트 식별자 
                  const long& lparam,   // long 형식의 이벤트 매개변수
                  const double& dparam, // double 형식의 이벤트 매개변수
                  const string& sparam) // string 형식의 이벤트 매개변수
  {
   //--- 여기에 코드를 입력하세요...  
  }
  
//+------------------------------------------------------------------+
//| Expert 초기화 해제 함수                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   //--- 여기에 코드를 입력하세요...  
  }

//+------------------------------ 끝 -------------------------------+

몇 가지 특징:

  1. 설정.
모든 설정은 #define 전처리기 지시어를 통해 이루어집니다. OnTick(string symbol) 이 올바르게 작동하려면SYMBOLS_TRADING과 CHART_EVENT_SYMBOL , 이 두 가지 매개변수만 설정하면 됩니다 . SYMBOLS_TRADING 매개변수로는 이벤트가 수신될 심볼을 지정합니다. CHART_EVENT_SYMBOL 매개변수로는 모든 심볼에 대한 이벤트 유형을 지정합니다.

SYMBOLS_TRADING은 심볼 목록 형태로 지정할 수 있습니다. 예를 들어:

#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"

목록은 쉼표로 구분된 문자열 상수 형태로 작성되어야 합니다. 목록은 줄 끝에서 끝나며 다음 줄로 넘어갈 수 없습니다.

또는 SYMBOLS_TRADING을 다음과 같이 지정할 수도 있습니다:

#define  SYMBOLS_TRADING    "MARKET_WATCH"

이 방법은 목록 대신 "시장 개요" 창의 심볼을 사용할 것임을 의미합니다. 이 방법은 전문가 자문가 실행 중에 OnTick(string symbol) 로 이벤트가 전송될 심볼을 "실시간"으로 변경할 수 있다는 점에서 편리합니다 . 이를 위해서는 "시장 개요" 창에서 거래 상품을 추가하거나 삭제하기만 하면 됩니다.

CHART_EVENT_SYMBOL 이벤트 유형은 ENUM_CHART_EVENT_SYMBOL 열거형에 포함된 플래그 하나 또는 여러 개의 조합으로 지정됩니다. 이 열거형에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 이벤트 유형 설정 예시:

//--- 예제 1. 이벤트는 매 틱마다 발생합니다:
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//--- 예제 2. 기호에 대한 이벤트는 매분과 매시간 발생합니다:
#define  CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1

2. 포함 파일.

OnTick( string symbol ) 함수의 모든 기능을 포함하는 OnTick(string symbol) .mqh 파일을 포함하는 #include 지시문은 설정 뒤, 다른 표준 이벤트 핸들러들 앞에 배치되어야 합니다. 이 파일은 OnTick(string symbol) 에 대한 모든 처리 코드를 눈에 띄지 않게 숨기도록 구성되어 있습니다 . 이에 따라, 위에서 제시한 템플릿에서 일부 표준 함수의 존재는 필수로 표시되어 있습니다.

3. 테스터.

알다시피, 현재 시점에서 테스터는 OnChartEvent 이벤트 핸들러를 지원하지 않습니다. 전문가(EA)를 테스트할 수 있도록 하기 위해, 코드에 터미널의 전역 변수를 통한 이벤트 전달 기능이 포함되었습니다. 이는 전적으로 전략 테스터를 위해 구현된 것으로, 실계정 및 데모 계정에서는 이벤트가 OnChartEvent를 통해 전달됩니다. 물론 이러한 추가 기능으로 인해 코드가 다소 깔끔하지는 않게 되었지만, 대신 이제 테스터를 사용할 수 있게 되었습니다.

한 가지 주의할 점이 있습니다. 테스터에서 OnTick(string symbol)은 테스터 설정에 지정된 종목의 틱을 기반으로 작동합니다. 요약하자면, OnTick() 과 거의 동일하게 작동하지만 , 매 틱마다 선택한 거래 상품에 대한 이벤트가 전송된다는 점이 다릅니다. 테스터에서 정상적으로 작동하려면 SYMBOLS_TRADING매개변수에 거래 상품 목록을 지정해야 합니다.

4. 스파이.

스파이 지표가 사용됩니다. 따라서 \MQL5\Indicators\ 디렉터리에 Spy Control panel MCM.ex5 스파이가 존재하는지 여부가 중요합니다. 첨부된 파일에는 Spy Control panel MCM.mq5의 새로운 빌드가 포함되어 있습니다. 이 파일에는 테스터를 위해 전역 변수를 통한 이벤트 전달 기능이 추가되었습니다.

5. 첨부된 압축 파일은 \MQL5 디렉터리에 압축을 풀어주십시오. 파일은 다음과 같이 배치됩니다:

    • /mql5/experts/OnTick(string symbol).mq5 - 전문가 예제, 템플릿 소스 코드;
    • /mql5/experts/OnTick(string symbol).ex5 - 전문가 예제, 실행 파일;
    • /mql5/indicators/Spy Control panel MCM.mq5 - 지표 - 에이전트, 소스 코드;
    • /mql5/indicators/Spy Control panel MCM.ex5 - 지표(에이전트), 실행 파일;
    • /mql5/include/OnTick(string symbol).mqh - OnTick(string symbol) 의 전체 기능을 포함하는 포함 파일;

MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/280

비모수 지그재그, 클라이드 리 방식의 패턴 비모수 지그재그, 클라이드 리 방식의 패턴

클라이드 리의 패턴에서 영감을 받은 비모수적 지그재그.

Round Levels MT5 Round Levels MT5

라운드 레벨 메타트레이더 인디케이터 - 구성에 따라 라운드 레벨과 그 부근의 영역을 표시할 수 있는 MT4/MT5 인디케이터입니다. 자연스러운 심리적 지지 및 저항 구간을 거래할 때 유용할 수 있습니다. 또한 가격이 지지 또는 저항 영역에 있을 때 알림을 보낼 수 있습니다.

eKeyboardTrader eKeyboardTrader

키보드를 통해 주요 거래 작업을 수행할 수 있는 전문 도구입니다.

Recent High/Low Alert MT5 Recent High/Low Alert MT5

최근 고점/저점 알림 메타트레이더 인디케이터 - 최근 N 캔들에서 최대 및 최소 레벨의 두 밴드를 표시합니다. 기본적으로 최대 밴드는 파란색 선으로 표시되고 최소 밴드는 노란색 선으로 표시됩니다. 또한 현재 가격(입찰가)이 최근 고가 또는 저가 수준을 돌파하면 팝업 알림을 호출하거나 이메일 알림을 보내거나 알림 알림을 발행할 수 있습니다. 모든 알림은 끌 수 있습니다. 이메일 알림 기능을 사용하는 경우 메타트레이더 플랫폼의 옵션 창에서 이메일 설정을 잊지 마세요. 푸시 알림도 마찬가지입니다. 이 인디케이터는 MT4와 MT5 모두에서 사용할 수 있습니다.