Hatalar, hatalar, sorular - sayfa 2000
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
Ve bunu zaten OnCalculate'de yapmak hiç mantıklı değil. Diziyi bir şeyle başlatmanın ve ardından onu formülden bazı değerlerle doldurmanın nedeni nedir? Sırasıyla bir çubuk ve bir dizi hücresi eklerken, onu bir şeyle ve hemen formüldeki değerle veya boş bir değerle doldurmanın amacı nedir?
Bu, formülün tüm çubuklara uygulanması durumunda geçerlidir. Ve eğer sadece sonuncuysa? Örneğin, hesaplanacak çubuk sayısını ayarlamanıza izin veren bir sürü hindim var, çünkü. hesaplamalar ağırdır. Başlatma gerekli.
Genel olarak, kim istemez ki, yapmasına izin vermeyin. Artık tartışmıyorum. ;-)
Yani orada ArrayResize ile ilgili değil, ArrayInitialize ile ilgili. ArrayResize, MT4'te boş doldurmayı garanti eder.
Peki ya dikkatlice okursanız? Tekrar alıntı yapacağım.
Bir dizinin ArrayInitialize (dizi, init_val) ifadesi ile başlatılması, bu dizi için ayrılan rezervin öğelerinin aynı değerle başlatıldığı anlamına gelmez. Geçerli rezerv içindeki ArrayResize() işlevi tarafından dizi dizisinin boyutunda sonraki artışlarla, dizinin sonuna , değerleri tanımlanmayan ve çoğu zaman init_val'e eşit olmayan öğeler eklenir. .
Peki ya dikkatlice okursanız? Tekrar alıntı yapacağım.
Bir dizinin ArrayInitialize (dizi, init_val) ifadesi ile başlatılması, bu dizi için ayrılan rezervin öğelerinin aynı değerle başlatıldığı anlamına gelmez. Geçerli rezerv içindeki ArrayResize() işlevi tarafından dizi dizisinin boyutunda sonraki artışlarla, dizinin sonuna, değerleri tanımlanmayan ve çoğu zaman init_val'e eşit olmayan öğeler eklenir. .
Neden böyle gerçekçi olmayan senaryolar icat ettin, aslında bir MQL programcısının hataları? Tam başlatmanın yalnızca bir kez veya verilerin devam ettiğinin saptanması durumunda yapıldığı açıktır. Bu durumda, çekirdek onu daha verimli hale getirecektir.
Çift başlatma hakkında nerede konuştum? Hemen hemen aynı, yukarıda bahsedilen, döngüdeki tüm unsurları doldurarak konuştu. Eğer öyleyse, başlatmaya gerek yoktur ve yalnızca kaynakları boşa harcar.
Peki, tüm çubukları saymazsanız, sıfırları kendiniz doldurmaya özen gösterin.
Bu, formülün tüm çubuklara uygulanması durumunda geçerlidir. Ve eğer sadece sonuncuysa? Örneğin, hesaplanacak çubuk sayısını ayarlamanıza izin veren bir sürü hindim var, çünkü. hesaplamalar ağırdır. Başlatma gerekli.
Genelde kim istemezse yapmasın . Artık tartışmıyorum. ;-)
Bunlar altın sözler... Ama "gerekli olmayan yerde, orada yapmayacağız" demek daha doğru olur. Ya da tam tersi "sadece ihtiyaç olduğu yerde yapacağız."
Yalnızca yeni dizi öğeleri başlatılır. Ve anlam aynıdır - kodda bir hata olsa bile (çoğunlukla kendisinin değil) çalıştırmadan çalıştırmaya sonuçların kimliği. Mat ile örnek. İncil yukarıda alıntılanmıştır.
Çöp kötüdür.
Buna yorum yapacak doğru kelimeleri bile bulamıyorum.
Sonuçta, bulaşmanız teklif edilirse ... bunu kabul etmeniz pek olası değildir. Peki, diyelim ki ilk defa ne olduğunu anlamadın, sonra ikinci defa???
Peki, neden geliştiricilerin sizi boktan korumasını istiyorsunuz? Kendini koru. Veya kesinlikle gerekli olduğu lehine reddedilemez argümanlar varsa, bunları halktan saklamayın.
Pekala, mql3 vardı, öyle hataları yazmanın mümkün olduğu yerde tüyler diken diken ... ve danışman her yerde herhangi bir şekilde çalışıyor ... ama doğru çalışıyor mu? kimin umrunda???
Bazı nedenlerden dolayı, dizinin ötesine geçme konusunda herhangi bir anlaşmazlık yoktur. Ve bunun bir dizideki veya değişkendeki çöpten daha az kötü olduğu anlaşılıyor. Şey, dizide eskiden olduğu gibi böyle bir indeks yok, peki, bayrak onun elinde ... hadi çalışmaya devam edelim. Her şey geçti...
Peki, neden geliştiricilerin sizi boktan korumasını istiyorsunuz? Kendini koru. Veya kesinlikle gerekli olduğu lehine reddedilemez argümanlar varsa, bunları halktan saklamayın.
Talep yoktu, reddedilemezlik gösterildi
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
fxsaber , 2017.09.12 16:17
MT4'te her zaman false döndürür, çünkü çöp olmadan - her şey sıfırdır. MT5'te - doğru.
Bu nedenle, MT4 test cihazındaki aynı kod, çalıştırmadan çalıştırmaya her zaman aynı sonuçları gösterecektir. MT5 test cihazında değil.
Talep yoktu, reddedilemezlik gösteriliyor
Ve sadece bir satır eklemeyi kim yasaklıyor?
Yoksa false'nin 0 olduğunu, diğer her şeyin işaretten bağımsız olarak doğru olduğunu bilmiyor musunuz? Dizinin arka ucundan değerler alıyorsunuz ve 0 olduğundan emin olmak istiyorsunuz. Peki, bu durumda, diziyi sıfıra başlatmak mantıklı, ama yapmaması gerekirken neden sisteme zorunlu sıfırlama yüklensin?
Üzgünüm, ama bu örnek tamamen saçmalık.
Ve sadece bir satır eklemeyi kim yasaklıyor?
Benimle ilgili değil.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
fxsaber , 2017.09.12 16:52
Bir çeşit matta olduğu düşüncesini korkutuyor. kitaplığı (Include\Math - 7 Mb kaynakları ) bir/iki yerde başlatılmadı! Ve MT5 test cihazında farklı tek çalıştırmalar ve MT4'te aynı olanları veren bu hatayı nasıl çözebilirim?
Benimle ilgili değil.
Sadece diğer tüm insanların kütüphanelerini terk etmek için kalır. Ve belirtilene hiç bakmadım, çok daha az kullandım. İhtiyacınız olan her şeyi kendiniz yazmak, orada herhangi bir sümük olup olmadığını kontrol etmek için böyle bir yığın kazmaktan daha kolaydır ... Ve sadece iki veya üç işlevi kullanın ...