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

MQL5 마법사 - 캔들 스틱 패턴에 기반한 거래 신호 + 스토캐스틱 - MetaTrader 5용 expert

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

설명:

MQL5 마법사를 통해 트레이더는 이제 거래 신호의 클래스, 포지션 추적 및 자금 관리를 기반으로 한 Expert Advisor 코드를 자동으로 생성할 수 있습니다. 표준 라이브러리의 거래 신호 클래스를 통해 자신의 거래 시스템을 개발하고 테스트할 수 있습니다. 이렇게 하기 위해서는 거래 신호 모듈을 작성하십시오.

책 "세계 최고의 트레이더들의 전략"(러시아어)는 MetaStock 소프트웨어 패키지와 관련된 기술적 분석을 위한 지표 및 거래 전략에 대해 설명합니다. 기존의 거래 신호와 함께 이 책은 스토캐스틱,CCI,MFI 그리고RSI를 통한 확인과 반전 캔들 패턴의 결합 사용을 기반으로 한 신호를 다룹니다..

오실레이터의 신호와 함께 "반전" 캔들스틱 패턴을 사용하면 잘못된 신호의 수를 줄이고 트레이딩 시스템의 효율성을 높일 수 있습니다.

이전 간행물에서 우리는 스토캐스틱으로 확인한 캔들스틱 패턴을 기반으로 거래 신호를 살펴 보았습니다:

  1. 3 검은 까마귀/3 하얀 병사
  2. 검은 구름 커버/피어싱 라인
  3. 상승 인걸핑/하락 인걸핑
  4. 상승 하라미/하락 하라미
  5. 해머/교수형
  6. 상승/하락 미팅 라인즈
  7. 모닝/이브닝 스타

이번에는 이러한 모든 모델을 스토캐스틱 지표 신호와 함께 결합하여 사용한 결과를 살펴볼 것입니다.


1. 강세와 약세 캔들스틱 모델 감지

캔들 패턴 클래스에는 강세 및 약세 캔들 패턴이 형성되었는지를 감지하는 기능도 있습니다(해머/교수형 조합 제외).

약세 캔들스틱 패턴의 형성은 CheckPatternAllBullish() 함수에 의해 확인됩니다.

//+------------------------------------------------------------------+
//| 강세 패턴의 형성 체크                                               |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBullish()
  {
   return(CheckPatternThreeWhiteSoldiers()  || 
          CheckPatternPiercingLine()       || 
          CheckPatternMorningDoji()        || 
          CheckPatternBullishEngulfing()   || 
          CheckPatternBullishHarami()      || 
          CheckPatternMorningStar()        || 
          CheckPatternBullishMeetingLines());
  }

강세 캔들스틱 패턴의 형성은 CheckPatternAllBearish() 함수에 의해 확인됩니다.

//+------------------------------------------------------------------+
//| 약세 패턴의 형성 체크                                               |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBearish()
  {
   return(CheckPatternThreeBlackCrows()     || 
          CheckPatternDarkCloudCover()     || 
          CheckPatternEveningDoji()        || 
          CheckPatternBearishEngulfing()   || 
          CheckPatternBearishHarami()      || 
          CheckPatternEveningStar()        || 
          CheckPatternBearishMeetingLines());
  }

2. 스토캐스틱 지표를 통한 거래 신호

롱/숏 포지션은 강세/약세 모델 중 하나가 형성되고 스토캐스틱 오실레이터의 확인이 있을 때 수행됩니다. %D 신호 라인 값은 적절한 임계 레벨(30 및 70)보다 높거나 낮아야 합니다.

청산 신호는 두가지의 경우입니다:

  1. 반대의 캔들 패턴이 형성될 때(롱 포지션의 경우 약세, 숏 포지션의 경우 강세).
  2. %D에 따라. %D가 시장과 반대되는 수준(롱포지션 80, 숏포지션 20)에 도달하거나 %D가 반전 신호를 확인하지 않고 롱포지션의 경우 20, 숏포지션의 경우 80에 도달하는 경우.

