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

MQL5 마법사 - 상승/하락 미팅 라인즈 + 스토캐스틱에 기반한 매매 신호 - MetaTrader 5용 expert

조회수:
223
평가:
(19)
게시됨:
2021.11.15 10:26
\MQL5\Include\Expert\Signal\MySignals\
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

MQL5 마법사는 클라이언트 터미널과 함께 제공되는 Standard library 클래스에 기반한 Expert Advisors를 생성하는 것을 돕습니다(MQL5 마법사에서 준비된 Expert Advisors 만들기를 참조하세요). 귀하의 트레이딩 아이디어를 빠르게 확인할 수 있게 하며, 귀하가 필요로 하는 것은 자신만의 트레이딩 신호 클래스를 만드는 것입니다. 이러한 클래스의 구조와 예는 MQL5 마법사: 트레이딩 신호 모듈을 만드는 방법에서 찾을 수 있습니다.

일반적인 아이디어는 다음과 같습니다. 거래 신호의 클래스는 CExpertSignal에서 파생됩니다. 다음으로 LongCondition()ShortCondition()과 가상의 메서드를 귀하의 메서드로 재정의 하여야 합니다.

"최고 트레이더들의 전략" (러시아어)이란 책이 있습니다. 이 책에는 많은 트레이딩 전략이 수록되어 있습니다. 우리는 이중에서 Stochastic, CCI, MFI and RSI 오실레이터에 의해 확인되는 반전 캔들스틱 패턴에 대해 알아 보겠습니다.

가장 좋은 방법은 캔들 패턴 형성 확인용 CExpertSignal에서 파생된 별도의 클래스를 만드는 것입니다. 캔들 패턴에 의해 생성된 거래 신호를 확인하려면 CCandlePattern에서 파생된 클래스를 작성하고 필요한 기능(예: 오실레이터에 의한 확인)을 추가하면 충분합니다.

스토캐스틱 지표에 의해 확인된 "상승/하락 미팅 라인즈" 반전 캔들스틱 패턴에 기반한 신호에 대해 살펴보겠습니다. CCandlePattern 클래스에 기반한 트레이딩 시그널 모듈은 캔들 스틱 패턴으로 신호를 생성하는 좋은 예입니다.


1. "미팅 라인스" 반전 캔들스틱 패턴

1.1. 상승 미팅 라인즈

패턴은 동일한(또는 매우 가까운) 종가를 가진 두 개의 캔들(약세 및 강세)로 구성됩니다. 두 캔들의 몸체는 평균 몸체 길이보다 커야 합니다.

"상승 미팅 라인즈" 패턴은 약세장으로의 추세 전환이 되는 것을 나타냅니다.

그림. 1. "상승 미팅 라인즈" 패턴

그림 1. "상승 미팅 라인즈" 패턴

"상승 미팅 라인즈" 패턴은 CCandlePattern 클래스의 CheckPatternCheckPatternBullishMeetingLines() 메서드에 구현되어 있습니다:

//+--------------------------------------------------------------------+
//| "상승 미팅 라인즈" 캔들스틱 패턴의 형태를 확인                            |            
//+--------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBullishMeetingLines()
  {
//--- 상승 미팅 라인즈
   if((Open(2)-Close(2)>AvgBody(1))              && // 기다란 검은색
     ((Close(1)-Open(1))>AvgBody(1))             && // 기다란 흰색
      (MathAbs(Close(1)-Close(2))<0.1*AvgBody(1)))   // 도지 종가
      return(true);
//---
   return(false);
  }

CCandlePattern 클래스의 CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_MEETING_LINES) 메서드는 "상승 미팅 라인즈" 캔들스틱 패턴의 형태를 확인하기 위해 사용됩니다.


1.1. 하락 미팅 라인즈

패턴은 동일한(또는 매우 가까운) 종가를 가진 두 개의 캔들(약세 및 강세)로 구성됩니다. 두 캔들의 몸체는 평균 몸체 길이보다 커야 합니다.

"하락 미팅 라인즈" 패턴은 약세장으로의 추세 전환이 되는 것을 나타냅니다.

