Fan sayfamıza katılın
- Görüntülemeler:
- 262
- Derecelendirme:
- Yayınlandı:
- Güncellendi:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
Dikkat! Bu gösterge, “Prosto ZZ” (zikzak) kodunun sürümlerinden birine dayanılarak oluşturulmuştur ve yazar PPC’nin izniyle burada yayınlanmaktadır (algoritmadaki hataların tespit edilmesi ve test edilmesinde bizzat yer aldım). Bu kod, MetaTrader 4 platformu için göstergenin birebir yeniden yazılmış bir versiyon udur.
Dikkat! "AlexSTAL_OutsideBar.mqh" kütüphanesini terminalin ..\MQL5\Include\klasörüne yerleştirmeniz gerekmektedir.
ZigZag nedir?
Benim bakış açıma göre ZigZag, fiyat grafiğinin bir tür sıkıştırılmış halidir. ZigZag'ın oluşturulması, tek bir çubuk fiyatına (örneğin, sadece Kapanış) veya Yüksek/Düşük değerlerine (en yaygın oluşturma türü) dayalı olabilir.
Standart ZigZag göstergesini incelerken ve kullanırken, MetaQuotes’un standart çözümünde bazı hatalar ve eksiklikler ortaya çıktı. En büyük sorun, standart ZigZag’ın dış çubuk (outside bar) durumunu işleyememesidir.
2007 yılında Rosh, dış çubuk işleme algoritmasını kullanması gereken Zigzag2 R göstergesinin bir sürümünü yayınladı (DRAW_SECTION yerine DRAW_ZIGZAG çizim stilini kullanarak, bu da ZigZag'ın en uç noktalarının tek bir çubukta yer almasını sağlar), ancak kendisine bile bilinmeyen bir nedenden dolayı sitedeki sürümde gerekli kod bulunmamaktadır.
Konuşmaya devam etmek için, tipik bir ZigZag'ın oluşturulmasının doğruluğuna ilişkin kendi tanımımı şu şekilde ifade etmek istiyorum:
- High ve Low ekstremumları kesinlikle sırayla gelmelidir;
- High ekstremumu, bir sonraki (zıt) Low ekstremumuna kadar sağda yer alan tüm çubuklar arasında en yüksek (veya eşit) değere sahip olmalıdır;
- Low ekstremumu, bir sonraki (zıt) High ekstremumuna kadar sağ tarafta yer alan tüm çubuklar arasında en düşük (veya eşit) değere sahip olmalıdır.
Tipik göstergeler tarafından doğru şekilde işlenemeyen, dış çubukla ilgili iki durumun aynı anda ortaya çıktığı çok açıklayıcı bir örneği (8-13 Aralık 2006 tarihli EURUSD H1 grafiği) inceleyelim.
![Şekil 1. [12;5;3] ve [12;0;0] parametrelerine sahip tipik bir ZigZag Şekil 1. [12;5;3] ve [12;0;0] parametrelerine sahip tipik bir ZigZag](https://c.mql5.com/18/459/zz_01s__3.png)
Şekil 1. [12;5;3] ve [12;0;0] parametrelerine sahip tipik bir ZigZag
![Şekil 2. [12;5;3] parametrelerine sahip Zigzag2 R Şekil 2. [12;5;3] parametrelerine sahip Zigzag2 R](https://c.mql5.com/18/459/zz_03s__3.png)
Şekil 2. [12;5;3] parametrelerine sahip Zigzag2 R
![Şekil 3. [12;0;0] parametrelerine sahip Zigzag2 R Şekil 3. [12;0;0] parametrelerine sahip Zigzag2 R](https://c.mql5.com/18/459/zz_02s__5.png)
Şekil 3. [12;0;0] parametrelerine sahip Zigzag2 R
İlk bakışta Şekil 3 'te her şeyin doğru olduğu düşünülebilir, ancak:
- Bu, belirli parametrelerle oluşturulmuş bir örnektir; oysa yapının doğruluğu her türlü parametreye göre korunmalıdır.
- Soldaki dış çubuk, High/Low çubuğunun oluşum sırasının önemi nedeniyle doğru şekilde işlenmemektedir:

ve buna bağlı olarak ZigZag segmentlerinin sırası da önemlidir.
Araştırma sürecinde aşağıdaki ZigZag modelleri test edildi (sadece yayınlanan dönemde değil): 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. Bunların hiçbiri verilen görevi tam olarak yerine getiremedi.
İncelenen bölümde bu göstergenin grafikleri:
![Şekil 4. [12;0] parametreleri Şekil 4. [12;0] parametreleri](https://c.mql5.com/18/459/zz_05s__3.png)
Şekil 4. [12;0] parametreleri
![Şekil 5. [23;0] parametreleri Şekil 5. [23;0] parametreleri](https://c.mql5.com/18/459/zz_06s__3.png)
Şekil 5. [23;0] parametreleri
Yayınlanan ZigZag'ın özellikleri ve ayrıntıları:
- Tek geçişli;
- Yalnızca son aralık yeniden hesaplanır ve yeniden çizilir (tarihçenin yüklenmesi dışında aralık iptal edilemez);
- Çubuk içindeki hesaplamaları optimize eden bir mekanizma mevcuttur (fiyat sıfır çubuğun içinde değişmişse veya değişimi MinMotion değişkeninde belirlenen minimum eşiği aşmamışsa, her tikte yeniden hesaplanmaz);
- High/Low çubuğunun oluşum sırasını belirleyen iki algoritma: çubuk türüne göre (hızlı, ancak güvenilir değil) ve daha kısa dönem verilerine göre (tarih verisi gereklidir: bu verinin mevcudiyeti ve yeterliliği bağımsız olarak kontrol edilmeli veya OutsideBar kütüphanesi değiştirilmelidir).
ProExtra sürümü yayınlanmamaktadır, çünkü MetaTrader 5'teki fiyatların doğruluğu konusu henüz incelenmemiştir.
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] parametrelerine sahip ZigZag. Mavi çizgi, [7;0;0] parametrelerine sahip Zigzag2 R. Şekil 6. EURUSD H1, 29 Kasım – 7 Aralık 2010. Kırmızı çizgi, [7;0;0] parametrelerine sahip ZigZag. Mavi çizgi, [7;0;0] parametrelerine sahip Zigzag2 R.](https://c.mql5.com/18/459/zz_07__4.gif)
Şekil 6. EURUSD H1, 29 Kasım-7 Aralık 2010. [7;0;0] parametrelerine sahip kırmızı ZigZag çizgisi. [7;0;0] parametrelerine sahip mavi Zigzag2 R çizgisi

Şekil 7. EURUSD H1, 29 Kasım – 7 Aralık 2010. Doğru çizim
Sonuç
Ne yazık ki, bu sürümde bazı eksiklikler bulunmaktadır. Ancak bu konuyla ilgili çalışmalarımı sürdürüyorum.
Bu gösterge, (tipik ZigZag gibi) yine iHighest/iLowest kanal prensibine göre çalıştığı için, bazen tepe noktalarının atlanmasına rastlanabilir.
Bu göstergenin tüm fark ettiğiniz hatalarını ve özelliklerini bize bildirmenizi rica ederiz.MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/263
Show Positions on Custom Chart (or standard chart) for MT5
Bu gösterge, herhangi bir grafikte etiketli ticaret seviyelerini gösteren bir yardımcı programdır. Yerel bir grafikte yerel ticaret seviyelerinizi değiştirmek istiyorsanız, F8 Grafik Özelliklerinizde "Ticaret seviyelerini göster" seçeneğini kapatın ve bu göstergeyi ekleyin. Özel bir Grafikte (yerel ticaret seviyelerinin gösterilemediği) ticaret seviyelerini göstermek istiyorsanız, bu göstergeyi eklemeniz yeterlidir. BaseSymbol - ticaret seviyesi verilerinin çekileceği Sembolü belirtin - benzersiz Özel Semboller için kullanışlıdır. TextBarsBack - seviye etiketlerinin çizileceği mevcut çubuktan geçmişteki çubuk sayısını belirtin. Not: Kodda sihirli sayıya atıfta bulunulmasına rağmen, şu anda ticaret satırlarına dahil edilmemiştir. Aynı Sembol üzerinde birden fazla EA çalıştırıyorsanız, sihirli sayıları göstermek için kodu düzenleyebilir ve ardından göstergenin birden çok örneğini tek bir grafikte çalıştırabilirsiniz. Ayrıca, farklı ekran çözünürlükleri için nesne özelliklerinde yazı tipi boyutlarını ve metin aralığını gerektiği gibi düzenleyebilirsiniz.
Baseline: iMA + ATR Bands
Trend filtresi ve volatilite kanalı olarak hareket etmek için Hareketli Ortalamayı ATR tabanlı üst ve alt bantlarla birleştirir.
Export Indicator's Values
Bu komut dosyası, göstergenin değerlerini CSV dosyasına aktarır.
Hash fonksiyonları ve diğer hesaplama sistemlerine dönüştürme kütüphanesi
Kütüphanede genel amaçlı hash fonksiyonu algoritmaları bulunmaktadır: adler32, CRC-32, MaHash8v64. Ayrıca, ondalık sayı sisteminden Base sayı sistemindeki dize biçimine ve tersi yönde dönüştürme fonksiyonları da bulunmaktadır.