당사 팬 페이지에 가입하십시오
- 조회수:
- 126
- 평가:
- 게시됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
주의! 이 표시기는 코드 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]이 있는 일반적인 지그재그 패턴](https://c.mql5.com/18/164/zz_01s__2.png)
그림 1: 매개변수 [12;5;3] 및 [12;0;0]이 있는 전형적인 지그재그형 차트
![그림 2: 매개변수 [12;5;3]이 있는 지그재그2 R 그림 2: 매개변수 [12;5;3]이 있는 지그재그2 R](https://c.mql5.com/18/164/zz_03s__2.png)
그림 2: 파라미터 [12;5;3]이 있는 지그재그2 R
![그림 3: 매개변수 [12;0;0]이 있는 지그재그2 R 그림 3: 매개변수 [12;0;0]이 있는 지그재그2 R](https://c.mql5.com/18/164/zz_02s__4.png)
그림 3. 파라미터 [12;0;0]이 있는 지그재그2 R
언뜻 보기에는 그림 3이 맞는 것처럼 보이지만:
- 이는 매개변수가 일치하는 경우이며, 어떤 매개변수를 사용하더라도 포메이션의 정확성은 유지되어야 합니다.
- 왼쪽의 바깥쪽 막대는 하이/로우 막대의 형성 순서가 중요하기 때문에 올바르게 처리되지 않았습니다:

따라서 지그재그 세그먼트의 순서도 중요합니다.
다음 지그재그는 연구 기간 동안 테스트되었습니다(게시된 기간뿐만 아니라): 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]](https://c.mql5.com/18/164/zz_05s__2.png)
그림 4. 매개변수 [12;0]
![그림 5. 파라미터 [23;0] 그림 5. 파라미터 [23;0]](https://c.mql5.com/18/164/zz_06s__2.png)
그림 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.](https://c.mql5.com/18/164/zz_07__3.gif)
그림 6: 2010년 11월 29일~12월 7일 EURUSD 상반기. 매개변수 [7;0;0]이 있는 빨간색 선 지그재그. 매개변수 [7;0;0]이 있는 파란색 선 지그재그2 R

그림 7: 2010년 11월 29일 - 12월 7일 EURUSD H1. 올바른 구성
결론
안타깝게도 이 버전에 모든 단점이 없는 것은 아닙니다. 하지만 노력 중입니다.
그리고이 표시기는 동일한 iHighest / iLowest 채널 원칙 (일반적인 지그재그)에서 작동하기 때문에 때때로 누락 된 정상이 있습니다.
이 표시기의 모든 버그와 기능을 신고해 주세요.MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/263
Show Positions on Custom Chart (or standard chart) for MT5
이 인디케이터는 모든 차트에 레이블이 지정된 거래 수준을 표시하는 유틸리티입니다. 기본 차트에서 기본 거래 수준을 대체하려면 F8 차트 속성에서 "거래 수준 표시"를 끄고 이 인디케이터를 첨부하세요. 기본 거래 수준을 표시할 수 없는 사용자 지정 차트에 거래 수준을 표시하려면 이 인디케이터를 첨부하면 됩니다. BaseSymbol - 거래 수준 데이터를 가져올 심볼을 지정합니다(고유한 사용자 지정 심볼에 유용). TextBarsBack - 현재 바에서 레벨 라벨이 그려질 과거 바의 수를 지정합니다. 참고: 코드에서 매직 넘버가 참조되지만 현재 거래 라인에 포함되지 않습니다. 동일한 심볼에서 여러 EA를 실행하는 경우 매직넘버를 표시하도록 코드를 편집한 다음 하나의 차트에서 지표의 여러 인스턴스를 실행할 수 있습니다. 또한 필요에 따라 개체 속성에서 글꼴 크기와 텍스트 간격을 다른 표시 해상도에 맞게 편집할 수 있습니다.
Baseline: iMA + ATR Bands
이동 평균과 ATR 기반 상위 및 하위 밴드를 결합하여 추세 필터 및 변동성 채널로 작동합니다.
Export Indicator's Values
이 스크립트는 인디케이터의 값을 CSV 파일로 내보냅니다.
해시 함수 라이브러리 및 다른 숫자 체계로의 변환
이 라이브러리에는 범용 해시 함수의 알고리즘인 adler32, CRC-32, MaHash8v64가 포함되어 있습니다. 또한 기본 시스템에서 십진수에서 문자열 표현으로 또는 그 반대로 변환하는 함수도 포함되어 있습니다.