그림 2. "하락 미팅 라인즈" 패턴

그림 2. "하락 미팅 라인즈" 패턴

"하락 미팅 라인즈" 패턴은 CCandlePattern 클래스의 CheckPatternBearishMeetingLines() 메서드에 구현되어 있습니다:

//+--------------------------------------------------------------------+
//|  "하락 미팅 라인즈"캔들스틱 패턴의 형태를 확인                            |
//+--------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBearishMeetingLines()
  {
//--- 하락 미팅 라인즈
   if((Close(2)-Open(2)>AvgBody(1))             && // 기다란 흰색
     ((Open(1)-Close(1))>AvgBody(1))            && // l 기다란 검은색
      (MathAbs(Close(1)-Close(2))<0.1*AvgBody(1)))  // 도지 종가
      return(true);
//---
   return(false);
  }

CCandlePattern 클래스의 CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_MEETING_LINES) 메서드는 "하락 미팅 라인즈" 캔들스틱 패턴의 형태를 확인하기 위해 사용됩니다.


2. 스토캐스틱 지표에 의해 확인된 거래 신호

매수 진입 혹은 매도 진입은 반드시 Stochastic 오실레이터에 의해 확인되어야 합니다. %D 라인은 해당 임계 레벨(30 또는 70)보다 크거나 낮아야 합니다.

청산은 %D의 값에 따릅니다. 2가지 경우도 실행됩니다:

  1. %D 라인이 반대 임계 수준에 도달한 경우(롱 포지션의 경우 80, 숏 포지션의 경우 20)
  2. 반전 신호가 확인되지 않은 경우 (%D 라인이 다음 레벨에 도달했을 때: 롱 포지션 20, 숏 포지션 80)

그림 3. 스토캐스틱 지표에 의해 확인된 "하락 미팅 라인즈" 패턴

그림 3. 스토캐스틱 지표에 의해 확인된 "하락 미팅 라인즈" 패턴

  • int CML_Stoch::LongCondition() -매수 진입할 조건을 체크(80을 반환) 매도 포지션을 청산할 조건을 체크 (40을 반환);
  • int CML_Stoch::ShortCondition() - 매도 진입할 조건을 체크(80을 반환) 매수 포지션을 청산할 조건을 체크 (40을 반환).

2.1. 매수 진입/매도 청산

  1. "상승 미팅 라인즈" 패턴의 형성은 다음으로 확인해야 합니다.스토캐스틱 지표: StochSignal(1)<30(마지막으로 완료된 막대의 Stochastic 지표의 신호선 값은 30보다 작아야 함).

  2. 스토캐스틱 지표가 20 또는 80 수준을 상향 교차하면 매도 포지션은 만드시 청산되어야 합니다.

//+------------------------------------------------------------------+
//| 진입 혹은 청산 조건을 체크                                           |
//| 1) 진입 (매수 진입, 결과=80)                                        |
//| 2) 청산 (매도 청산, 결과=40)                                        |
//+------------------------------------------------------------------+
int CML_Stoch::LongCondition()
  {
   int result=0;
//--- idx가 Expert Advisor work mode를 확인하기 위해 사용될 수 있습니다
//---  idx=0 - 이 경우 EA는 각각의 틱마다 거래 조건을 확인합니다
//--- idx=1 - 이 경우 EA는 새로운 바에서만 거래 조건을 확인합니다
   int idx   =StartIndex();
//--- 매수 진입 조건을 확인
//--- 상승 미팅 라인즈 형태와 signal line <30 
  if (CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_MEETING_LINES) && (StochSignal(1)<30))
     result=80;
//--- 매도 청산 조건을 확인  
//--- 시그널 라인이 과매수/과매도 레벨을 교차(하방 20, 상방 80) 
   if((((StochSignal(1)>20) && (StochSignal(2)<20)) ||
       ((StochSignal(1)>80) && (StochSignal(2)<80))))
     result=40;
//--- 결과 반환
   return(result);
  }

