Hatalar, hatalar, sorular - sayfa 2342

 
fxsaber :
Kaynaklar bu boyutla sınırlı mı?

Bu, iletilen verileri yoğunlaştırmanın daha da uygun olduğu anlamına gelir.

 
fxsaber :

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

 
fxsaber :
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?

 
A100 :

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.

George Merts'in fotoğrafı.

Ve bir diziye erişirken erişim indeksini kontrol etmek mantıklı değil mi?

Mantıklı değil.

 
Nikolai Semko :

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.

 
fxsaber :

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?

 
Georgiy Merts :

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.

 
Slava :

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?