MT4'ten MT5'e aktarma sorunu. Veya daha doğrusu, MT5'te bazı algoritmaların hatasız yürütülmesinin imkansızlığı. - sayfa 9
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
Evet, istisnalar dışında, kod çok daha basit ve temizdir, sürekli hata kontrolü onu bir ayak örtüsüne dönüştürür. Ancak mikrolitrede ve istisnasız olarak şaft sorunları. Geliştiriciler haçları çekmedi.
Ve bence, hiçbir fark yok.
Dönüş kodlarıyla - RETURN_IF_BAD_RESULT () gibi bir makro yazmanız ve sonuç döndüren tüm işlevlere sokmanız gerekir.
İstisnalar dışında - TRY-CACTH bölümleri yazmanız gerekir. Artı - hangi işlevlerin bir istisna attığını, hangilerinin atmadığını hatırlayın, koda yorum ekleyin // istisna
Bir şey - bir ayak örtüsü, bir şey ...
Evet, istisnalar dışında, kod çok daha basit ve temizdir, sürekli hata kontrolü onu bir ayak örtüsüne dönüştürür. Ancak mikrolitrelerde ve istisnasız olarak şaft sorunları. Geliştiriciler haçları çekmedi.
hayır, istisnalar hakkında kekeme bile değilim ... bir seçenek olarak, dizinin ötesindeki tüm çıkışları istisnalara saracak bir “kötü pinokyo” var)))
IMHO, sadece işletim sistemine bir çıkışla tüm geri dönüşü kesme yeteneğine ihtiyacınız var ... tüm işlev çağrılarını sürekli olarak sarmak mantıklı değil
Ve bence, hiçbir fark yok.
Dönüş kodlarıyla - RETURN_IF_BAD_RESULT () gibi bir makro yazmanız ve sonuç döndüren tüm işlevlere sokmanız gerekir.
İstisnalar dışında - TRY-CACTH bölümleri yazmanız gerekir. Artı - hangi işlevlerin bir istisna attığını, hangilerinin atmadığını hatırlayın, koda yorum ekleyin // istisna
Bir şey - bir ayak örtüsü, bir şey ...
İstisnalar dışında hiçbir şeyi hatırlamama gerek yok, çoğu zaman TRY-CACTH'ye bile ihtiyacım yok (program anormal bir şekilde bitecek), bu İSTİSNAİ bir durum ve normalde olmuyor, dönmene gerek yok if-else bloklarına dönüştürün. Örneğin - burada kendim için bir vektörün bir benzerini (acıklı bir görünüş) yazdım, başarısız tahsisler için bir istisna atmak yerine, bir operatörü vidalamak zorunda kaldım! ve her ekleme ile seğirmesi (bunun umurumda olmamasına rağmen) şüpheli bir faydadır.
IMHO, sadece işletim sistemine bir çıkışla tüm geri dönüşü kesme yeteneğine ihtiyacınız var ...
Evet, ayrıca hiçbir şey, bunun olmaması garip ...
Evet, ayrıca hiçbir şey, bunun olmaması garip ...
Okunabilir kodlu kısa programları bir tür canavara dönüştürmek benim için uygun değil, işte MQL4 için tipik bir şablon - "yeni çubuğu" kontrol ettik, göstergeleri kontrol ettik - siparişlerle çalışıyoruz veya çalışmıyoruz:
bu örnekte, göstergeler "her keneyi çek" çünkü. farklı TF'ler üzerinde çalışıyorlar ... genel olarak, önemli değil
OHLC verilerini ind1(), ind2(), ind3() ve NewBar() içinde kullanıyorum
birişlev çağrısında bir zaman serisi erişim hatası alırsam, bu kodu yürütmeye devam etmenin anlamı nedir? - işletim sistemine çıkmanız ve yeni bir onay işareti beklemeniz gerekir, yani. herhangi bir ind1(), ind2(), ind3() ve NewBar() içinde GetLastError()'u kontrol ediyorum ve EA günlüğüne yazarken işletim sisteminde hemen Exit() hatası alıyorum
İstisnalar dışında hiçbir şeyi hatırlamama gerek yok, çoğu zaman TRY-CACTH'ye bile ihtiyacım yok (program anormal bir şekilde bitecek), bu İSTİSNAİ bir durum ve normalde olmuyor, onları dönüştürmeye gerek yok if-else blokları. Örneğin - burada kendim için bir vektörün bir benzerini (acıklı bir görünüş) yazdım, başarısız tahsisler için bir istisna atmak yerine, bir operatörü vidalamak zorunda kaldım! ve her ekleme ile seğirmesi (bunun umurumda olmamasına rağmen) şüpheli bir faydadır.
Hadi dostum...
"Hiçbir şeyi hatırlamana gerek yok" dersin ve DERHAL devam edersin - SIKLIKLA DENEYİN-YAKALAMA bile gerekli değildir. Aynı "sıklıkla", bir yerde bir bloğa ihtiyaç duyulduğu, ancak bir yerde buna gerek olmadığı ve bunu hatırlamanız gerektiği anlamına gelir. Durum, dönüş kodlarıyla tamamen aynıdır - bir kaynak istendiyse ve bir istisna oluştuysa (bir hata döndürüldü), kaynaklar atılmalıdır. Yani, her durumda, hangi işlevin bir istisna attığını ve hangilerinin atmadığını hatırlamanız gerekir.
Evet ve "istisnai durum" hakkında ... Peki, nasıl desek ... Alıntıların olmaması - bir istisna atmak için tamamen makul bir neden gibi görünüyor, ama gerçekten "istisnai bir durum" mu?
Okunabilir kodlu kısa programları bir tür canavara dönüştürmek benim için uygun değil, işte MQL4 için tipik bir şablon - "yeni çubuğu" kontrol ettik, göstergeleri kontrol ettik - siparişlerle çalışıyoruz veya çalışmıyoruz:
bu örnekte, göstergeler "her keneyi çek" çünkü. farklı TF'ler üzerinde çalışıyorlar ... genel olarak, önemli değil
OHLC verilerini ind1(), ind2(), ind3() ve NewBar() içinde kullanıyorum
birişlev çağrısında bir zaman serisi erişim hatası alırsam, bu kodu yürütmeye devam etmenin anlamı nedir? - işletim sistemine çıkmanız ve yeni bir onay işareti beklemeniz gerekir, yani. herhangi bir ind1(), ind2(), ind3() ve NewBar() içinde GetLastError()'u kontrol ediyorum ve EA günlüğüne yazarken işletim sisteminde hemen Exit() hatası alıyorum
return(iErrrCode) çağrısının sorunu nedir?
return(iErrrCode) çağrısının sorunu nedir?
hmm, kodda göstermeye çalışacağım, OHLC verilerinin yanlış işlenmesi durumunda kodu çıktı ile yeniden yazdım, şöyle bir şey olacak:
şimdi fonksiyon değerlerini bağlantıdan alıyorum ve fonksiyon yanlış işlenmişse çıkıyorum (tartışma bağlamında - terminal zaman dilimlerinde geçmiş verileri hazırlamadı)
Hadi dostum...
"Hiçbir şeyi hatırlamana gerek yok" dersin ve DERHAL devam edersin - SIKLIKLA DENEYİN-YAKALAMA bile gerekli değildir. Aynı "sıklıkla", bir yerde bir bloğa ihtiyaç duyulduğu, ancak bir yerde buna gerek olmadığı ve bunu hatırlamanız gerektiği anlamına gelir. Durum, dönüş kodlarıyla tamamen aynıdır - bir kaynak istendiyse ve bir istisna oluştuysa (bir hata döndürüldü), kaynaklar atılmalıdır. Yani, her durumda, hangi işlevin bir istisna attığını ve hangilerinin atmadığını hatırlamanız gerekir.
Evet ve "istisnai durum" hakkında ... Peki, nasıl desek ... Alıntıların olmaması - bir istisna atmak için tamamen makul bir neden gibi görünüyor, ama gerçekten "istisnai bir durum" mu?
İstisnaları bir şekilde kendi yolunda kullandın, yanlış, görünüşe göre. Genel olarak, bu işlevin bir istisna atıp atmadığı konusunda endişelenmenize gerek yok mu? TRY-CATCH'in varlığı isteğe bağlıdır. Ve kaynaklarla ilgili sorunlardan kaçınmak için, ana RAII https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%BB%D1%83%D1%87%D0%B5%D0%BD% D0%B8%D0%B5_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0_%D0%B5%D1%81%D1%82%D1% 8C_%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8% D1%8F , yığın çözme her şeyi kendi kendine temizleyecektir.
Garip, ama daha önce yapmayı düşünmedim:
Bellek ayırma gibi birçok hata kontrolünden kurtulur.