Toplam zaman çizgisinin solunda ve sağında grafiklerin senkronize edilmemesi sorunu var. Çubukların grafiğin tüm genişliği boyunca zamana göre senkronize edilmesini istiyorum.
Geliştiricilere, grafiği "delikli" ve "deliksiz" çubuklarla görselleştirme olasılığı hakkında tekrar düşünmelerini (belki de tartışmaya açmalarını) öneririm. Bu durumda, sadece görselleştirme olacaktır, yani "delikler" çubukları MQL5'te mevcut olmayacaktır.
Dmitry, bunu döngü yerine CHARTEVENT_CLICK aracılığıyla yapmak muhtemelen daha kolay olacaktır ...
İşte bir para biriminin grafiklerini senkronize etmenin bir örneği
//------------------------------------------------------------------ OnChartEvent void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam) { if (id==CHARTEVENT_CLICK) { long cid=ChartFirst(); long fbar=ChartGetInteger(ChartID(), CHART_FIRST_VISIBLE_BAR); datetime tm[], tm1[]; int rez=CopyTime(Symbol(), Period(), 0, fbar, tm); if (rez<fbar) return; while (cid!=-1) { ChartSetInteger(cid, CHART_AUTOSCROLL, false); ChartSetInteger(cid, CHART_SHIFT, false); if (cid!=ChartID() && ChartSymbol(cid)==Symbol()) { rez=CopyTime(ChartSymbol(cid), ChartPeriod(cid), TimeCurrent(), tm[0], tm1); if (rez<0) break; ChartNavigate(cid, CHART_END, rez-ChartGetInteger(cid, CHART_WIDTH_IN_BARS)+2); ChartRedraw(cid); } cid=ChartNext(cid); } } }
İşte bu kadar!
Dimitri, muhtemelen döngü yerine CHARTEVENT_CLICK aracılığıyla yapmak daha kolay olacaktır...
işte bir para biriminin grafiklerini senkronize etmenin bir örneği
İşte bu kadar!
Her şey o kadar basit değil. İşleviniz grafiğin sol kenarındaki çubukları senkronize eder, bu da geçmişin görsel olarak incelenmesi için pek uygun değildir. Ayrıca çok uygun olmayan grafik ofsetini de devre dışı bırakmalısınız (yine de bu bir zevk meselesidir). Geliştiriciler, sağ kenardan girintiyi alma ve ayarlama veya genel olarak zamana göre gezinme yeteneği ekleyebilir, birçok işlev, çubuk numarasını veya zamanı geçebileceğiniz evrensel bir tarzda yapılır. Ayrıca, olay yalnızca kodun üzerinde çalıştığı grafik için işlenir.
----------------------------------------------------------------------------------------------------------------
OnChartEvent
OnChartEvent(), ChartEvent olay grubunun bir işleyicisidir:
...
...
Fonksiyon sadece EA'larda çağrılabilir ve void tipinde ve 4 parametreye sahip olmalıdır:
----------------------------------------------------------------------------------------------------------------
Olay işleme yalnızca Uzman Danışmanlarda çalışır. Bir grafikte yalnızca bir Uzman Danışman olabilir, bir Uzman Danışmanın yerini yardımcı ve pratik olarak yararsız olanlarla almamalısınız. Bu benim kanaatim, ticaretin yürütülmesiyle doğrudan ilgili olmayan yardımcı araçların, aşırı gerekliliğin birkaç istisnası dışında, Uzman Danışmanlar şeklinde yapılmaması gerektiğidir.
OnChartEvent
OnChartEvent(), ChartEvent olay grubu için bir işleyicidir:
...
...
İşlev yalnızca Uzman Danışmanlarda çağrılabilir ve void türüne ve 4 parametreye sahip olmalıdır:
----------------------------------------------------------------------------------------------------------------
Olay işleme yalnızca Uzman Danışmanlarda çalışır. Bir grafikte yalnızca bir Uzman Danışman olabilir, bir Uzman Danışmanın yerini yardımcı ve pratik olarak yararsız olanlarla almamalısınız. Bu benim, ticaretin yürütülmesiyle doğrudan ilgili olmayan yardımcı araçların, aşırı gerekliliğin birkaç istisnası dışında, Uzman Danışmanlar şeklinde yapılmaması gerektiğine dair inancımdır.
Artık durum böyle değil, duyurulara göz atın - https://www.mql5.com/ru/forum/23/page4:
MetaTrader 5 İstemci Terminali yapı 245
- Terminal: Varlıklardaki serbest marj fonlarının muhasebeleştirilmesi hatası düzeltildi (Pozlama sekmesinde).
- Terminal: "Grafik ön planda" grafik özelliğinin çalışması düzeltildi.
- Terminal: Grafik için baskı önizleme penceresi düzeltildi ve yeniden tasarlandı.
- Terminal: Geçici global değişkenlerle çalışmadaki bir hata düzeltildi.
- Terminal: "Standart" ve "Grafikler" araç çubukları birleştirildi.
- MQL5: Çökmeler ve forum mesajları ile ilgili düzeltmeler
- MQL5: Uzman Danışmanlar ve komut dosyaları için Kopyala * işlevlerinin çalışma prensibi değiştirildi - artık işlevler istenen verilerin indirilmesini ve oluşturulmasını bekleyecek. İstenen veriler için bekleme süresi 30 saniyeyi geçmeyecektir. Daha ayrıntılı bir açıklama en yakın gelecekte MQL5 Yardım'da mevcut olacaktır.
- MQL5: Uzman Danışmanlara benzer şekilde, özel göstergeler tarafından olay işleme olasılığı eklendi. Daha ayrıntılı bir açıklama yakın gelecekte MQL5 Yardım'da mevcut olacaktır.
.
Bu o kadar basit değil. İşleviniz, grafiğin sol kenarındaki çubukları senkronize eder, bu da geçmişin görsel çalışması için pek uygun değildir.
Ancak çubukları herhangi bir kenarla senkronize etmek mümkündür. ve tüccara seçim için düğmeler sağlayın - merkeze göre, sağa göre, sola göre....
Grafik yer değiştirmesi de devre dışı bırakılmalıdır, bu da çok uygun değildir (zevk meselesi olmasına rağmen).
Geliştiriciler, girintiyi sağ kenardan alma ve ayarlama veya genel olarak zamana göre gezinme yeteneği ekler, birçok işlev, çubuk numarasını veya zamanı geçebileceğiniz evrensel bir tarzda yapılır.
bu özellik bu arada kullanılabilir. CHART_SHIFT_SIZE
ObjChartSample.mq5 örneğine bakın
CHART_FIRST_VISIBLE_BAR ile ilgili bir sorun var gibi görünüyor.
ChartNavigate() işlevini grafiği görüntüleyebileceğiniz sayıdan açıkça daha büyük bir sayıya yaparsanız
ChartGetInteger(ChartID(),CHART_FIRST_VISIBLE_BAR), Bars(ChartSymbol(ChartID()),ChartPeriod(ChartID())) öğesinden büyük olur.
2.mq5 kodundaki örnek. Komut dosyasını çalıştırın, biraz bekleyin.
İçimden bir ses terminalin yeterli hızda olmadığını söylüyor.
çünkü betiği hemen tekrar çalıştırırsanız, ilk seferinde çalışır.
Belki de zamanı kontrol etmeliyiz
Belki SeriesInfoInteger yardımcı olabilir?
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
sChartsSynchroScroll:
Kod, terminalde açılan tüm grafiklerin eşzamanlı olarak kaydırılmasını sağlar.
Author: Dmitry Fedoseev