시장 진입 및 청산 조건 확인은 다음과 같은 방법으로 수행됩니다.

  • int CCP_Stoch::LongCondition() - 롱 포지션(m_pattern_0)을 열고 숏 포지션(m_pattern_1)을 닫기 위한 조건을 확인합니다.
  • int CCP_Stoch::ShortCondition() - 숏 포지션(m_pattern_0)을 열고 롱 포지션(m_pattern_1)을 닫기 위한 조건을 확인합니다.

2.1. 롱 포지션 진입 및 숏 포지션 청산

  1. 롱 포지션을 여는 신호는 강세 캔들스틱 조합을 형성하고 StochSignal(1)<30일 경우입니다(스토캐스틱 지표의 시그널 라인 값이 마지막으로 완료된 캔들에서 30보다 작음);

  2. 숏포지션 청산 신호는 강세 캔들 패턴 중 하나를 형성하거나 지표의 라인이 20선 스토캐스틱 라인을 (위쪽) 또는 80레벨 라인을(위쪽)으로 돌파하는 경우입니다.

//+------------------------------------------------------------------+
//| 마켓 모델이 형성 되었는지 체크하는 메서드                               |
//| 다음의 조건을 체크함                                                |
//| 진입 (숏 포지션 열기, m_pattern_0)                                  |
//| 청산  (롱 포지션 닫기, m_pattern_1)                                 |
//+------------------------------------------------------------------+
int CCP_Stoch::LongCondition()
  {
   int res=0;
//---- 숏포지션을 열기 위한 조건을 체크
//---- 상승 패턴의 형성과 스토캐스틱 지표의 시그널 라인이 <30 
   if(CheckPatternAllBullish() && (StochSignal(1)<30)) res=m_pattern_0; // 롱 포지션을 여는 신호 

//--- 숏 포지션을 닫는 조건
//--- 하락 패턴 형성 혹은 시그널 라인이(20 상방으로, 80 상방으로) 돌파
   if(CheckPatternAllBullish() ||
      ((StochSignal(1)>20) && (StochSignal(2)<20)) || 
      ((StochSignal(1)>80) && (StochSignal(2)<80)))    res=m_pattern_1; // 숏 포지션을 닫기 위한 신호
//---
   return(res);
  }

2.2. 숏 포지션 진입 그리고 롱 포지션 청산

  1. 숏 포지션을 여는 신호는 약세 캔들스틱 패턴 중 하나를 형성하고 StochSignal(1)>70인 조건입니다(스토캐스틱 지표의 값이 마지막으로 완료된 캔들에서 시그널 라인이 70을 초과함):

  2. 롱 포지션 청산 신호는 약세 캔들 패턴 중 하나를 형성하거나 지표의 라인이 20선스토캐스틱 라인을 (아래쪽) 또는 80레벨 라인을(아래쪽)으로 돌파하는 경우입니다.

//+------------------------------------------------------------------+
//| 마켓 모델이 형성 되었는지 체크하는 메서드                               |
//| 다음의 조건을 체크                                                  | 
//| 진입 (숏 포지션 열기, m_pattern_0)                                  |
//| 청산  (롱 포지션 닫기, m_pattern_1)                                 |
//+------------------------------------------------------------------+
int CCP_Stoch::ShortCondition()
  {
   int res=0;
//--- 숏 포지션을 열기 위한 조건을 체크
//---- 하락 패턴의 형성과 스토캐스틱 지표의 시그널 라인이 >70 
   if(CheckPatternAllBearish() && (StochSignal(1)>70)) res=m_pattern_0; // 숏 포지션을 열기 위한 조건

//--- 롱 포지션을 청산하기 위한 조건 
//---- 하락 패턴의 형성 혹은 시그널 라인의 교차(하방 80, 하방 20)
   if(CheckPatternAllBearish() || 
      ((StochSignal(1)<80) && (StochSignal(2)>80)) || 
      ((StochSignal(1)<20) && (StochSignal(2)>20)))    res=m_pattern_1; // 롱 포지션을 닫기 위한 신호 
//---
   return(res);
  }

