거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Facebook에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
262
평가:
(48)
게시됨:
업데이트됨:
\MQL5\Include\
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

주의! 이 지표는 ‘Просто ZZ(지그재그) ’ 코드의 한 버전을 기반으로 제작되었으며, 저자 PPC의 허락을 받아 여기에 게시됩니다(저는 테스트에 직접 참여하고 알고리즘의 오류를 지적했습니다). 이 코드는 MetaTrader 4 플랫폼용으로 일대일로 재작성된 지표 버전입니다.

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

지그재그란 무엇인가요?

제 관점에서 지그재그는 일종의 가격 차트 압축 형태입니다. 지그재그의 구성은 하나의 바 가격(예: 종가만)을 기반으로 할 수도 있고, 고가/저가(가장 일반적인 구성 유형)를 기반으로 할 수도 있습니다.

표준 지그재그(ZigZag) 지표를 연구하고 활용하면서 MetaQuotes의 기본 솔루션에 몇 가지 오류와 미비점이 드러났습니다. 가장 큰 문제는 기본 지그재그가 아웃사이드 바(outside bar) 상황을 처리하지 못한다는 점입니다.

2007년에 Rosh는 아웃사이드 바 처리 알고리즘을 적용한 Zigzag2 R 지표 버전을 공개했습니다. (DRAW_SECTION 대신 DRAW_ZIGZAG 그리기 스타일을 사용하여 ZigZag의 극값을 하나의 바에 배치할 수 있도록 하는)을 사용해야 했지만, 그조차도 알 수 없는 이유로 사이트에 게시된 버전에는 필요한 코드가 포함되어 있지 않습니다.

논의를 이어가기 위해, 전형적인 ZigZag의 구성 정확성에 대한 저만의 정의를 다음과 같이 제시하고자 합니다:

  • High 및 Low 극값은 엄격하게 번갈아 나타나야 합니다;
  • High 극값은 다음 (반대 방향의) Low 극값까지 오른쪽에 위치한 모든 바 중에서 최대값(또는 그와 동일한 값)을 가져야 합니다;
  • Low 극값은 다음 (반대 방향의) High 극값까지 오른쪽에 위치한 모든 바 중에서 최소값(또는 그와 동일한 값)을 가져야 합니다.

매우 직관적인 예시(2006년 12월 8일~13일 EURUSD H1)를 살펴보겠습니다. 이 예시에서는 외부 바와 관련된 두 가지 상황이 동시에 발생하는데, 일반적인 지표로는 이를 올바르게 처리하지 못합니다.

그림 1. 매개변수가 [12;5;3] 및 [12;0;0]인 전형적인 ZigZag

그림 1. 매개변수 [12;5;3] 및 [12;0;0]을 가진 일반적인 ZigZag


그림 2. 매개변수 [12;5;3]을 가진 Zigzag2 R

그림 2. 매개변수 [12;5;3]을 가진 Zigzag2 R



그림 3. 매개변수가 [12;0;0]인 Zigzag2 R

그림 3. 매개변수 [12;0;0]을 가진 Zigzag2 R

언뜻 보면 그림 3 이 모두 정확해 보이지만, 다음과 같은 점이 있습니다:

  1. 이 그림은 특정 매개변수를 적용한 것이며, 어떤 매개변수를 사용하더라도 그래프의 올바른 형태가 유지되어야 합니다.
  2. 왼쪽의 외부 막대는 High/Low 막대의 형성 순서가 중요하기 때문에 올바르게 처리되지 않습니다:


이에 따라 지그재그(ZigZag) 선분의 순서도 달라집니다.

연구 과정에서 다음과 같은 ZigZag 지표들이 테스트되었습니다(공개된 기간에만 국한되지 않음): ZigZag MT3, ZigZag, Zigzag R, Zigzag2 R, ZigZag_NK, ZigZag_ZUP89_nen, ZigZag_new_nen4, CZigZag, Swing_ZZ_1, DT_ZZ_nen, ZigZag_Talex, Reverse_ZZ, Points_ZZ_1, i_MF_Fractal_ZZ_3in1, ang_Amp_ZZ, ZigzagFr_v1, NonLagZigZag_v2, ZZ_FF_v3, ZigZag Ensign, ZigZag tauber, SQZZ Товаровед, 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] 매개변수


