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

MQL5 Wizard - 두개의 지수 이동 평균의 교차에 기반한 신호 - MetaTrader 5용 expert

조회수:
215
평가:
(32)
게시됨:
2021.10.22 15:01
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

MQL5 마법사는 Expert Advisors 코드가 자동으로 생성되도록 합니다. MQL5 마법사에서 Expert Advisors 만들기를 참조하세요.

여기서 우리는 두개의 지수 이동 평균의 교차에 기반한 전략을 살펴 볼 것입니다.(fast EMA and slow EMA). 전략을 "두 EMA의 교차에 기반한 신호"라 부르기로 합니다 (MQL5 마법사로 EA를 자동으로 생성 할때).

트레이드 신호:

  • 매수: Fast EMA가 slow EMA를 상방으로 교차할 때
  • 매도: Fast EMA가 slow EMA를 하방으로 교차할 때

전략은 CSignalCrossEMA 클래스에서 생성하였습니다.

그림 1. 두개의 지수 이동 평균의 교차에 기반한 신호

그림 1. 두개의 지수 이동 평균의 교차에 기반한 신호


거래 신호

트레이딩 전략은 CSignalCrossEMA class를 사용해서 생성되었습니다, 지표값의 사용을 용이하게 하기 위해 보호된 메서드가 있습니다:

double   FastEMA(int ind)      // 바의 fast moving average 값을 반환 합니다
double   SlowEMA(int ind)      // 바의 slow moving average 값을 반환합니다
double   StateEMA(int ind)     // fast and slow moving averages 사이의 차이값을 반환합니다


1. 매수 포지션 진입

매수 포지션에 진입할 조건:

  • StateEMA(1)>0 and StateEMA(2)<0: 최근 완성된 바에서 the Fast EMA가 the slow EMA를 상방으로 교차하였습니다.
//+------------------------------------------------------------------+
//| 매수 포지션에 진입하기 위한 조건을 체크함(매수)                     |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

2. 매수 포지션 청산

매수 포지션을 청산:

  • StateEMA(1)<0 and StateEMA(2)>0: 최근 완성된 바에서 the Fast EMA가 the slow EMA를 하방으로 교차하였습니다.
//+------------------------------------------------------------------+
//| 매수 포지션을 청산하기 위한 조건을 체크함                         |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }


3. 매도 포지션 진입

매도 포지션에 진입하기 위한 조건들은 매수 포지션을 청산하는 조건과 동일합니다.

//+------------------------------------------------------------------+
//| 매도 포지션에 진입하기 위한 조건을 체크함(매도)                  |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

4. 매도 포지션 청산

매도 포지션을 청산하기 위한 조건들은 매수 포지션에 진입 하는 조건과 동일합니다.

//+------------------------------------------------------------------+
//| 매도 포지션을 청산하기 위한 조건을 체크함                      |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseShort(double& price)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

MQL5 마법사를 사용해서 Expert Advisor 생성

전략을 기반으로 거래 로봇을 만들려면 신호 속성을 MQL5 마법사의 "Expert Advisor 만들기" 옵션에서 "두 EMA의 교차에 기반한 신호"로 선택해야 합니다;

그림 2. MQL5 마법사에서 "두 EMA의 교차에 기반한 신호"를 선택하세요

그림 2. MQL5 마법사에서 "두 EMA의 교차에 기반한 신호"를 선택하세요

다음으로 트레일링 스탐 알고리즘과 자금과 위험 관리 시스템을 지정해야 합니다. Expert Advisor의 코드는 자동으로 생성되며, MetaTrader 5 클라이언트 터미널의 전략 테스터에서 컴파일하고 테스트할 수 있습니다.

또한 the Standard library classes는 the CSignalCrossMA class에서 생성된 "두개의 이동 평균의 교차에 기반한 신호"를 포함합니다. 거래 아이디어는 비슷하지만 많은 추가 기능을 제공합니다(유형, 이동 및 평균화 방법 지정 및 이익실현 및 손절매 수준 사용).

그림 3. MQL5 마법사의 "두 MA의 교차를 기반으로 한 신호"

Figure 3. MQL5 마법사의 "두 MA의 교차를 기반으로 한 신호"


테스트 결과

과거 데이터(EURUSD H1, 사용자 지정 기간: 1.1.2010-05.01.2011, FastPeriod=12, SlowPeriod=24)로 Expert Advisor를 백테스팅해 보겠습니다.

Expert Advisor를 만들때 우리는 고정된 볼륨 (고정 랏, 0.1), 트레일링 스탑 알고리즘은 사용하지 않는 것으로 (Trailing not used) 하였습니다.

그림 4. 두개의 EMA에 기반한 Expert Advisor 백테스팅 결과

그림 4. 두개의 EMA에 기반한 Expert Advisor 백테스팅 결과


첨부: The SignalCrossEMA.mqh 와 CSignalCrossEMA class는 반드시 terminal_data_folder\MQL5\Include\Expert\Signal 폴더에 위치해야 합니다.

crossover_2ema.mq5은 MQL5 마법사를 사용하여 생성된 Expert Advisor의 코드를 포함하고 있습니다.

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

MQL5 Wizard - MACD의 메인 라인(Main line)과 시그널 라인(Signal line)의 교차에 기반한 신호 MQL5 Wizard - MACD의 메인 라인(Main line)과 시그널 라인(Signal line)의 교차에 기반한 신호

거래 신호는 MACD 지표의 메인 라인(Main line)과 시그널 라인(Signal line)의 교차에 기반한 신호입니다.(CSignalMACD from MQL5 Standard Library) 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

MQL5 마법사 - ADX로 확인하고 가격과 이동평균의 교차에 기반한 거래 신호 MQL5 마법사 - ADX로 확인하고 가격과 이동평균의 교차에 기반한 거래 신호

ADX로 확인하고 가격과 이동평균의 교차에 기반한 거래 신호를 살펴 봅니다. 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

Moving Average Bands Moving Average Bands

Moving Average Bands

Moving Average Bands - extended Moving Average Bands - extended

Moving average bands - extended version