Hatalar, hatalar, sorular - sayfa 2342
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
Kaynaklar bu boyutla sınırlı mı?
Bu, iletilen verileri yoğunlaştırmanın daha da uygun olduğu anlamına gelir.
Bu anlamda MT4, MT5'ten çok daha akıllıca hareket etti - programdan çıkış yoktu ve LastError'ı analiz etmek mümkün oldu.
Birincisi: Geri dönüşü olmayan kritik bir hatanın meydana gelmesinden sonra programın yürütülmesine devam edilmesi bilgelik değil aptallıktır.
İkincisi, MetaTrader 4 765x32'de bunu yaptıktan sonra PrintError() gelmedi
Üçüncüsü: strict'i kaldırırsanız, o zaman geldi, ancak GetLastError() 0 döndürür, bu yüzden orada neyin analiz edileceği açık değil
Danışmanın durdurulduğu kullanıcıya nasıl bildirilir?
Bu anlamda MT4, MT5'ten çok daha akıllıca hareket etti - programdan çıkış yoktu ve LastError'ı analiz etmek mümkün oldu.
Ve bir diziye erişirken erişim indeksini kontrol etmek mantıklı değil mi?
Birincisi: Geri dönüşü olmayan kritik bir hatanın meydana gelmesinden sonra programın yürütülmesine devam edilmesi bilgelik değil aptallıktır.
İkincisi, MetaTrader 4 765x32'de bunu yaptıktan sonra PrintError() gelmedi
Üçüncüsü: strict'i kaldırırsanız, o zaman geldi, ancak GetLastError() 0 döndürür, bu yüzden orada neyin analiz edileceği açık değil
MT4'ün MT5'ten daha iyi olduğunu gösterecek bir görev yoktu. Pratik bir sorunu çözmek gerekiyordu.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Kitaplıklar: TarihTicks
fxsaber , 2018.12.10 13:55
EA'nın aralık dışı dizi nedeniyle durduğuna dair bir mesaj alır (EA'nın yazarının hatası değil). Örneğin, bellek eksikliği veya başka bir arıza nedeniyle. Onlar. Danışmanın anormal bir şekilde durduğunu hemen bileceksiniz ve birkaç saat sonra bunu yanlışlıkla fark etmeyeceksiniz.
Danışmanın durması hoş değil, ancak bu hiçbir şekilde bildirilmiyor.
Ve bir diziye erişirken erişim indeksini kontrol etmek mantıklı değil mi?
Mantıklı değil.
Bu, iletilen verileri yoğunlaştırmanın daha da uygun olduğu anlamına gelir.
Kontrol ettim, 60Mb sessizce (MT4/5) Resources'a yazılıyor. Yani bir sınır varsa, o zaman daha yüksek.
Küçük bir açıklama, ama yine de.
Depoya gönderirken - ilk panel "Düzelt" - iyi çalışıyor ve ikincisi, benim için onay, öncelikle, OK tuşuna basılmasını beklemiyor, ancak hemen sönüyor ve ikincisi, gönderilen tüm dosyalar üzerinde görüntülenmez. Yine de kontrol ettim - dosyalar normal şekilde gönderiliyor.
Sadece ben mi?
Doğru görünüyor - gönderdikten sonra, her şeyin yolunda gittiğine dair onay ile gönderilen dosyaların bir listesi görüntülendiğinde.
Mantıklı değil.
Ve neden ?
Bana öyle geliyor ki, programın mantığına göre dizinin ötesine geçen bir dizinin görünemeyeceği dizini kontrol etmeye gerek yok. Ve sonra, bu durumda bile - her ihtimale karşı ASSERT koymak gerekir.
İndeks, dış parametrelerle, tırnaklarla, kullanıcı eylemleriyle ilişkili önceki eylemlere bağlı olduğunda, erişim indeksinin kontrolü zorunlu olmalıdır.
Değil mi sence?
Ve neden ?
Bana öyle geliyor ki, programın mantığına göre dizinin ötesine geçen bir dizinin görünemeyeceği dizini kontrol etmeye gerek yok.
Kabul ediyorum.
Ve sonra, bu durumda bile - her ihtimale karşı ASSERT koymak gerekir.
katılmıyorum çünkü Kodun okunabilirliği büyük ölçüde zarar görür.
İndeks, dış parametrelerle, tırnaklarla, kullanıcı eylemleriyle ilişkili önceki eylemlere bağlı olduğunda, erişim indeksinin kontrolü zorunlu olmalıdır.
Burada dış parametrelerle ne kastedildiğini anlamadım. ArrayResize veya ArrayCopy'nin normal şekilde tamamlandığını ve eski belleğin bitmediğini kontrol etmek için her seferinde - kodu ASSERT aracılığıyla şişirmek için ve bu hala iğrenç. Kontrol etmezseniz, danışmanın algılanamaz bir şekilde durmasını sağlayacağız. Şimdiye kadar tek bir çözüm buldum - ArrayResize ve ArrayCopy'yi değiştirmek.
Kim müdahale ediyor?
ChartSaveTemplate(chart_id,"\\Files\\MyPreferredTemplates\\cewl.tpl");
İşlevklasör oluşturmaz , yalnızca klasör zaten varsa bir şablon yazar .... Klasör yoksa, hata 4112
Yani, önce klasörleri hazırlamanız gerekiyor ...
İlginç bir şekilde, FileOpen işlevini kullanarak şablonlar klasöründe bir dizin oluşturamıyoruz ve ChartSaveTemplate işlevi dizin oluşturmuyor...
Yani, şablonları alt klasörlerin klasörlerine kaydetmek istiyorsanız, ellerinizle klasörler oluşturun ....
bellek yetersiz
GlobalVariables üzerinde yineleme yaparken
ortaya çıkabilir?