2.3. MQL5 마법사를 사용하여 "캔들 패턴 + 스토캐스틱" 반전 패턴의 거래 신호를 기반으로 Expert Advisor 만들기

CCP_Stoch 클래스는 트레이딩 신호의 표준 라이브러리에 포함되어 있지 않습니다. 따라서 ccp_stoch.mqh 파일(첨부)을 다운로드하여\terminal_folder\Include\Expert\Signal\MySignals에 저장합니다 candlepatterns.mqh 파일은 ccp_stoch.mqh와 같은 디렉토리에 복사되어야 합니다. 이후 MetaEditor를 재실행하면 MQL5 Wizard에서 파일을 사용할 수 있습니다.

이 전략에 따라 MQL5 마법사을 사용하여 트레이딩 로봇을 만들려면 두 번째 단계에서 신호 유형을 "캔들 패턴 + 스토캐스틱에 기반한 신호"로 선택합니다:

그림. 1. MQL5 Wizard에서 "Candlestick Patterns+Stochastic에 기반한 신호" 거래 신호 생성기 선택

그림. 1. MQL5 Wizard에서 "Candlestick Patterns+Stochastic에 기반한 신호" 거래 신호 생성기 선택

후속 단계에서 관련된 트레일링 스탑 유형 및 자금 관리 시스템을 지정합니다. Expert Advisor의 코드는 자동으로 생성됩니다. 이제 테스트를 시작할 준비가 되도록 컴파일해야 합니다.


2.4. 테스트 결과

과거 데이터로 Expert Advisor를 테스트 한 결과(EURUSD H1, 테스트 기간: 1.1.2000-02.02.2011, PeriodK=33, PeriodD=37, PeriodSlow=30, MA_period=25).

이 Expert Advisor는 0.1랏의 고정 거래량을 사용합니다(고정 랏 거래). 트레일링 스탑은 사용되지 않습니다(Trailing not used).

그림 2. "캔들 패턴 + 스토캐스틱에 기반한 신호" 거래 신호 생성기를 기반으로 Expert Advisor를 테스트한 결과

Fig. 2. "캔들 패턴+스토캐스틱에 기반한 신호" 거래 신호 생성기를 기반으로 Expert Advisor를 테스트한 결과

MetaTrader 5 전략 테스터를 사용하면 최상의 거래 시스템 매개변수 세트를 찾을 수 있습니다.

MQL5 Wizard로 생성된 Expert Advisor의 코드는 expert_cp_stoch.mq5 파일에 첨부되어 있습니다.


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

Demo_BitmapOffset (OBJPROP_XOFFSET and OBJPROP_YOFFSET) Demo_BitmapOffset (OBJPROP_XOFFSET and OBJPROP_YOFFSET)

만약 현재 이미지의 일부만 표시하고 나머지는 숨길 필요가 있는 경우 이미지가 보이는 부분을 지정하여 이동하는 창을 사용할 수 있습니다.

정규식 작업을 위한 MQL5의 RegularExpressions 정규식 작업을 위한 MQL5의 RegularExpressions

정규식은 빠르고 유연한 텍스트 처리를 위한 공식적인 언어를 제공합니다. 각 정규식은 정규식 엔진이 소스 텍스트에서 일치 항목을 찾으려고 하는 패턴(마스크)입니다. 패턴은 하나 이상의 character literals, operators, constructs으로 구성됩니다.

IFS(반복 함수 시스템)를 사용하여 MQL5에서 프랙탈 생성 IFS(반복 함수 시스템)를 사용하여 MQL5에서 프랙탈 생성

cIntBMP 라이브러리는 그래픽 BMP 이미지를 생성합니다 IFS(반복 함수 시스템)를 사용하여 self-simliar fractal 집합을 만들어 사용하는 예를 고려할 것입니다.

DRAW_NONE DRAW_NONE

DRAW_NONE 그리기 스타일은 "데이터 창"에서 지표의 값을 계산하고 표시해야 하지만 플로팅이 필요하지 않은 경우에 사용됩니다.