MetaTrader 5 / 지표

프로페셔널 지그재그 - MetaTrader 5용 지표

92
(48)

주의! 이 표시기는 코드 Just ZZ (지그재그) 버전 중 하나를 기반으로하며 PPC 작성자의 허가를 받아 여기에 게시되었습니다 (알고리즘의 오류를 테스트하고 지적하는 데 직접 참여했습니다). 이 코드는 메타트레이더 4 플랫폼용 지표의 일대일 버전을 재작성한 것입니다.

주의! 라이브러리 "AlexSTAL_OutsideBar.mqh"는 터미널 폴더 ..\MQL5\Include\에위치해야 합니다.

지그재그란 무엇인가요?

제가 보기에 지그재그는 일종의 가격 차트 압축입니다. 지그재그는 단일 막대 가격(예: 종가만) 또는 고점/저점(가장 일반적인 구성 유형)을 기준으로 할 수 있습니다.

표준 지그재그 인디케이터를 연구하고 작업하는 과정에서 메타쿼츠의 일반적인 솔루션의 몇 가지 오류와 단점이 드러났습니다. 가장 큰 문제는 표준 지그재그가 외부 막대가 있는 상황을 처리하지 못한다는 것입니다.

2007년에 Rosh는 외부 막대를 처리하는 알고리즘(하나의 막대에 지그재그 극단을 배치할 수 있는 DRAW_SECTION 대신 드로잉 스타일 DRAW_ZIGZAG 사용)을 사용해야 하는 Zigzag2 R 표시기의 버전을 발표했지만, 본인도 모르는 이유로 사이트의 버전에 필요한 코드가 포함되어 있지 않습니다.

대화를 계속하기 위해 일반적인 지그재그 구축의 정확성에 대한 제 정의를 공식화하고자 합니다:

  • 극값 높음과 낮음은 엄격하게 번갈아 가며 나타나야 합니다;
  • 극값은 다음 (반대편) 극값까지 오른쪽에 있는 모든 막대 중 최대(또는 동일한) 값을 가져야 합니다;
  • 극한값은 다음 (반대편) 극한값까지 오른쪽에 위치한 모든 막대 중 최소값(또는 동일한 값)을 가져야 합니다.

일반적인 인디케이터가 올바르게 처리하지 못하는 외부 막대가 있는 두 가지 상황이 동시에 발생하는 매우 예시적인 예(2006년 12월 8~13일 EURUSD H1)를 살펴봅시다.

그림 1: 파라미터 [12;5;3] 및 [12;0;0]이 있는 일반적인 지그재그 패턴

그림 1: 매개변수 [12;5;3] 및 [12;0;0]이 있는 전형적인 지그재그형 차트


그림 2: 매개변수 [12;5;3]이 있는 지그재그2 R

그림 2: 파라미터 [12;5;3]이 있는 지그재그2 R



그림 3: 매개변수 [12;0;0]이 있는 지그재그2 R

그림 3. 파라미터 [12;0;0]이 있는 지그재그2 R

언뜻 보기에는 그림 3이 맞는 것처럼 보이지만:

  1. 이는 매개변수가 일치하는 경우이며, 어떤 매개변수를 사용하더라도 포메이션의 정확성은 유지되어야 합니다.
  2. 왼쪽의 바깥쪽 막대는 하이/로우 막대의 형성 순서가 중요하기 때문에 올바르게 처리되지 않았습니다:


따라서 지그재그 세그먼트의 순서도 중요합니다.

다음 지그재그는 연구 기간 동안 테스트되었습니다(게시된 기간뿐만 아니라): ZigZag MT3, ZigZag, ZigZag R, ZigZag2 R, ZigZag_NK, ZigZag_ZUP89_nen, ZigZag_ZUP89_nen, ZigZag_new_nen4, CZigZag, Swing_ZZZ_1, DT_ZZ_nen, ZigZag_Talex, Reverse_ZZZ, Points_ZZZ_1, i_MF_Fractal_ZZZ_3in1, ang_Amp_ZZZ, ZigzagFr_v1, NonLagZigZigZag_v2, ZZ_FF_v3, ZigZag Ensign, ZigZag tauber, SQZZ Commodore, ZZ_2L_nen wellx, Channel ZZ, Azzx_larryzz_3_0, RPoint, RPoint-m v2, ZigZagTF. 이들 중 어느 것도 당면한 과제에 완전히 대처하지 못했습니다.


연구된 영역에서 이 지표의 수치:

그림 4: 파라미터 [12;0]

그림 4. 매개변수 [12;0]


그림 5. 파라미터 [23;0]

그림 5. 파라미터 [23;0]


공개된 지그재그의 특성 및 특징:

  • 싱글 패스;
  • 마지막 세그먼트만 다시 계산되고 다시 그려집니다(내역 다운로드를 제외하고 세그먼트는 취소할 수 없음);
  • 막대 내부의 계산 최적화 메커니즘이 있습니다(가격이 제로 막대 내에서 변경되었거나 변경 사항이 MinMotion 변수에 지정된 최소 임계값을 초과하지 않으면 틱에서 다시 계산되지 않습니다);
  • 고점/저점 바 형성 순서를 얻기 위한 두 가지 알고리즘: 바 유형별(빠르지만 신뢰할 수 없음) 및 더 작은 기간의 데이터별(기록 필요: 존재 여부 및 적절성 독립 제어 또는 OutsideBar 라이브러리 수정).

메타트레이더 5의 호가 정확성 문제는 아직 연구되지 않았기 때문에 ProExtra 버전은 게시되지 않았습니다.


다른 지그재그의 잘못된 작동에 대한 추가 예시

그림 6: 2010년 11월 29일부터 12월 7일까지 EURUSD 상반기. 매개변수 [7;0;0]이 있는 빨간색 선 지그재그. 매개변수 [7;0;0]이 있는 파란색 선 지그재그2 R.

그림 6: 2010년 11월 29일~12월 7일 EURUSD 상반기. 매개변수 [7;0;0]이 있는 빨간색 선 지그재그. 매개변수 [7;0;0]이 있는 파란색 선 지그재그2 R


그림 7: 2010년 11월 29일부터 12월 7일까지의 EURUSD 상반기. 올바른 구성

그림 7: 2010년 11월 29일 - 12월 7일 EURUSD H1. 올바른 구성


결론

안타깝게도 이 버전에 모든 단점이 없는 것은 아닙니다. 하지만 노력 중입니다.

그리고이 표시기는 동일한 iHighest / iLowest 채널 원칙 (일반적인 지그재그)에서 작동하기 때문에 때때로 누락 된 정상이 있습니다.

이 표시기의 모든 버그와 기능을 신고해 주세요.

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