2.2. 매도 진입/매수 청산

  1. "하락 미팅 라인즈" 패턴의 형성은 다음으로 확인해야 합니다.스토캐스틱 지표: StochSignal(1)>70(마지막으로 완료된 막대의 Stochastic 지표의 신호선 값은 70보다 커야 함).

  2. 스토캐스틱 지표가 20 또는 80 수준을 하방 교차하면 매수 포지션은 반드시 청산되어야 합니다.

//+------------------------------------------------------------------+
//| 진입 혹은 청산 조건을 체크                                           |
//| 1) 진입 (매도 진입, 결과=80)                                        |
//| 2) 청산 (매수 청산, 결과=40)                                        |
//+------------------------------------------------------------------+
int CML_Stoch::ShortCondition()
  {
   int result=0;
//--- idx가 Expert Advisor work mode를 확인하기 위해 사용될 수 있습니다
//--- idx=0 - 이 경우 EA는 각각의 틱마다 거래 조건을 확인합니다
//--- idx=1 - 이 경우 EA는 새로운 바에서만 거래 조건을 확인합니다
   int idx   =StartIndex();
//--- 매도 진입 조건을 확인
//--- 하락 미팅 라인즈 형태와 signal line>70
  if (CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_MEETING_LINES)  && (StochSignal(1)>70))
     result=80;
//---매도 청산 조건을 확인
//--- 시그널 라인이 과매수/과매도 레벨을 교차(하방 80, 상방 20) 
   if((((StochSignal(1)<80) && (StochSignal(2)>80)) ||
       ((StochSignal(1)<20) && (StochSignal(2)>20))))
     result=40;
//--- 결과 반환
   return(result);
  }


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

CML_Stoch 클래스는 표준 라이브러리 클래스에 포함되어 있지 않으므로 사용하려면 acml_stoch.mqh 파일(첨부 참조)을 다운로드하여 client_terminal_data\folder\MQL5\Include\Expert\Signal\MySignals에 저장해야 합니다. candlepatterns.mqh 파일도 마찬가지입니다. MetaEditor를 재시작 한 후 MQL5 마법사에서 사용할수 있습니다.

Expert Advisor를 만들기 위해서 MQL5 마법사를 실행하세요:

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

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

Expert Advisor의 이름을 지정합니다:

Fig. 5. Expert Advisor의 일반 속성

Fig. 5. Expert Advisor의 일반 속성

그 다음 거래 신호의 모듈을 선택해야 합니다.

Fig. 6. Expert Advisor 신호 속성

Fig. 6. Expert Advisor 신호 속성

오직 하나의 거래 신호 모듈을 사용했습니다.

"스토캐스틱 지표에 의해 확인된 상승/하락 미팅 라인즈" 거래 신호 모듈 추가:

Fig. 7. Expert Advisor 신호 속성

Fig. 7. Expert Advisor 신호 속성

추가된 거래 신호 모듈:

Fig. 8. Expert Advisor 신호 속성

Fig. 8. Expert Advisor 신호 속성

어떠한 트레일링 속성도 선택 가능합니다. 그러나 여기서는 "트레일링 스탑 사용 않음"으로 합니다:

Fig. 9. Expert Advisor의 트레일링 속성

Fig. 9. Expert Advisor의 트레일링 속성

자금 관리와 관련하여 "고정된 거래량"으로 합니다:

Fig. 10. Expert Advisor의 자금 관리 속성

Fig. 10. Expert Advisor의 자금 관리 속성

"마침" 버튼을 누르면 Expert_AML_Stoch.mq5에 생성된 Expert Advisor의 코드가 표시되며, 이는 terminal_data_folder\MQL5\Experts\에 저장됩니다.

생성된 Expert Advisor의 디폴트 속성:

//--- 메인 시그널 입력
input int            Signal_ThresholdOpen   =10;     // 진입 시그널 값 [0...100]
input int            Signal_ThresholdClose  =10;     // 청산 시그널 값 [0...100]
input double         Signal_PriceLevel      =0.0;    // 거래를 실행 할 가격 수준l
input double         Signal_StopLevel       =50.0;   // 스탑로스 수준(포인트 단위)
input double         Signal_TakeLevel       =50.0// Take Profit 수준(포인트 단위)

