Seconds Tick and Range Charts MT5
- Yardımcı programlar
-
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself. - Sürüm: 1.0
- Etkinleştirmeler: 10
MetaTrader 5 için saniye çubukları (1 ila 30 saniye), tick çubukları ve range çubukları; brokerın gerçek tick geçmişinden özel sembol olarak oluşturulur ve her tickte güncellenir. Grafikte herhangi bir gösterge, şablon veya EA çalışabilir. Grafikteki yardımcı gösterge her çubuğun gerçek zamanını gösterir. EA hiçbir zaman bir grafikte işlem yapmaz.
Ne yapar
EA'yı bir broker sembolünün grafiğine ekleyin. EA:
- kaynak sembolün spesifikasyonlarıyla bir özel sembol oluşturur, örneğin EURUSD_S5
- bu sembolün geçmişini brokerın gerçek ticklerinden, varsayılan olarak son 3 gün için, parçalar halinde oluşturur (testlerde 3 günlük BTCUSDm, 376.095 tick, 2,0 sn sürdü)
- özel grafiği açar; bir şablon belirtirseniz o şablonla açar
- kaynağın her yeni tickini geldiği anda özel grafiğe ekler
- her yeni çubuğu saniyede birkaç kez terminalden geri okur (MetaTrader 5 build 6230'da ölçüldü: terminalin canlı ticklerden oluşturduğu çubuklar, hiçbir grafik veya program onları okumadığında kaybolabilir; düzenli okuma bunu önler)
- çubukları her 60 saniyede bir brokerın tick geçmişiyle karşılaştırır ve özel sembolün bu çubuklar için tuttuğu tickleri sayar
- mevcut bir özel grafikte yeniden başladığında (örneğin terminal yeniden başlatıldıktan sonra), devam etmeden önce geçmişin son bölümündeki çubukların hepsinin yerinde olduğunu kontrol eder
- bir çubuk hatalı kalırsa, özel sembolün tamamını tick geçmişinden, aynı ilk tickten başlayarak yeniden oluşturur: her testte tam doğru sonuç veren tek onarım budur (build 6230'da ölçüldü: canlı tick alan bir özel sembole tek tek çubuk yazmak veya onun bir kısmını silmek, terminalin başka çubukları veya tickleri kaybetmesine yol açabilir)
Grafik türleri
- Saniye çubukları (Seconds bars): 1, 2, 3, 4, 5, 6, 10, 12, 15, 20 veya 30 saniye. Bir çubuk bir aralığın ticklerini içerir. Tick olmayan bir aralığın çubuğu yoktur; tıpkı M1'de tick olmayan bir dakikanın çubuğu olmaması gibi.
- Tick çubukları (Tick bars): her N tickte yeni bir çubuk.
- Range çubukları (Range bars): bir sonraki fiyat çubuğun en yüksek-en düşük aralığını N puandan büyük yapacaksa yeni bir çubuk açılır; bu yüzden hiçbir çubuk N puandan büyük değildir. Fiyat sıçradığında yeni çubuk yeni fiyattan açılır; sıçrama için dolgu çubukları çizilmez.
Çubuklar Bid fiyatından çizilir. Bir çubuğun tick hacmi, içindeki tick sayısıdır.
Birden fazla kopya aynı anda çalışabilir, her özel sembol için bir EA: örneğin bir grafikte EURUSD'nin 5 saniyelik çubukları, diğerinde XAUUSD'nin 200 puanlık range çubukları. Aynı özel sembol için ikinci bir EA başlamaz ve nedenini panelinde belirtir.
Her tick tam olarak bir çubukta
Özel sembol, çubukların bir kopyasını değil, brokerın ticklerinin kendisini alır. Testlerde çubuklar, brokerın tick geçmişinden bağımsız olarak yeniden oluşturulan sonuçla karşılaştırıldı:
- tick hacimlerinin toplamı kaynak tick sayısına eşittir
- her çubuk (açılış, en yüksek, en düşük, kapanış ve tick hacmi) yeniden oluşturulan sonuçla aynıdır
- saniye çubuklarında, çubuğu olmayan hiçbir aralıkta kaynak tick yoktu
Aynı anda 10 özel sembolle yapılan 75 dakikalık bir testte (1, 2 ve 5 saniyelik çubuklar, 20, 50 ve 100 tickli çubuklar, 200 ve 1000 puanlık range çubukları; toplam 2.537.558 tick), üç koşulun üçü de her sembol için sağlandı; terminal 2 dakika donduktan sonra yeniden oluşturulan semboller için de.
Saniye grafiklerindeki boşluklar: BTCUSDm'de (bir cumartesi günü saniyede yaklaşık bir tick) 1 saniyelik grafikte 121.859 tick için 81.920 çubuk vardı. Çubuğu olmayan her 1 saniyelik aralık brokerın tickleriyle kontrol edildi ve hiçbirinde tick yoktu. Saniye grafiğindeki bir boşluk, brokerın hiç tick göndermediği bir zamandır, kaybolmuş bir çubuk değildir.
Zaman ölçeği (lütfen okuyun)
MetaTrader 5'te bir dakikadan kısa zaman dilimi yoktur ve özel grafik her zaman M1 zaman ölçeğinde çizilir. Bu yüzden özel grafiğin her çubuğu bir dakikalık bir slot kaplar ve grafiğin altındaki tarihler bu slotları Ocak 1971'den itibaren sayar: bunlar saat zamanı değildir. MetaTrader 5 grafiğinde bir dakikadan kısa çubukların var olabilmesinin tek yolu budur.
EA, özel grafiğe gerçek zamanı gösteren küçük bir yardımcı gösterge ekler (bu açıklamanın her yerinde gerçek zaman, broker sembolünün kendi grafiğindeki gibi brokerın sunucu saati anlamına gelir):
- Last bar: (son çubuk) milisaniye hassasiyetinde başlangıç zamanı, süre ve tick sayısı
- Cursor bar: (imleçteki çubuk) farenin altındaki çubuk için aynı bilgiler
- grafiğin kendi zaman ölçeğinin üstünde, gerçek zamanları gösteren ikinci bir zaman ölçeği
- grafiğin güncellenip güncellenmediği: "Live: updated on every tick of EURUSD", "Building history from real ticks: 40.0%", "Waiting for the connection to the trade server", "Checking the bars after the start (up to 60 s)", "Not updating for 12 s: check the EA on the EURUSD chart" veya "Not updating: no EA builds EURUSD_S5 now"
Özel grafiği M1'de tutun: bir M1 çubuğu, bir saniye, tick veya range çubuğudur. Daha yüksek bir zaman dilimi birkaç çubuğu birleştirir.
Hız
Tek bir terminalde aynı anda 10 EA ve 8 özel grafikle yapılan 75 dakikalık bir testte ölçüldü: kaynak grafikteki bir göstergenin bir ticki gördüğü andan, özel grafikteki bir göstergenin onu gördüğü ana kadar geçen süre. BTCUSDm bir demo hesapta canlıydı. Altın ve Nasdaq endeksi kapalıydı (cumartesi), bu yüzden grafiklerine cuma gününün gerçek tickleri gerçek hızlarında, saniyede 61 tick'e kadar beslendi.
| Özel grafik | Saniyedeki tick | Medyan | Ticklerin %99'u bu süre içinde | En yavaş |
|---|---|---|---|---|
| BTCUSDm, 5 saniyelik çubuklar (canlı) | 1 | 0,2 ms | 30 ms | 262 ms |
| BTCUSDm, 1 saniyelik çubuklar (canlı) | 0,9 | 0,3 ms | 35 ms | 262 ms |
| BTCUSDm, 50 tickli çubuklar (canlı) | 1 | 0,2 ms | 32 ms | 281 ms |
| Altın, 1 saniyelik çubuklar (tekrar oynatma) | 12 | 0,4 ms | 65 ms | 173 ms |
| Altın, 100 tickli çubuklar (tekrar oynatma) | 12 | 0,3 ms | 111 ms | 140 ms |
| Nasdaq, 5 saniyelik çubuklar (tekrar oynatma) | 61 | 0,6 ms | 40 ms | 1,7 sn (*) |
| Nasdaq, 1000 puanlık range çubukları (tekrar oynatma) | 61 | 0,8 ms | 41 ms | 2,5 sn (*) |
(*) Terminal 2 dakika donduktan sonraki 2 dakika içinde: geciken tickler bir anda geldi ve EA sembolü yeniden oluşturdu. Diğer tüm zamanlarda en yavaş tick 142 ms ve 156 ms sürdü. 75 dakika boyunca terminal toplamda yaklaşık bir CPU çekirdeği ve 680 ila 703 MB bellek kullandı; ilk ve son 10 dakika arasında yavaşlama olmadı.
Kaynak grafikteki panel, EA çalışırken EA'nın tick olayı başına kendi yazma süresini medyan ve 99. yüzdelik olarak gösterir (testte medyan 0,03 ms).
Bağlantı kaybı, yeniden başlatma ve değişiklikler
Aynı 75 dakikalık testte, ardından yapılan terminal yeniden başlatmalarında ve girdi değişikliklerine yönelik ayrı bir testte ölçüldü:
- Terminal 2 dakika dondu: geri geldiğinde işlem sunucusuyla bağlantının kesildiğini ve yeniden kurulduğunu bildirdi. 15 saniye içinde EA'lar eksik çubuk veya tick içeren 4 özel sembol buldu ve bunları yeniden oluşturdu (her biri 0,2 ila 2,4 sn). Ardından 10 sembolün tamamı yukarıdaki kontrolü geçti. Birkaç dakikalık bir ağ kesintisi test edilmedi.
- Kaynak grafiğin zaman dilimi değiştirildi (M1'den M5'e ve geri): EA son çubuktan devam etti, yeniden oluşturma olmadı.
- Girdiler değiştirildi, başka girdiler içeren bir şablon aracılığıyla: EA son çubuktan devam etti.
- Grafik türü değiştirildi, çalışan bir EA'da (5 saniyelik çubuklardan 50 tickli çubuklara ve geri): EA yeni özel sembolü oluşturdu ve eski grafiği yerinde bıraktı; 91 sn sonra 5 saniyelik çubuklara geri dönüldüğünde eski sembole devam etti ve bu 91 sn'nin ticklerini ekledi. İki sembol de yukarıdaki kontrolü geçti.
- Kaynak grafik 3 dakika kapalı kaldı: yardımcı gösterge "Not updating: no EA builds BTCUSDm_S1 now" gösterdi. Grafik EA ile yeniden açıldığında EA son çubuktan devam etti ve bu 3 dakikanın tickleri 0,34 sn sonra grafikteydi.
- Terminal 7 kez kapatılıp yeniden başlatıldı (3 saniye ile yaklaşık 1,5 dakika arası kapalı): 51 EA başlangıcından 40'ı kendi son çubuklarından devam etti. 11'i eksik çubuk buldu (terminal tarafından silinmiş, sınırlamalara bakın), bu 60 saniyeyi bekledi (son sürümde yardımcı gösterge bu sırada "Checking the bars after the start" gösterir) ve sembollerini yeniden oluşturdu (her biri 0,2 ila 1,3 sn). 7 başlangıcın 5'inden sonra terminal, birkaç dakika sonra açık grafiği olmayan sembolün çubuklarını sildi; EA bunu bir sonraki kontrolünde buldu ve sembolü yeniden oluşturdu (2 testte test bu kontrolden önce sona erdi).
- Aynı özel sembol için ikinci bir EA başlamadı; terminalin tüm EA'larının birlikte başladığı 7 terminal başlangıcında da başlamadı.
EA'yı kaldırmak özel sembolü ve grafiğini yerinde bırakır. Aynı ayarlarla yeniden ekleyin; öncesindeki çubukların hepsinin yerinde olduğunu kontrol ettikten sonra son çubuktan devam eder (değilse geçmişi kendisi yeniden oluşturur).
Girdiler
| Girdi | Varsayılan | Anlamı |
|---|---|---|
| Chart type | Seconds bars | Seconds bars, Tick bars, Range bars |
| Seconds bars: seconds per bar | 5 seconds | 1, 2, 3, 4, 5, 6, 10, 12, 15, 20 veya 30 |
| Tick bars: ticks per bar | 100 | 1 ila 100.000 |
| Range bars: range of a bar in points | 100 | Kaynak sembolün puanları |
| Source symbol | boş | Boş = EA'nın eklendiği grafiğin sembolü |
| Days of real tick history to build | 3 | 0,01 ila 60, özel sembol oluşturulurken kullanılır. Brokerın tick geçmişi daha kısa olabilir. Yeni bir değer mevcut bir özel sembolü yeniden oluşturmaz: bunun için bir sonraki girdiyi bir kez true yapın |
| Build the history again at start | false | Aksi halde grafik türü, onun ayarı ve kaynak aynıysa son çubuktan devam eder |
| Custom symbol name | boş | Boş = otomatik, örneğin EURUSD_S5, EURUSD_T100, EURUSD_R100 |
| Open the custom chart | true | |
| Template for the custom chart | boş | MQL5\Profiles\Templates içinden bir şablon, grafik açılırken uygulanır |
| Show the real time of the bars on the custom chart | true | Yukarıda açıklanan yardımcı gösterge |
| Close the custom chart when the EA is removed | false | |
| Tester only: open and close sample positions | true | Aşağıya bakın |
Strateji Sınayıcı
MetaTrader 5, Strateji Sınayıcı'da özel sembollere ve yeni grafiklere izin vermez (ölçüldü: ikisi de 4014 hatasıyla reddedilir). Bu yüzden sınayıcıda EA aynı çubukları, aynı kodla, sınayıcının ona verdiği ticklerden bellekte oluşturur ve görsel modda bunları sınayıcı grafiğinin altındaki bir alt pencerede çizer. Bir çalıştırmanın sonunda kaç çubuk oluşturduğunu ve her tickin tam olarak bir çubukta olduğunu yazar. Brokerın gerçek ticklerinden oluşturulan çubukları görmek için "Every tick based on real ticks" modunu kullanın.
Yalnızca Strateji Sınayıcı'da EA ayrıca kısa bir dizi örnek pozisyon açar ve kapatır, çünkü Market bir Expert Advisor'ın işlem yaptığını kontrol eder:
- minimum hacim, aynı anda tek pozisyon, en fazla 30 pozisyon
- her yeni pozisyondan önce serbest marjin kontrol edilir; para yetersizse EA bir not yazar ve hiçbir şey göndermez
Örnek pozisyonlar bir işlem stratejisi değildir ve sonuçları kâr hakkında hiçbir şey söylemez. Canlı veya demo grafikte EA hiçbir zaman emir göndermez, değiştirmez veya kapatmaz.
Sınırlamalar (lütfen satın almadan önce okuyun)
- Zaman ölçeği saati değil, slotları sayar. Yukarıdaki "Zaman ölçeği" bölümüne bakın. Bir çubuğun zamanını kullanan göstergeler (seanslar, günlük pivotlar, zaman filtreleri) özel grafikte gerçek zamanları değil, slot zamanlarını görür.
- Özel sembolün kotasyonu bir tick geridedir. Ölçüldü: özel grafikteki bir gösterge veya EA yeni bir tick için çağrıldığında, özel sembolün çubukları ve tick geçmişi bu ticki zaten içerir, ancak özel sembolün kotasyonu (Piyasa Gözlemi, SymbolInfoTick, grafikteki Bid çizgisi) bir sonraki tick eklenene kadar önceki ticki gösterir. MetaTrader 5 build 6230'da bunu aşmanın yedi yolu denendi ve hiçbiri işe yaramadı. Özel grafikteki bir gösterge veya EA fiyatları çubuklardan okumalıdır (son çubuğun kapanışı en yeni tick'tir).
- Özel sembollerle işlem yapılamaz. Özel grafikte çalışan bir EA, emirlerini broker sembolü için göndermelidir.
- Yalnızca Bid grafikleri. Brokerın Last fiyatıyla çizdiği semboller (borsa hisseleri ve vadeli işlemler) panelde bir mesajla reddedilir.
- Geçmiş derinliği brokera bağlıdır. İlk oluşturma brokerın tick geçmişini indirir; brokerlar bunu sınırlı bir süre saklar. Kısa çubukların uzun bir geçmişi terminalin "Max bars in chart" ayarını (Araçlar, Seçenekler, Grafikler) aşabilir; bu durumda grafik yalnızca en yeni çubukları gösterir. EA'nın kendi kontrolleri bu ayarın en fazla yarısını geri okur; bu yüzden düşük bir ayar yalnızca daha az çubuğa bakmalarına yol açar (5.000 ayarı ve yaklaşık 80.000 çubuklu 1 saniyelik bir grafikle test edildi: 8 dakikada fazladan yeniden oluşturma olmadı).
- Saniye çubukları sınırlı bir süre için yer bulur. Slotlar geçmişte kalmalıdır: 1 saniyelik bir grafikte başlangıcından itibaren yaklaşık 339 günlük çubuk için yer vardır, 5 saniyelik bir grafikte yaklaşık 4,6 yıllık. Yer dolduğunda EA geçmişi kendisi yeniden oluşturur.
- Özel grafiği kullandığınız sürece EA'yı çalışır durumda tutun. Build 6230'da ölçüldü: EA kaldırıldığında veya terminal yeniden başlatıldığında terminal bazen bir özel sembolün en yeni bölümünün çubuklarını (en fazla bir slot günü, 1.440 çubuk), tickleri korurken sildi. EA olmadan açık bırakılan bir grafik bu durumda bir boşluk gösterir. EA yeniden başladığında bunu bulur ve sembolü yeniden oluşturur. Yeniden başlatmadan sonra grafik böyle bir boşluğu yaklaşık bir dakikaya kadar gösterebilir: EA, terminalin çubukları yüklemesi için 60 saniyeye kadar bekler (yardımcı gösterge bu sırada "Checking the bars after the start" gösterir) ve çubuklar hâlâ eksikse sembolü yeniden oluşturur (testlerde 0,2 ila 1,3 sn). Testlerde terminal, EA çalışırken de bir yeniden başlatmadan birkaç dakika sonra çubukları sildi: EA bunu kontrolleriyle buldu (her 60 saniyede bir; üç testte onarım, testin kendi doğrulayıcısı boşluğu gördükten 74 saniye sonra geldi) ve sembolü yeniden oluşturdu; açık grafiği olmayan bir sembol bu kontrole veya bir sonraki başlangıca kadar boşluğu koruyabilir. Bu en çok açık grafiği olmayan bir özel sembolde oldu.
- Bir onarım tüm özel sembolü boşaltır ve yeniden doldurur. Bir kontrol hatalı veya eksik bir çubuk bulduğunda EA, özel sembolün ticklerini ve çubuklarını siler ve bunları aynı ilk tickten itibaren yeniden yazar (testlerde 0,2 ila 2,4 sn). Bu süre boyunca özel grafikteki göstergeler ve EA'lar geçmişin kaybolup geri geldiğini görür.
- Her özel sembol için bir EA, ve EA kendi grafiğinin EA yuvasını kullanır: onu işlem yapan bir EA'nın grafiğine değil, kaynak sembolün boş bir grafiğine ekleyin.
- Özel sembolde Strateji Sınayıcı kullanılamaz. Build 6230'da ölçüldü: sınayıcı özel sembolün ticklerini verir, ancak çubuklarının yalnızca bir kısmını oluşturur veya hiç oluşturmaz (iki testte 4.316 M1 çubuğundan 1.324 ve 0), bu yüzden çubuklara ihtiyaç duyan bir EA onun üzerinde test edilemez. Böyle bir EA'yı broker sembolünde test edin.
- Test edilen ortam:
- yalnızca MetaTrader 5 build 6230, Windows 10, 288 dpi'da 3840 x 2160 ekran
- perakende bir CFD brokerında demo hesap: BTCUSDm ve ETHUSDm canlı, XAUUSDm ve USTECm'in cuma tickleri gerçek hızlarında yeniden oynatıldı (cumartesi testleri); ekran görüntüleri için EURUSDm, XAUUSDm ve USTECm geçmişi
- Strateji Sınayıcı: platformun demo sunucusundaki netting ve hedging demo hesapları, EURUSD, GBPUSD, XAUUSD
- en uzun test 75 dakika; başka brokerlarda, gerçek para hesaplarında veya MQL5 VPS'te test edilmedi
- Lütfen önce ücretsiz Strateji Sınayıcı demosunu deneyin. Demo, çubukları yalnızca sınayıcının bir alt penceresinde gösterir (yukarıdaki "Strateji Sınayıcı" bölümüne bakın); canlı veya demo hesapta özel grafik için tam sürüm gerekir.
