Profesyonel ZigZag - MetaTrader 5 için gösterge
Dikkat! Bu gösterge Just ZZ (zig-zag) kodunun sürümlerinden birine dayanmaktadır ve burada PPC yazarının izniyle yayınlanmaktadır (algoritmadaki hataları test etmek ve işaret etmekle doğrudan ilgiliydim). Bu kod, MetaTrader 4 platformu için göstergenin bire bir yeniden yazılmış bir sürümüdür.
Dikkat! "AlexSTAL_OutsideBar.mqh" kütüphanesi terminal klasörüne yerleştirilmelidir ..\MQL5\Include\.
ZigZag nedir?
Benim bakış açıma göre ZigZag bir tür fiyat grafiği sıkıştırmasıdır. ZigZag, tek bir çubuk fiyatına (örneğin, yalnızca Kapanış) veya Yüksek/Düşük (en yaygın yapı türü) fiyatına dayalı olabilir.
Standart ZigZag göstergesini inceleme ve onunla çalışma sürecinde, MetaQuotes'un tipik çözümünün bazı hataları ve eksiklikleri ortaya çıktı. En büyük sorun, standart ZigZag'ın bir dış çubukla durumu idare etmemesidir.
2007 yılında Rosh, dış çubuğu işleme algoritmasını kullanması gereken Zigzag2 R göstergesinin bir versiyonunu yayınladı (ZigZag ekstremasını bir çubuğa yerleştirmeye izin veren DRAW_SECTION yerine DRAW_ZIGZAG çizim stilini kullanarak), ancak kendisi tarafından bile bilinmeyen nedenlerden dolayı, sitedeki sürüm gerekli kodu içermiyor.
Konuşmaya devam etmek için, tipik bir ZigZag inşa etmenin doğruluğuna ilişkin tanımımı formüle etmek istiyorum:
- Yüksek ve Düşük ekstremiteler kesinlikle dönüşümlü olmalıdır;
- Yüksek ekstremum, bir sonraki (karşıt) Düşük ekstremuma kadar sağ tarafta bulunan tüm çubuklar arasında maksimum (veya eşit) değere sahip olmalıdır;
- Düşük ekstremum, bir sonraki (karşıt) Yüksek ekstremuma kadar sağda bulunan tüm çubuklar arasında minimum (veya eşit) değere sahip olmalıdır.
Çok açıklayıcı bir örneğe bakalım (EURUSD H1 8-13 Aralık 2006), tipik göstergeler tarafından doğru bir şekilde ele alınmayan dış çubuklu iki durum aynı anda meydana gelir.
![Şekil 1: [12;5;3] ve [12;0;0] parametreleri ile tipik ZigZag Şekil 1: [12;5;3] ve [12;0;0] parametreleri ile tipik ZigZag](https://c.mql5.com/18/164/zz_01s__3.png)
Şekil 1: [12;5;3] ve [12;0;0] parametreleri ile tipik ZigZag
![Şekil 2: [12;5;3] parametreleri ile Zigzag2 R Şekil 2: [12;5;3] parametreleri ile Zigzag2 R](https://c.mql5.com/18/164/zz_03s__3.png)
Şekil 2. [12;5;3] parametreleri ile Zigzag2 R
![Şekil 3: [12;0;0] parametreleri ile Zigzag2 R Şekil 3: [12;0;0] parametreleri ile Zigzag2 R](https://c.mql5.com/18/164/zz_02s__5.png)
Şekil 3. [12;0;0] parametreleri ile Zigzag2 R
İlk bakışta Şekil 3 doğru gibi görünebilir, ancak:
- Eşleşen parametrelerle yapılır ve oluşumun doğruluğu herhangi bir parametre ile korunmalıdır.
- Soldaki dış çubuk doğru şekilde işlenmez çünkü Yüksek/Düşük çubuğunun oluşum sırası önemlidir:

ve buna bağlı olarak ZigZag segmentlerinin sırası.
Araştırma sırasında aşağıdaki ZigZag test edilmiştir (sadece yayınlanan dönemde değil): 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, NonLagZigZag_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. Hiçbiri elindeki görevin üstesinden tam olarak gelemedi.
Bu göstergenin incelenen alandaki rakamları:
![Şekil 4: Parametreler [12;0] Şekil 4: Parametreler [12;0]](https://c.mql5.com/18/164/zz_05s__3.png)
Şekil 4. Parametreler [12;0]
![Şekil 5. Parametreler [23;0] Şekil 5. Parametreler [23;0]](https://c.mql5.com/18/164/zz_06s__3.png)
Şekil 5. Parametreler [23;0]
Yayınlanan ZigZag'ın özellikleri ve nitelikleri:
- Tek geçişli;
- Sadece son segment yeniden hesaplanır ve yeniden çizilir (geçmiş indirme hariç segment iptal edilemez);
- Bir çubuk içindeki hesaplamaların optimizasyon mekanizması vardır (fiyat sıfır çubuk içinde değiştiyse veya değişiklikleri MinMotion değişkeninde belirtilen minimum eşikten fazla değilse, bir kene üzerinde yeniden hesaplanmaz);
- Yüksek/Düşük çubuk oluşum sırasını elde etmek için iki algoritma: çubuk türüne göre (hızlı, ancak güvenilir değil) ve daha küçük bir dönemden gelen verilerle (geçmiş gereklidir: varlığının ve yeterliliğinin bağımsız kontrolü veya OutsideBar kütüphanesinin değiştirilmesi).
MetaTrader 5'te tekliflerin doğruluğu konusu henüz incelenmediğinden ProExtra sürümü yayınlanmamıştır.
Diğer ZigZag'ların hatalı çalışmasına ilişkin ek örnekler
![Şekil 6: EURUSD H1 29 Kasım-7 Aralık 2010. Kırmızı çizgi [7;0;0] parametreli ZigZag. Mavi çizgi [7;0;0] parametreli Zigzag2 R. Şekil 6: EURUSD H1 29 Kasım-7 Aralık 2010. Kırmızı çizgi [7;0;0] parametreli ZigZag. Mavi çizgi [7;0;0] parametreli Zigzag2 R.](https://c.mql5.com/18/164/zz_07__4.gif)
Şekil 6: EURUSD H1 29 Kasım-7 Aralık 2010. Kırmızı çizgi [7;0;0] parametreli ZigZag. Mavi çizgi [7;0;0] parametreleri ile Zigzag2 R

Şekil 7: EURUSD H1, 29 Kasım - 7 Aralık 2010. Doğru yapı
Sonuç
Ne yazık ki, bu sürüm tüm eksikliklerden yoksun değil. Ama üzerinde çalışıyorum.
Ve bu gösterge aynı iHighest / iLowest kanal prensibi (ve tipik bir ZigZag) üzerinde çalıştığından, bazen kaçırılan tepeler vardır.
Lütfen bu göstergenin tüm hatalarını ve özelliklerini bildirin.MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/263