공개된 ZigZag의 특성 및 특징:

  • 단일 통과 방식;
  • 마지막 구간만 재계산 및 재그리기됨 (히스토리 추가 시를 제외하고는 구간을 취소할 수 없음);
  • 바 내부에서 계산 최적화 메커니즘이 적용됩니다(0 바 내에서 가격이 변동했거나, 변동이 MinMotion 변수에 설정된 최소 임계값을 초과하지 않은 경우, 틱 단위로 재계산되지 않습니다);
  • High/Low 바 형성 순서를 구하는 두 가지 알고리즘: 바 유형별(빠르지만 정확도는 낮음) 및 더 짧은 기간의 데이터 기반(역사 데이터 필요: 데이터의 존재 및 적절성을 직접 확인하거나 OutsideBar 라이브러리를 수정해야 함).

MetaTrader 5에서 호가의 정확성 문제가 아직 충분히 연구되지 않았기 때문에 ProExtra 버전은 공개되지 않습니다.


다른 ZigZag 지표의 비정상적인 작동에 대한 추가 사례

그림 6. 2010년 11월 29일~12월 7일 EURUSD H1 차트. 매개변수 [7;0;0]을 가진 빨간색 ZigZag 선. 매개변수 [7;0;0]을 가진 파란색 Zigzag2 R 선.

그림 6. 2010년 11월 29일~12월 7일 EURUSD H1 차트. 매개변수 [7;0;0]을 가진 빨간색 ZigZag 선. 매개변수 [7;0;0]을 가진 파란색 Zigzag2 R 선


그림 7. 2010년 11월 29일~12월 7일 EURUSD 1시간 차트. 올바른 차트 작성

그림 7. EURUSD H1, 2010년 11월 29일~12월 7일. 올바른 그리기


결론

아쉽게도 이 버전에도 몇 가지 단점이 있습니다. 하지만 저는 이를 개선하기 위해 노력하고 있습니다.

그리고 이 인디케이터는 (일반적인 ZigZag과 마찬가지로) iHighest/iLowest라는 동일한 채널 원리에 따라 작동하기 때문에, 때때로 고점을 놓치는 경우가 있습니다.

이 지표에서 발견된 모든 버그와 기능에 대해 꼭 알려주시기 바랍니다.

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

Show Positions on Custom Chart (or standard chart) for MT5 Show Positions on Custom Chart (or standard chart) for MT5

이 인디케이터는 모든 차트에 레이블이 지정된 거래 수준을 표시하는 유틸리티입니다. 기본 차트에서 기본 거래 수준을 대체하려면 F8 차트 속성에서 "거래 수준 표시"를 끄고 이 인디케이터를 첨부하세요. 기본 거래 수준을 표시할 수 없는 사용자 지정 차트에 거래 수준을 표시하려면 이 인디케이터를 첨부하면 됩니다. BaseSymbol - 거래 수준 데이터를 가져올 심볼을 지정합니다(고유한 사용자 지정 심볼에 유용). TextBarsBack - 현재 바에서 레벨 라벨이 그려질 과거 바의 수를 지정합니다. 참고: 코드에서 매직 넘버가 참조되지만 현재 거래 라인에 포함되지 않습니다. 동일한 심볼에서 여러 EA를 실행하는 경우 매직넘버를 표시하도록 코드를 편집한 다음 하나의 차트에서 지표의 여러 인스턴스를 실행할 수 있습니다. 또한 필요에 따라 개체 속성에서 글꼴 크기와 텍스트 간격을 다른 표시 해상도에 맞게 편집할 수 있습니다.

Baseline: iMA + ATR Bands Baseline: iMA + ATR Bands

이동 평균과 ATR 기반 상위 및 하위 밴드를 결합하여 추세 필터 및 변동성 채널로 작동합니다.

Export Indicator's Values Export Indicator's Values

이 스크립트는 지표의 값을 CSV 파일로 내보냅니다.

해시 함수 및 다른 산술 체계로의 변환을 위한 라이브러리 해시 함수 및 다른 산술 체계로의 변환을 위한 라이브러리

이 라이브러리에는 adler32, CRC-32, MaHash8v64와 같은 범용 해시 함수 알고리즘이 포함되어 있습니다. 또한 십진수 계산을 Base 계산을 사용하는 문자열 형식으로 변환하고, 그 반대로 변환하는 함수도 포함되어 있습니다.