Single Arrow MTF
- Göstergeler
-
Ahmed Hamed Hamed Eadwan
TURKISH TRANSLATION — TÜRKÇE
===============================
TITLE:
MQL5 Geliştirici ve Trader | R protocols Kurucusu
ABOUT:
Merhaba, ben Ahmed — Birleşik Arap Emirlikleri'nde bulunan bir
trader ve MQL5 geliştiricisi, R protocols'un kurucusuyum. - Sürüm: 1.0
- Etkinleştirmeler: 5
Tek dosya. Tek ok. Tek karar.
SingleArrow MTF, MetaTrader 5 için profesyonel, kendi kendine yeten bir diverjans sinyal göstergesidir. Doğrusal zamanlı özel bir ZigZag motorunu, bacak ayrımıyla Williams %R diverjans filtresini, isteğe bağlı pivot koruma katmanını, çoklu zaman dilimi uyum panelini ve otomatik destek/direnci birleştirir — tümü tek dosyada derlenmiştir; harici gösterge, kütüphane veya DLL yoktur.
Kimler için
- Ham osilatörler yerine temiz, kural bazlı diverjans okları isteyen takdiri (discretionary) trader'lar.
- Makinece okunabilir, yeniden çizim konusunda şeffaf bir sinyal kaynağına ihtiyaç duyan EA geliştiricileri (buffer'lar + GlobalVariable kanalı).
- Onaylı, geçmişte stabil bir sinyal akışına ihtiyaç duyan backtest ve strateji uzmanları (Confirm modu).
Mimari tek bakışta
- Yapı katmanı: dahili ZigZag motoru fiyattan pivotları çıkarır.
- Analiz katmanı: Williams %R diverjans filtresi her pivot çiftini bacak ayrımıyla doğrular.
- Sunum katmanı: oklar, MTF paneli, S/R seviyeleri, uyarılar ve şeffaflık sayaçları.
1) Dahili ZigZag motoru (neden platformunki değil?)
- Doğrusal zaman O(n): yüklenen geçmişin tamamı tek geçişte işlenir; her yeni tik O(1) iş maliyeti getirir, bu yüzden hızlı tiklerde ve derin geçmişte gösterge hafif kalır.
- Klasik üçlü, modern çekirdek: Deviation / Depth / Backstep alışılmış anlamını korur; iç pivot yönetimi (sınırlı Backstep bastırma, pivotu başa güvenli ekleme) ise sıfırdan yazılmış ve kenar durumlarına karşı sağlamlaştırılmıştır.
- iCustom yok, eksik tampon yok: motor gömülüdür; sinyal hattı, grafikte veya terminal klasöründe başka bir göstergenin varlığına asla bağımlı değildir. Derlenmiş EX5, Market kiralamaları dahil her yerde çalışır.
- Deterministik: aynı parametreler, her grafikte, sembolde ve terminal derlemesinde aynı pivotları üretir.
2) Bacak ayrımıyla Williams %R diverjansı
Osilatörün bir seviyeyi kesmesi başlı başına sinyal değildir. Gösterge, aynı aralıkta fiyat bacaklarını (pivottan pivota hareketler) osilatör bacaklarıyla karşılaştırır:
- Ayı diverjansı: fiyat daha yüksek bir tepe yaparken Williams %R bacağı daha düşük bir tepe yapar → onaylanmış tepede satış oku.
- Boğa diverjansı: fiyat daha düşük bir dip yaparken Williams %R bacağı daha yüksek bir dip yapar → onaylanmış dipte alış oku.
- Bacak ayrımı: bacak içi salınımlar karşılaştırmadan dışlanır; böylece bacak ortasındaki gürültülü bir sıçrama diverjansı sahte üretemez veya gizleyemez — ve aynı yönlü iki ardışık pivot asla karşılaştırılmaz; daha ucuz ZigZag/diverjans kombinolarındaki klasik yanlış sinyal kaynağı.
- Yalnızca hem ZigZag yapı kurallarını hem WPR diverjans testini geçen pivot ok üretir. Her ok tam bir karardır, ham bir ipucu değil.
3) Sinyal modları: Confirm ve Live (dikkatle okuyun)
Confirm (varsayılan, InpConfirmBars > 0) — geçmişte stabil akış. Gösterge oku çizmeden önce N bar bekler (InpConfirmBars): aday diverjans, kendisine neden olan pivot sonraki fiyat hareketiyle onaylanana kadar bekler. Taahhüt edildikten sonra ok donar: asla hareket etmez, asla kaybolmaz ve asla yön değiştirmez*. InpConfirmBars = 0 ile Live moduna geçersiniz.
Live — mümkün olan en erken okuma. Ok, oluşan barın içinde gösterilir. Tasarım gereği, bar tamamlanana kadar ok kayabilir veya kaybolabilir; yerleşik şeffaflık sayaçları bu tür her olayı raporlar (bölüm 7).
*Yeniden çizim olmama garanti matrisi (Confirm modu):
- Deviation/Depth/Backstep = Manual → koşulsuz garantili.
- ATR uyarlamalı Depth/Backstep + Pivot Kilidi AÇIK → garantili.
- Uyarlamalı + Kilidi KAPALI → gösterge kilidi otomatik açar ve size bildirir; tam olarak garantiyi korumak için.
Bu koşullu garanti ürün meta verisinde dürüstçe belirtilir ve başlangıçta girdi doğrulamasıyla zorunlu kılınır.
4) Pivot Kilidi
Onaylı pivotlar dahili bir kayıtta dondurulur; sonraki yeniden hesaplamalar, volatilite sıçramaları veya parametre düzenlemeleri onları hareket ettiremez. Uyarlamalı mod garantisini mümkün kılan mekanizmadır ve Live kullandığınız her durumda önerilir.
5) ATR uyarlamalı ZigZag parametreleri
Volatilite seanslar ve semboller arasında değişir. Deviation/Depth/Backstep'i elle ayarlamak yerine, uyarlamalı mod bunları güncel ATR ile yapılandırılabilir sınırlar içinde ölçekler (ör. DepthMax, uyarlamalı Depth'i sınırlar). Yapı; altın, kripto, endeks ve FX üzerinde sembol başına elle bakım olmadan anlamlı kalır.
6) Çoklu zaman dilimi paneli
Aynı motor, arka planda 23'e kadar ek zaman diliminde çalışır (varsayılan M5/M15/H1/H4/D1, InpMTFTimeframes ile tamamen yapılandırılabilir; analiz penceresi InpMTFLookback). Grafikteki panel, her zaman dilimi için canlı/onaylı sinyali, diverjans durumunu ve pivot durumunu gösterir; böylece yalnızca sizin zaman diliminiz büyük resimle uyumluysa işlem yaparsınız — örn. H1/H4 boğa bağlamı gösterirken M15 boğa oklarını almak.
7) Şeffaflık araçları (EA geliştiricileri için)
- SA_RepaintBars (tampon 5): Live yeniden çizim olaylarının sürekli sayacı — Confirm modunda tasarım gereği 0.
- SA_PostCommitBars (tampon 6): onay sonrası düzeltmelerin sürekli sayacı — Confirm modunun kendisini denetler.
- Bunlar tarihsel seriler değil, canlı monoton sayaçlardır: anlamlı olan tek değer güncel değerdir (son 2–3 bar). 0. barı okuyun veya yansıtılmış Global Variables SA_REP_ / SA_POST_ + sembol + zaman dilimi; geçmişi asla taramayın.
- SA_PivotState (tampon 3) ayrıca bu barın pivotunun onaylı mı (1) yoksa hâlâ oluşumda mı (0) olduğunu bildirir.
8) Otomatik destek/direnç
Gösterge pivotları (grafik zaman diliminden veya InpSRUseAllTF ile izlenen tüm zaman dilimlerinden) dokunma sayısı etiketli, sıralanmış destek/direnç seviyelerine kümeleyip yatay çizgi, ışın veya gölgeli bölge olarak çizer (InpSRMode 0/1/2). Seviyeler anında bağlam sağlar: sıralanmış bir destekte oluşan boğa diverjans oku, boşluğun ortasındaki bir oktan çok daha fazla bilgi taşır.
9) Uyarılar
Yeni onaylanmış sinyallerde isteğe bağlı uyarılar, platformun alert/push/mail kancalarıyla tetiklenir. Uyarı metinleri tasarımdan gereği yalnızca İngilizcedir; Market kurallarıyla uyumludur.
10) Tam ayar referansı (gruplu)
- Sinyal motoru: InpConfirmBars (0 = Live, N = Confirm), InpLiveMargin, InpLockPivots + InpLockAfterBars, InpShowDiag.
- ZigZag: InpDepth / InpBackstep / InpDeviation; InpDevMode / InpDepthMode / InpBackstepMode ile parametre başına Manual veya ATR uyarlamalı, ayrıca InpATRPeriod, InpATRMult, InpDepthATRMult, InpDepthMin/InpDepthMax, InpBackstepATRMult, InpBackstepMin/InpBackstepMax.
- Diverjans: InpWPRPeriod, InpUseDivergence, InpLookback — motorun iç minimumuna karşı doğrulanır; geçersiz değerler başlangıçta net bir İngilizce mesajla reddedilir.
- MTF paneli: InpMTFEnabled, InpMTFTimeframes (örn. "M5,M15,H1,H4,D1", 23'e kadar), InpMTFLookback, InpDashEnabled, InpDashCorner, InpDashX/Y, InpDashFontSize.
- S/R: InpSREnabled, InpSRLevelsCount, InpSRTolPts, InpSRMinTouches, InpSRSupportClr/InpSRResistClr, InpSRShowLabel, InpSRMode (0=HLine, 1=Ray, 2=Zone), InpSRUseAllTF.
11) Kurulum ve ilk çalıştırma
- Terminalinizdeki Market sekmesinden yükleyin (kiralamalar ve ömür boyu lisanslar MetaTrader 5 tarafından yönetilir).
- Herhangi bir grafiğe ve zaman dilimine ekleyin.
- Confirm modunda varsayılanlarla başlayın, paneli izleyin, ardından ZigZag üçlüsünü ayarlayın veya ATR uyarlamalı modu açın.
12) Pratik kullanım kitapçıkları
- Gün içi: H1 panel uyumuyla filtrelenmiş M15 okları; yansıtılan S/R'ye çekilmelerde Confirm girişleri.
- Swing: bağlam olarak H4 pivotları, tetikleyici olarak H1 okları.
- EA: taahhüt edilmiş oklar için sinyal tamponlarını 1. barda okuyun; Live etkinliğini 0. bardaki şeffaflık sayaçlarıyla izleyin.
13) Performans ve gereksinimler
- MetaTrader 5, her sembol, her zaman dilimi. DLL yok, harici dosya yok, ek gösterge yok.
- Artımlı tik işlemeyle doğrusal zamanlı çekirdek — grafiği dondurmadan hızlı tik akışı için tasarlandı.
- Temiz devre dışı bırakma: ayırma/zaman dilimi değişiminde grafik nesneleri kaldırılır.
14) Bu ürün ne değildir
İşlem açmaz, para yönetmez ve kâr garantisi vermez. Diverjans, olasılıksal ve bağlamsal bir okumadır. Live modunda yeniden çizim tasarım gereğidir ve her zaman sayaçlarca raporlanır.
15) Değişiklik geçmişi
- v1.03: Lookback doğrulamasının motorun iç minimumuyla birleştirilmesi (sessiz sinyalsiz kenar durumlarını giderir); pivot başa ekleme sağlamlaştırma; S/R yeniden inşa güçlendirme.
- v1.01: ilk herkese açık Market sürümü.
16) SSS
- Yeniden çiziyor mu? Garanti koşulları altında Confirm modunda (bölüm 3) hayır. Live modunda değişiklikler tasarım gereğidir ve şeffafça sayılır.
- Her sembolde çalışır mı? Evet; ATR uyarlamalı mod, yapının semboller arasında anlamlı kalması için özel olarak inşa edildi.
- EA'im kullanabilir mi? Evet — sinyal tamponları, GlobalVariable kanalı ve yeniden çizim sayaçları onu EA dostu yapar.
- Neden birçok ipucu yerine tek ok? Her ok yapı + diverjans doğrulamasından geçti; tasarım gereği daha az ama daha kaliteli sinyal.
- Grafikte platformun ZigZag'ı gerekli mi? Hayır. Motor gömülüdür.
17) iCustom entegrasyonu ve EA bağlantısı (tamponlar, kod, Global Variables)
SingleArrow MTF, herhangi bir EA'nin iCustom() + CopyBuffer() ile okuyabileceği 7 tampon yayınlar — MetaTrader, ilk iCustom çağrısında göstergeyi otomatik yükler; elle eklemeye gerek yoktur.
// BUFFER MAP (index -> content) // 0 SA_Buy BUY arrow price (0.0 = none) // 1 SA_Sell SELL arrow price (0.0 = none) // 2 SA_Signal +1 buy / -1 sell / 0 none // 3 SA_PivotState 1 = confirmed pivot, 0 = still forming // 4 SA_WPR Williams %R value // 5 SA_RepaintBars live-repaint counter (0 by design in Confirm) // 6 SA_PostCommitBars post-commit counter (audits Confirm mode) int h = iCustom(_Symbol, PERIOD_CURRENT, "SingleArrow_MTF", 34, // InpDepth 8, // InpBackstep 13, // InpDeviation 14, // InpWPRPeriod 5000, // InpLookback false, // InpUseDivergence 1); // InpConfirmBars (0 = Live, 1+ = Confirm) double sig[]; ArraySetAsSeries(sig, true); CopyBuffer(h, 2, 0, 3, sig); // buffer 2 = SA_Signal if(sig[1] == 1) { /* confirmed buy on last closed bar */ } if(sig[1] == -1) { /* confirmed sell on last closed bar */ } // Repaint counters via Global Variables (no CopyBuffer needed): double rep = GlobalVariableGet("SA_REP_" + _Symbol + "_" + IntegerToString((int)PERIOD_CURRENT)); double post = GlobalVariableGet("SA_POST_" + _Symbol + "_" + IntegerToString((int)PERIOD_CURRENT));
// FULL iCustom SIGNATURE (positional order - every declared input) iCustom(symbol, timeframe, "SingleArrow_MTF", 34, // InpDepth int default 34 8, // InpBackstep int default 8 13, // InpDeviation int default 13 14, // InpWPRPeriod int default 14 5000, // InpLookback int default 5000 false, // InpUseDivergence bool default false 1, // InpConfirmBars int default 1 (0 = Live) 12, // InpLiveMargin int default 12 true, // InpShowDiag bool default true 0, // InpDevMode enum 0=Manual 1=ATR-Adaptive 14, // InpATRPeriod int default 14 0.15, // InpATRMult double default 0.15 0, // InpDepthMode enum 0=Manual 1=ATR-Adaptive 1.0, // InpDepthATRMult double default 1.0 15, // InpDepthMin int default 15 80, // InpDepthMax int default 80 0, // InpBackstepMode enum 0=Manual 1=ATR-Adaptive 1.0, // InpBackstepATRMult double default 1.0 3, // InpBackstepMin int default 3 30, // InpBackstepMax int default 30 false, // InpLockPivots bool default false 3, // InpLockAfterBars int default 3 true, // InpMTFEnabled bool default true "M5,M15,H1,H4,D1", // InpMTFTimeframes string 1200, // InpMTFLookback int default 1200 true, // InpSREnabled bool default true 5, // InpSRLevelsCount int default 5 15, // InpSRTolPts int default 15 2, // InpSRMinTouches int default 2 clrDodgerBlue, // InpSRSupportClr clrOrangeRed, // InpSRResistClr true, // InpSRShowLabel bool default true 0, // InpSRMode int 0=HLine 1=Ray 2=Zone false, // InpSRUseAllTF bool default false true, // InpDashEnabled bool default true CORNER_LEFT_UPPER, // InpDashCorner 10, // InpDashX int default 10 30, // InpDashY int default 30 7); // InpDashFontSize int default 7
- Handle yaşam döngüsü: handle'ı OnInit'te bir kez oluşturun, OnDeinit'te IndicatorRelease() ile bırakın; tik başına iCustom asla.
- 1. barda taahhütlü akış: stabil, backtest ile tutarlı bir akış için SA_Signal / SA_Buy / SA_Sell'i son kapalı barda okuyun; SA_PivotState onaylı pivotları (1) oluşumdaki uçtan (0) ayırır.
- Sayaçlar canlı monoton değerlerdir: 5/6 tamponları (ve SA_REP_/SA_POST_ Global Variables) yalnızca son 2–3 barda anlamlıdır — 0. barı okuyun, geçmişi asla taramayın.
- Yalnızca-EA performans ipucu: tüm nesne çizimini atlayıp handle'ı salt hesaplamalı tutmak için InpDashEnabled=false ve InpSREnabled=false geçin.
- Aynı sembol+zaman diliminde iki örnek tek Global Variable kanalını paylaşır; bu yalnızca kolay okumayı etkiler, sinyal hesabını asla.
