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

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

조회수:
286
평가:
(26)
게시됨:
2021.10.22 14:54
signal3ema.mqh (12.94 KB) 조회
threeema.mq5 (6.19 KB) 조회
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

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

여기서 우리는 세개의 이동 평균에 기반한 트렌드 전략을 살펴보겠습니다. 전략 이름은 "세개의 EMA에 기반한 전략"이라 하였습니다. 추세를 결정하기 위해 세 가지 기하급수적으로 평활화된 이동 평균인 FastEMA, MediumEMA 및 SlowEMA를 사용합니다.

거래 신호

  • 매수 신호: FastEMA>MediumEMA>SlowEMA (상승 추세).
  • 매도 신호: FastEMA<MediumEMA<SlowEMA (하락 추세).

전략은 CSignal3EMA 클래스(the signal3ema.mqh는 반드시 terminal_data_folder\MQL5\Include\Expert\Signal\Signal3EMA.mqh에 있어야 합니다)에서 생성되었습니다.

그림 1. 세개의 이동 평균에 기반한 거래 신호

그림 1. 세개의 이동 평균에 기반한 거래 신호

거래 신호

트레이딩 전략은 CSignal3EMA class 클래스로 구현되었습니다, 세개의 이동 평균 값의 사용을 용이하게 하기 위해 보호된 메서드가 있습니다(Fast, Medium, Slow):

double  FastEMA(int ind)      // 바의 Fast EMA 값을 반환합니다
double  MediumEMA(int ind)    // 바의 Medium EMA 값을 반환합니다
double  SlowEMA(int ind)      // 바의 Slow EMA 값을 반환합니다
0번째(미완성) 바의 가격 및 지표 값은 변동될 수 있으므로 완성(형성)된 바 데이터를 이용하여 거래 상황을 확인하는 것이 필요합니다.

1. 매수 포지션 진입

상승 추세는 다음의 조건을 통해 확인됩니다: FastEMA>MediumEMA>SlowEMA:

  • FastEMA(1)>MediumEMA(1): Fast EMA가 Medium EMA보다 높습니다(가장 최근 완성된 바);
  • MediumEMA(2)>SlowEMA(1): Medium EMA가 Slow EMA보다 높습니다(가장 최근 완성된 바);
//+------------------------------------------------------------------+
//| 매수 포지션에 진입 할지를 체크합니다(매수)                    |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//--- 상승 추세인지를 체크 합니다(가장 최근 완성된 바에서): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
    return(FastEMA(1)>medium && medium>SlowEMA(1));
  }


2. 매수 포지션 청산

상승 추세는 다음의 조건을 통해 확인됩니다: FastEMA<MediumEMA<SlowEMA:

  • FastEMA(1)<MediumEMA(1): Fast EMA가 Medium EMA보다 낮습니다(가장 최근에 완성된 바);
  • MediumEMA(2)<SlowEMA(1): Medium EMA가 Slow EMA보다 낮습니다(가장 최근에 완성된 바에서);
//+------------------------------------------------------------------+
//| 매수 포지션을 청산할지를 체크 합니다                         |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseLong(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- 하락 추세인지를 확인합니다 (가장 최근에 완성된 바): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));
  }
매수 포지션을 청산하는 기술을 향상 시킬수 있습니다: 하락 추세를 기다릴 필요는 없습니다, 그냥 다음의 수식에서 얻어지는 횡보시에 매수 포지션을 청산 할수도 있습니다: FastEMA<MediumEMA>SlowEMA


3. 매도 포지션 진입

//+------------------------------------------------------------------+
//| 매도 포지션에 진입 할지를 체크합니다(매도)                  |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//--- 하락 추세인지를 체크 합니다(가장 최근 완성된 바에서): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));

  }

4. 매도 포지션 청산

//+------------------------------------------------------------------+
//| 매수 포지션을 청산할지를 체크 합니다                        |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseShort(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- 상승 추세인지를 확인합니다 (가장 최근에 완성된 바): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
   return(FastEMA(1)>medium && medium>SlowEMA(1));
  }

매도 포지션을 청산하는 기술을 향상 시킬수 있습니다: 상승 추세를 기다릴 필요는 없습니다, 그냥 다음의 수식에서 얻어지는 횡보시에 매도 포지션을 청산 할수도 있습니다: FastEMA>MediumEMA<SlowEMA.


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

전략을 기반으로 거래 로봇을 만들려면 신호 속성을 MQL5 Wizard의 "Expert Advisor 만들기" 옵션에서 "세개의 EMA에 기반한 신호" 로 선택해야 합니다

그림 2.  MQL5 마법사에서 "MA와의 가격 교차를 기반으로 한 신호"를 선택하세요

그림 2. MQL5 마법사에서 "MA와의 가격 교차를 기반으로 한 신호"를 선택하세요

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


테스트 결과

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

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

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

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

첨부: The Signal3EMA.mqh와 CSignal3EMA 클래스는 반드시 terminal_data_folder\MQL5\Include\Expert\Signal에 위치해야 합니다.

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


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

MQL5 마법사 - 가격이 이동 평균과 교차할 때를 기준으로 한 트레이딩 신호 MQL5 마법사 - 가격이 이동 평균과 교차할 때를 기준으로 한 트레이딩 신호

가격이 이동 평균과 교차할 때를 기준으로 한 트레이딩 신호(MQL5 스탠다드 라이브러리의 CSignalMA) 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

Expert Advisor 템블릿 Expert Advisor 템블릿

이 코드는 ATC-2010에서 Valery Mazurenko(notused)가 작성한 Expert Advisor용 템플릿입니다.

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

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

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 마법사를 사용하여 자동으로 생성될 수 있습니다.