Hatalar, hatalar, sorular - sayfa 2723
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Size neyin yanlış olduğunu ve programın güncellemesini nasıl hızlandıracağınızı kim söyleyecek? Expert Advisor'dan ChartRedraw işlevini çağırıyorum, ancak hala birkaç dakikalık gecikme var.
ChartRedraw yalnızca grafik nesnelerini çizmek (güncellemek) için gereklidir, gösterge tamponlarıyla çizilen normal bir gösterge için ChartRedraw gerekli değildir
IMHO, göstergede bir sorun arayın, belki de her kene üzerinde arabelleklerin yanlış hesaplanması, her tikte tüm geçmişi sayan "yazarlar" var
Not: Söyleyemem, ama belki ChartRedraw tüm grafiği geçmiş senkronizasyonu ile günceller, eğer öyleyse, o zaman genellikle tüm geçmişin tam bir hesaplamasıyla göstergeyi her seferinde yeniden başlatırsınız.
UPD: grafikteki geçmişi daha az sayıda çubukla sınırlamaya çalışın 10.000 yeterlidir, MT4'te ağır bir göstergenin tüm belleği "silip süpürdüğü" ve ardından EA'nın neden doğru çalışmadığını aradığı bir durum vardı (bu işe yaramadı). MT5'te tüm hafızanın kullanılması pek olası olmasa da .... her şey olabilir
ChartRedraw yalnızca grafik nesnelerini çizmek (güncellemek) için gereklidir, gösterge tamponlarıyla çizilen normal bir gösterge için ChartRedraw gerekli değildir
IMHO, göstergede bir sorun arayın, belki de her kene üzerinde arabelleklerin yanlış hesaplanması, her tikte tüm geçmişi sayan "yazarlar" var
Not: Söyleyemem, ama belki ChartRedraw tüm grafiği geçmiş senkronizasyonu ile günceller, eğer öyleyse, o zaman genellikle tüm geçmişin tam bir hesaplamasıyla göstergeyi her seferinde yeniden başlatırsınız.
UPD: grafikteki geçmişi daha az sayıda çubukla sınırlamaya çalışın 10.000 yeterlidir, MT4'te ağır bir göstergenin tüm belleği "silip süpürdüğü" ve ardından EA'nın neden doğru çalışmadığını aradığı bir durum vardı (bu işe yaramadı). MT5'te tüm hafızanın kullanılması pek olası olmasa da .... her şey olabilir
Ayrıca, hesaplamayı optimize etmeye ve test için hindinin cilalı bir versiyonunu koymaya hemen yardımcı oldu. Ondan önce 1000 barın her tikini saydım, şimdi yeni bir barın açılmasını bekliyorum.
Bu nedenle, hala çok şaşırmaya değer. 1k bar çok güçlü olmayan hesaplamalar grafiğin çizimini 2 dakika yavaşlatıyor mu? ..
Bu nedenle, hala çok şaşırmaya değer. 1k bar çok güçlü olmayan hesaplamalar grafiğin çizimini 2 dakika yavaşlatıyor mu? ..
bu olamaz, bence terminal böyle bir göstergeyi " xxx göstergesindeki hesaplama çok uzun" yazan mesajla kaldıracaktır.
MT'nin (4/5) hızı çok yüksek, elbette aynı verileri birkaç kez sayabilirsiniz, ancak IMHO, yine de denemeniz gerekiyor
Göstergenin yazarının gösterge arabelleklerinin ekonomik hesaplanmasına aşina olmadığını düşünüyorum ve göstergelerin nasıl yazıldığını incelemek için son çubukları doğru bir şekilde hesaplamayı unutuyor... acilen KB'de;)
Bu iki program aynı terminalde mi yoksa iki farklı programda mı?
İşte sorunu yeniden oluşturmak için kod. https://www.mql5.com/en/forum/332849
Çoğaltmak için kodu en az 2 kez çalıştırmanız gerekir.
Hiç gerekli değil. Neden sishler? C#'a ne dersin? - ona bir kez daha anlamca daha yakın.
Muhtemelen c++ benzer olduğundan ve C'den gelen yapılar oraya geldiği için.
Yapıların pasifliği hakkındaki tüm konuşmalar, tamamen arkaik fikirlerdir, IMHO.
Yapıcılara ihtiyaç var - sınıfları kullanın veya keskinliğe hoş geldiniz. Neden böyle bir çağrışımdan yapıyı mahrum bırakalım? Programlar sadece bundan daha anlamlı hale gelecektir. Burada birinin kodunu alacağım, görüyorum - bir sınıf yerine bir yapı ve sadece bir kelimeden çok fazla bilgi alacağım. Hiçbir şey elde edemezsiniz, anında aldığım sonucu elde etmek için kaynak kodunu özenle çalışacaksınız. Tecrübelerime göre, yapılar üzerindeki bu anlaşmaya saygı duyulur, belki biraz nihilist marjinalizmi mahveder.
En azından her türün bir kurucusu olması gerektiğini düşünüyorum. Başlatılmamış alanlar kötüdür ve bundan kaçınılmalıdır.
Orada kötülük yok, sence. Hatta bunu standarda genişlettiler: başlatılmamış unsigned char ve std:: byte'ı okumak tanımsız davranış değildir. POD için başlatmayı toplamak mümkündür. Ve unutmayın - tüm bu başlatma ücretsiz değildir, bu gerçek bir kaynak maliyetidir (CPU, bellek, yürütülebilir boyut). Bunu numara kırıcınızla yaparsanız, bazı mikro denetleyiciler söz konusu olduğunda bu önemli olabilir. Sonuçta, C / C ++ sadece keskin gibi bir vida formu-tokat değildir.
Sadece bir değişkeni başlatmak, talimatların boyutunu %30 artırdı.bir terminalde. Uzman verileri yazar, göstergeyi okur. Farklı çizelgelerde asılıydılar, ancak birde olabilecekleri açık (eğer önemliyse). 2380 oluşturun.
Bir dosyayı okuyan bir Uzman Danışman, dosyayı kapalı tutmalıdır.
Dosyaların MQL5'te uygulanmasının özelliği, dosyalardan gelen verileri kendi arabelleklerinde maksimum düzeyde tutmalarıdır. Bilgi miktarı arabelleğe sığmayacak kadar büyükse, işaretçiyi dosyanın başına ve ardından sonuna taşıma hileniz işe yarayabilir.
Şimdilik dosyayı açın , içeriğini kontrol edin ve ardından tekrar kapatın.
Bir dosyayı okuyan bir Uzman Danışman, dosyayı kapalı tutmalıdır.
Dosyaların MQL5'te uygulanmasının özelliği, dosyalardan gelen verileri kendi arabelleklerinde maksimum düzeyde tutmalarıdır. Bilgi miktarı arabelleğe sığmayacak kadar büyükse, işaretçiyi dosyanın başına ve ardından sonuna taşıma hileniz işe yarayabilir.
Şimdilik dosyayı açın , içeriğini kontrol edin ve ardından tekrar kapatın.
Yani FileFlush() işe yaramaz mı?
Numara. Başka birinin değiştirilen dosyayı okuyabilmesini istiyorsanız FileFlush bir zorunluluktur.
Sorun, MQL5 programının dosyayı açarken kendi arabelleğine okumasıdır. Ve dosyayı tekrar okuyana kadar dosyada bir şeylerin değiştiği gerçeği hakkında hiçbir şey bilmeyecek. Dosyayı ancak bu dosyayı kapatıp açtığınızda tekrar okuyabilirsiniz.
Numara. Başka birinin değiştirilen dosyayı okuyabilmesini istiyorsanız FileFlush bir zorunluluktur.
Dosyayı kapatsan bile?
Dosyayı kapatsan bile mi?
İşte tam da bundan bahsediyorum. Kapat sonra tekrar aç
Yoksa dosyayı kapatmadan önce FileFlush'ı mı kastediyorsunuz?