반드시 교체되어야 함:

//--- 메인 시그널 입력
input int            Signal_ThresholdOpen   =40;     // 진입 시그널 값 [0...100]
input int            Signal_ThresholdClose  =20;     // 청산 시그널 값 [0...100]
input double         Signal_PriceLevel      =0.0;    // 거래를 실행 할 가격 수준 
input double         Signal_StopLevel       =0.0;    // 스탑로스 수준(포인트 단위) 
input double         Signal_TakeLevel       =0.0;    // Take Profit 수준(포인트 단위)

Signal_ThresholdOpen/Signal_ThresholdClose 입력 매개변수를 사용하면 포지션의 진입 및 청산에 대한 기준을 지정할 수 있습니다.

거래 신호 클래스의 LongCondition() 및 ShortCondition() 메서드 코드에서 고정 값을 지정했습니다.

  • 진입 포지션: 80;
  • 청산 포지션: 40.

MQL5 마법사에서 생성된 Expert Advisor는 거래 신호 모듈의 "투표"를 사용하여 포지션에 진입하고 청산합니다. 기본 모듈(컨테이너로서 추가된 모든 모듈로 구성됨)의 투표도 사용되지만 해당 LongCondition() 및 ShortCondition() 메서드는 항상 0을 반환합니다.

메인 모듈의 투표 결과는 "투표" 평균화에도 사용됩니다. 우리의 경우에는 메인 모듈 + 1개의 거래 신호 모듈이 있으므로 기준값을 설정할 때 이 사실을 고려해야 합니다. 이 사실 때문에 ThresholdOpen 및 ThresholdClose는 40=(0+80)/2 및 20=(0+40)/2로 설정되어야 합니다.

Signal_StopLevel 및 Signal_TakeLevel 입력 매개변수의 값은 0으로 설정되며 이는 청산 조건이 참일 때만 포지션을 청산한다는 것을 의미합니다.


2.4. 백테스팅 결과

다음의 과거 데이터로 Expert Advisor를 백테스팅합니다. (EURUSD H1, 테스팅 기간: 2000.01.01-2011.03.16, PeriodK=6, PeriodD=3, PeriodSlow=36, MA_period=3).

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

그림. 11. 상승/하락 미팅 라인즈 + 스토캐스틱에 기반한 Expert Advisor의 백테스팅 결과"

그림. 11. 상승/하락 미팅 라인즈 + 스토캐스틱에 기반한 Expert Advisor의 백테스팅 결과"


최적의 입력 매개변수는 MetaTrader 5 클라이언트 터미널의 Strategy Tester를 통해 찾을 수 있을 것입니다.

MQL5 마법사를 사용하여 생성된 Expert Advisor의 코드는 expert_aml_stoch.mq5에 첨부되어 있습니다. .


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

MQL5 마법사 - 해머/교수형 + RSI에 기반한 매매 신호 MQL5 마법사 - 해머/교수형 + RSI에 기반한 매매 신호

Relative Strength Index (RSI)에 기반한 "해머/교수형" 캔들스틱 패턴 매매 신호를 살펴봅니다. 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

MQL5 마법사 - 해머/교수형 + MFI에 기반한 매매 신호 MQL5 마법사 - 해머/교수형 + MFI에 기반한 매매 신호

Market Facilitation Index (MFI)에 기반한 "해머/교수형" 캔들스틱 패턴 매매 신호를 살펴봅니다. 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

MQL5 Wizard - TrMQL5 마법사 - 상승/하락 미팅 라인즈 + CCI에 기반한 매매 신호 MQL5 Wizard - TrMQL5 마법사 - 상승/하락 미팅 라인즈 + CCI에 기반한 매매 신호

Commodity Channel Index (CCI)에 기반한 "상승/하락 미팅 라인즈" 매매 신호를 살펴봅니다. 이 전략에 기반한 Expert Advisor 코드는 MQL5 마법사를 사용하여 자동으로 생성될 수 있습니다.

DMH DMH

Directional Movement using Hann windowing