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

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

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

MQL5 마법사를 통해 자동으로 Expert Advisors를 생성 할 수 있습니다 ( MQL5 마법사: 프로그래밍 하지 않고 Expert Advisors 만들기를 참고하세요).

여기에서는 MACD 지표의 라인의 교차를 기반으로 한 전략을 고려할 것입니다. 전략을 "MACD의 메인 라인과 시그널 라인의 교차에 기반한 신호"라고 부르기로 합니다 (MQL5 마법사로 EA를 자동으로 생성 할때).

MACD 지표의 메인 라인은 fast EMA와 slow EMA의 차이로 계산됩니다. MACD의 시그널 라인은 PeriodSignal 주기로 평활화된 메인 라인으로 계산됩니다.

트레이드 신호:

  • 매수: MACD 지표의 메인 라인과 시그널 라인이 상방 교차 할때
  • 매도: MACD 지표의 메인 라인과 시그널 라인이 하방 교차 할때

전략은 MQL5 Standard Library (MQL5\Include\Expert\Signal\SignalMACD.mqh에 위치한) Trading Strategy classesCSignalMACD class에서 만들었습니다.

그림 1. MACD라인의 메인 라인과 시그널 라인의 교차에 기반한 거래 신호

그림 1. MACD라인의 메인 라인과 시그널 라인의 교차에 기반한 거래 신호


거래 신호

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

double  MainMACD(int ind)      // 바의 메인 MACD 라인값을 반환
double  SignalMACD(int ind)    // 바의 시그널 MACD 라인 값을 반환
double  StateMACD(int ind)     // 메인 MACD 라인과 시그널 라인간의 차를 반환
int     ExtStateMACD(int ind); // 메인 라인과 시그널 라인의 차의 사인이 바뀐 회수를 반환


1. 매수 포지션 진입

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

  • ExtStateMACD(1)==1; 메인 라인의 MACD 시그널 라인을 상방으로 교차하였음을 의미합니다
//+------------------------------------------------------------------+
//| 매수 포지션에 진입 할지를 체크합니다(매수)                     |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==1);
  }


2. 매수 포지션 청산

매수 포지션을 청산:

  • ExtStateMACD(1)==1; it means that main line has crossed downward the signal MACD line
//+------------------------------------------------------------------+
//| 매수 포지션을 청산하기 위한 조건을 체크함                       |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==-1);
  }


3. 매도 포지션 진입

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

//+------------------------------------------------------------------+
//| 매도 포지션에 진입하기 위한 조건을 체크함(매도)                |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==-1);
  }


4. 매도 포지션 청산

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

//+------------------------------------------------------------------+
//| 매도 포지션을 청산하기 위한 조건을 체                     |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==1);
  }

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

전략을 기반으로 거래 로봇을 만들려면 신호 속성을 MQL5 마법사의 "준비된 Expert Advisor 만들기" 옵션에서 "MACD 라인의 메인 라인과 시그널 라인의 교차에 기반한 신호"로 선택해야 합니다:

그림 2. MQL5 마법사에서 "MACD 라인의 메인라인과 시그널 라인의 교차에 기반한 신호"를 선택하세요

그림 2. MQL5 마법사에서 "MACD 라인의 메인라인과 시그널 라인의 교차에 기반한 신호"를 선택하세요

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


테스트 결과

과거 데이터(EURUSD H1, 사용자 지정 기간: 1.1.2010-05.01.2011,  PeriodADX=33, MinimumADX=22, PeriodFast=12, PeriodSignal=9, Stoploss=20, TakeProfit=80)으로 Expert Advisor를 백테스팅해 보겠습니다.

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

그림 3. MACD 라인의 교차에 기반한 Expert Advisor 백테스팅 결과

그림 3. MACD 라인의 교차에 기반한 Expert Advisor 백테스팅 결과


첨부: The SignalMACD.mqh과 CSignalMACD class (MQL5 Standard Library에 포함된) 는 MQL5\Include\Expert\Signal folder에 있습니다. The testmacd.mq5 MQL5는 마법사를 사용하여 생성된 Expert Advisor의 코드를 포함하고 있습니다.

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

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

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

MQL5 마법사 - 세개의 이동 평균에 기반한 거래 신호 MQL5 마법사 - 세개의 이동 평균에 기반한 거래 신호

세개의 이동 평균에 기반한 거래 신호를 고려해 보겠습니다. 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

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

거래 신호는 두개의 지수 이동 평균의 교차에 기반합니다. 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

Moving Average Bands Moving Average Bands

Moving Average Bands