Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Comment() çoğu zaman grafiği etkilemez.
Kod verilerinin ne olduğunu kontrol etmek için Comment().
Etiket doğru gittiğinde değişmeleri gerekir, ancak yapmazlar.
IOW, kodlar olması gerektiği gibi.
Etiket sağda kaybolur.
Koordinat XDISTANCE = 225; YDISTANCE = 27; KÖŞE = 3;
İlk olarak, indi'yi grafiğe yükleyerek, yerinde etiketleyin:
İkinci olarak, MT4'ü kapatıp yeniden başlattığınızda, etiket sağa gider:
Üçüncüsü, Tf'leri değiştirdikten sonra etiket geri atlar:
Köşe hesaplamalarıyla ilgili Çapalarla ilgili bir şey ve B646'da bir hata olmalı.
Bunların küresel başlatmanın başarısız olmasıyla ne ilgisi var?
Bu B646 ciddi şekilde tıkanmış!
Teşekkürler, deinit'te silinmeyen nesnelerle aynı sorunu yaşadım.
Bazı indi geliştiriyordum ve bu garip sonuçları aldım, sonra nesneler listesinde gördüm, hala oradaydılar.
Bunu muhtemelen en basit şekilde start() içindeki ObjectDelete() ile çözdüm.
Evet, init() öğesini OnInit() olarak ve deinit() öğesini OnDeinit() olarak değiştirmek, etiketleri doğru şekilde geri aldı! Teşekkürler!
Sonra bir süre sonra olmadı!!! Hala aynı dansı yapıyorlar.
Rica ederim Dadalar. Yine de başlangıç yönteminde ObjectDelete() kullanmazdım . Bu en iyi OnDeInit() içinde yapılır. Bunun nedeni şudur: Kodu OnStart() veya OnCalculate() içine koyarsanız, her tik geldiğinde çalıştırılacaktır. Bu iki nedenden dolayı kötüdür: 1) gerçek zamanlı bir uygulamada boşa harcamayı göze alamayacağınız çok sayıda işlem ekler ve 2) çoğu durumda bunu yapmak mantıklı değildir - genellikle yalnızca bir grafik başlatıldığında önemli olacak. Bunu sadece "başlangıç" yöntemlerinde, bir fiyat değişikliği nesnelerinizi bir şekilde etkileyecekse yapmalısınız. Örnek olarak, bunu düşünün (bu, satmayı düşündüğüm bir uygulamanın parçası, ancak bunu paylaşmak harika :-)).
Bu kod, varsa kapalı bir ticaretten kalan nesneleri yakalar.
Bu arada - bunu YAPMAYIN:
Kodun amacını yanlış anladınız. Sunucu "yerleşene" kadar indie'yi ÇALIŞTIRMAMAK üzere tasarlanmıştır. Bu yüzden 0 döndürüyorum. Bu şekilde, bağımsız kod, ihtiyaç duyduğu tüm bilgiler mevcut olana kadar yürütülmez. Dürüst olmak gerekirse, henüz OnCalculate() ile çalışmadım çünkü ihtiyacım olmadı ama yaptığınız şeyin bir felakete davetiye olduğunu söyleyebilirim. Programınıza "Geçerli verileriniz olana kadar bu kodu çalıştırmayın" demiyorsunuz. Sadece rüzgara bir şeyler atıyorsun ve en iyisini umuyorsun. Doğruyu söylemek gerekirse, sunucudan güvenilir bilgi almasaydı kodunuz ne yapardı bilmiyorum. Önemli miktarda okumadan sonra, yeni OnCalculate() yöntemi bana hiçbir anlam ifade etmiyor. Bana öyle geliyor ki, ihtiyacınız olduğunda kendiniz için yapacağınız bir yük bilgisini gereksiz yere hesaplayıp vermek ve ihtiyacınız olmayan şeylerle uğraşmayarak kendinize hesaplama süresinden tasarruf etmek gibi geliyor. Bununla neyi başarmaya çalıştıklarından emin değilim.
Mutlu Kodlama!
Rica ederim Dadalar. Yine de başlangıç yönteminde ObjectDelete() kullanmazdım. Bu en iyi OnDeInit() içinde yapılır. Bunun nedeni şudur: Kodu OnStart() veya OnCalculate() içine koyarsanız, her tik geldiğinde çalıştırılacaktır. Bu iki nedenden dolayı kötüdür: 1) gerçek zamanlı bir uygulamada boşa harcamayı göze alamayacağınız çok sayıda işlem ekler ve 2) çoğu durumda bunu yapmak mantıklı değildir - genellikle yalnızca bir grafik başlatıldığında önemli olacak. Bunu sadece "başlangıç" yöntemlerinde, bir fiyat değişikliği nesnelerinizi bir şekilde etkileyecekse yapmalısınız. Örnek olarak, bunu düşünün (bu, satmayı düşündüğüm bir uygulamanın parçası, ancak bunu paylaşmak harika :-)).
Bu kod, varsa kapalı bir ticaretten kalan nesneleri yakalar.
Bu arada - bunu YAPMAYIN:
Kodun amacını yanlış anladınız. Sunucu "yerleşene" kadar indie'yi ÇALIŞTIRMAMAK üzere tasarlanmıştır. Bu yüzden 0 döndürüyorum. Bu şekilde, bağımsız kod, ihtiyaç duyduğu tüm bilgiler mevcut olana kadar yürütülmez. Dürüst olmak gerekirse, henüz OnCalculate() ile çalışmadım çünkü ihtiyacım olmadı ama yaptığınız şeyin bir felakete davetiye olduğunu söyleyebilirim. Programınıza "Geçerli verileriniz olana kadar bu kodu çalıştırmayın" demiyorsunuz. Sadece rüzgara bir şeyler atıyorsun ve en iyisini umuyorsun. Doğruyu söylemek gerekirse, sunucudan güvenilir bilgi almasaydı kodunuz ne yapardı bilmiyorum. Önemli miktarda okumadan sonra, yeni OnCalculate() yöntemi bana hiçbir anlam ifade etmiyor. Bana öyle geliyor ki, ihtiyacınız olduğunda kendiniz için yapacağınız bir yük bilgisini gereksiz yere hesaplayıp vermek ve ihtiyacınız olmayan şeylerle uğraşmayarak kendinize hesaplama süresinden tasarruf etmek gibi geliyor. Bununla neyi başarmaya çalıştıklarından emin değilim.
Mutlu Kodlama!
Tekrar teşekkürler!
Yüzen etiketlerin cevabını buldum.
Görünüşe göre şimdi Nesne Çapasını kodun kendisinde Bağlamalıyız:
https://docs.mql4.com/en/constants/objectconstants/enum_anchorpoint
Bu yüzden, aşağıdaki gibi bir şey eklemeliyim:
ve sonra nesneyi ayarlamak için başka bir satır kullanın:
Hayat kesinlikle kolaylaşmıyor!
Ve sonra bu yardımcı olmuyor, sonuçta!!!
BTW. Size neyi başarmaya çalıştıklarını söyleyeceğim:
Mümkün olduğu kadar çok insanın kodlarla uğraşmasını engellemek istiyorlar.
Olabildiğince ticari olmalı.
Yakın zamana kadar, hemen hemen herkes basit mql4 ile uğraşabiliyordu.
Şimdi amaç her şeyi ticarileştirmek!
Bu B646 ciddi şekilde tıkanmış!
onların yeni OnCalculate() yöntemi bana hiçbir anlam ifade etmiyor. Bana öyle geliyor ki, ihtiyacınız olduğunda kendiniz için yapacağınız bir yük bilgisini gereksiz yere hesaplayıp vermek ve ihtiyacınız olmayan şeylerle uğraşmayarak kendinize hesaplama süresinden tasarruf etmek gibi geliyor. Bununla neyi başarmaya çalıştıklarından emin değilim.
Mutlu Kodlama!
OnCalculate, gösterge tarafından halihazırda kaç çubuğun işlendiğini hesaplamanın sonucunu sağlar. Eski IndicatorCounted işlevinin yerini alır. Aynı zamanda mql5 ile uyumluluğu da sağlar, çünkü dizi dizileri, global dizi dizilerini kullanmanın eski mql4 yöntemine kıyasla kendisine referans olarak iletilir. Kodlama açısından çok az fark vardır.
Bir kez daha, rica ederim Dadalar. Bazı eşyalarımda kullanmama rağmen ANCHOR özelliklerini kullanmayı unutmuştum.
SDC, bilgi için teşekkürler. Belgeler amacını gerçekten açıklamıyor. Rusçadan İngilizceye çeviride anlamın kaybolmuş olabileceğinden şüpheleniyorum. Şimdi daha mantıklı. OnStart() yerine kullanılması amaçlanmadığını, bunun yerine IndicatorCounted() yerine kullanıldığını varsayıyorum. DocumentCounted()'ın OnCalculate() ile değiştirilmesini gösteren bir tür "önce" ve "sonra" gösteren bir örnek sağlamak belgelere iyi bir ek olacaktır. Geri dönüp açıklamanız ışığında belgeleri gözden geçirmem ve parçaların nasıl bir araya geldiğini görmem gerekecek. Tekrar teşekkürler.
Prof.
int start() yerine int OnCalculate() kullanırsınız. start() gibi her kene üzerinde çalışır. Bir öncesi ve sonrası şöyle görünürdü,
OnCalculate'in biçimsel parametreleri onu daha fazla kendi içinde barındırır, kodlayıcı, görünüşe göre oop çevrelerinde kötü kötü kodlayıcı, bileğe tokat gibi her türlü globali çağırmaya güvenmek zorunda değildir. Pratikte, ikisini de kullanmak arasında pek bir fark yoktur. Ayrıca OnCalculate, mql5 ile aynıdır, dolayısıyla uyumlu kod yazma seçeneğiniz vardır.