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

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

조회수:
221
평가:
(33)
게시됨:
2021.10.22 14:54
signalma.mqh (12.33 KB) 조회
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

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

여기에서는 이동 평균 지표와 가격의 교차를 기반으로 한 전략을 고려할 것입니다. "이동 평균과 가격의 교차에 기반한 신호"라는 전략 (EA를 MQL5 마법사로 자동으로 작성).

트레이드 신호:

  • 매수: 가격이 이동 평균을 상향 돌파.
  • 매수: 가격이 이동 평균을 하향 돌파.
  • 이동 평균의 증가/감소를 확인하는 것은 거짓 신호를 거르기 위해서 입니다.

이 전략은 MQL5 표준 라이브러리(MQL5\Include\Expert\Signal\SignalMA.mqh에 있음)에 있는 트레이딩 전략 클래스CSignalMA로 구현되었습니다.

그림 1. 가격이 이동 평균과 교차할 때를 기준으로 한 트레이딩 신호

그림 1. 가격이 이동 평균과 교차할 때를 기준으로 한 트레이딩 신호

거래 신호

트레이딩 전략은 CSignalMA 클래스로 구현되었습니다, 가격과 이동 평균의 사용을 용이하게 하기 위해 보호된 메서드가 있습니다:

double  MA(int ind)          // 바의 이동 평균 값을 반환
double  Open(int ind)        // 바의 시가를 반환
double  Close(int ind)       // 바의 종가를 반환
double  StateMA(int ind)     // 평균이 증가하고 있을 경우 양의 값을 반환하고 감소하고 있을 경우 음의 값을 반환
double  StateOpen(int ind)   // 시가와 이동 평균의 차이를 반환 
double  StateClose(int ind)  // 종가와 이동 평균의 차이를 반환 
0번째(미완성) 바의 가격 및 지표 값은 변동될 수 있으므로 완성(형성)된 바 데이터를 이용하여 거래 상황을 확인하는 것이 필요합니다.

1. 매수 포지션 진입

매수 포지션 진입 조건(가격이 MA를 교차 하고 MA는 증가):

  • Open(1)<MA(1): 시가가 이동 평균보다 낮음;
  • Close(1)>MA(1): 종가가 이동 평균보다 높음;
  • MA(1)>MA(2): 이동 평균이 증가하고 있는지를 체크함 (거짓 신호를 거르기 위해).
//+------------------------------------------------------------------+
//| 매수 포지션에 진입하기 위한 조건을 체크함(매수)                   |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- 가격이 이동 평균을 상향 돌파하였고 이동 평균은 상승 중
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }

2. 매수 포지션 청산

매수 포지션을 청산 하기 위한 조건(가격이 MA를 교차 하고 MA는 감소):

  • Open(1)>MA(1): Open(1)<MA(1): 시가가 이동 평균보다 높음;
  • Close(1)<MA(1): 종가가 이동 평균보다 낮음;
  • MA(1)<MA(2): 이동 평균이 감소 하고 있는지를 체크함 (거짓 신호를 거르기 위해).
//+------------------------------------------------------------------+
//| 매수 포지션을 청산하기 위한 조건을 체크함                        |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseLong(double& price)
  {
   price=0.0;
//--- 가격이 이동 평균을 하향 돌파하였고 이동 평균은 하락 중
  return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


3. 매도 포지션 진입

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

//+------------------------------------------------------------------+
//| 매도 포지션에 진입하기 위한 조건을 체크함(매도)                  |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- 가격이 이동 평균을 상향 돌파하였고 이동 평균은 감소 중 
   return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


4. 매도 포지션 청산

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

//+------------------------------------------------------------------+
//| 매도 포지션을 청산하기 위한 조건을 체크함                        |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseShort(double& price)
  {
   price=0.0;
//--- 가격이 이동 평균을 상향 돌파하였고 이동 평균은 증가 중
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }
//+------------------------------------------------------------------+

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

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

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

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

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


테스트 결과

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

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

이동 평균과 교차

그림 3. 이동 평균과의 교차에 기반한 Expert Advisor 백테스팅 결과

첨부: The SignalMA.mqh과 CSignalMA 클래스 (MQL5 Standard Library에 포함된) MQL5\Include\Expert\Signal folder에 위치합니다. crossoverma.mq5 파일은 MQL5 마법사를 사용하여 만든 Expert Advisor의 코드를 포함하고 있습니다.

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

Expert Advisor 템블릿 Expert Advisor 템블릿

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

디마커(DeMarker) (DeM) 디마커(DeMarker) (DeM)

디마커 지표(DeM)는 기간 최대값과 이전 기간 최대값의 비교를 기반으로 합니다. 지표가 30 밑으로 하락하면 강세장으로의 전환이 기대됩니다. 지표가 70 위로 상승하면 약세장으로의 전환이 기대됩니다.

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

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

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

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