설명
MQL5 위자드를 사용하면 트레이더들은 거래 신호 클래스, 포지션 추적 및 자금 관리에 기반하여 EA(Expert Advisor) 코드를 자동으로 생성할 수 있습니다. 표준 라이브러리의 거래 신호 클래스를 활용하여 자신만의 거래 시스템을 개발하고 테스트할 수 있습니다. 이를 위해서는 거래 신호 모듈을 작성하면 됩니다.
"세계 최고의 트레이더의 전략" (러시아어)은 MetaStock 소프트웨어 패키지를 사용한 기술 분석을 위한 지표 및 거래 전략을 설명합니다. 이 책은 일반적인 거래 신호 외에도 반전 캔들스틱 패턴과 스토캐스틱, CCI, MFI, RSI의 조합을 기반으로 한 신호에 대해서도 다룹니다.
"반전" 캔들스틱 패턴과 오실레이터 신호를 함께 사용하면 잘못된 신호의 수를 줄이고 거래 시스템의 효율성을 높일 수 있습니다.
이전 게시물에서는 스토캐스틱의 확인을 바탕으로 한 캔들스틱 패턴의 거래 신호를 살펴보았습니다:
이번 설명에서는 이러한 모든 모델을 스토캐스틱 지표 신호와 함께 사용하는 결과를 살펴보겠습니다.
1. 강세 및 약세 캔들스틱 모델 및 탐지
CandlePattern 클래스는 일부 강세 및 약세 캔들스틱 패턴의 형성을 탐지하는 기능도 가지고 있습니다(망치/교수형 조합 제외).
약세 캔들 패턴의 형성은 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) 위 또는 아래에 있어야 합니다.
종료 신호는 두 가지 경우에 형성됩니다:
- 반대 캔들 패턴이 형성되었을 때(롱 포지션의 경우 약세 패턴, 숏 포지션의 경우 강세 패턴).
- %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. 롱 포지션 열기 및 숏 포지션 닫기
-
롱 포지션을 열기 위한 신호는 강세 캔들 조합이 형성되며 StochSignal(1)<30 조건이 충족될 때입니다(마지막 완료된 바에서 스토캐스틱 지표의 신호선 값이 30 미만).
-
숏 포지션을 닫기 위한 신호는 강세 캔들 패턴 중 하나가 형성되거나 지표 선이 20 레벨(스토캐스틱 라인)에서 위로 교차할 때입니다.
//+------------------------------------------------------------------+ //| 시장 모델이 형성되었는지 확인하는 방법 | //| 진입 확인 (숏 포지션 개설, 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. 숏 포지션 열기 및 롱 포지션 닫기
-
숏 포지션을 열기 위한 신호는 약세 캔들 패턴 중 하나가 형성되며 StochSignal(1)>70 조건이 충족될 때입니다(마지막 완료된 바에서 스토캐스틱 지표의 신호선 값이 70 초과).
-
롱 포지션을 닫기 위한 신호는 약세 캔들 패턴 중 하나가 형성되거나 지표 선이 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 위자드에서 파일을 사용할 수 있습니다.
이 전략을 따르는 거래 로봇을 MQL5 위자드를 통해 생성하려면 두 번째 단계에서 "캔들스틱 패턴 + 스토캐스틱 기반 신호" 신호 유형을 선택하십시오:

캔들스틱 패턴 + 스토캐스틱 신호 유형 선택
다음 단계에서는 필요한 트레일링 스탑 유형 및 자금 관리 시스템을 지정하십시오. Expert Advisor의 코드는 자동으로 생성됩니다. 이제 컴파일하여 테스트를 시작할 준비를 하십시오.
2.4. 테스트 결과
Expert Advisor의 테스트 결과(히스토리 데이터: EURUSD H1, 테스트 기간: 2000.1.1-2011.2.2, PeriodK=33, PeriodD=37, PeriodSlow=30, MA_period=25).
이 Expert Advisor는 고정 볼륨 0.1 롯트로 거래 모듈을 사용합니다 (고정 롯트 거래). 트레일링 스탑은 사용되지 않습니다 (트레일링 사용하지 않음).

"캔들스틱 패턴 + 스토캐스틱" 신호 생성기 기반의 Expert Advisor 테스트 결과
최적의 거래 시스템 파라미터 세트는 MetaTrader 5 전략 테스터를 사용하여 찾을 수 있습니다.
MQL5 위자드로 생성된 Expert Advisor의 코드는 expert_cp_stoch.mq5 파일에 첨부되어 있습니다.