![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Sorunun bir kısmı, bu kodu büyük uzun if koşulları dolu &&, || ve işlev çağrısından sonra işlev çağrısı ile hata ayıklamayı zorlaştırıyor, bu karışıklığı çözecek zamanı olan birini bulursanız şanslısınız. Kodun çok daha kısa satırlarda nasıl formatlanması ve yorumlanması gerektiğini görmek için dokümanlardaki kodlama örneklerine bakmalısınız.
"Hata ayıklamayı zorlaştırıyor"?? :( Bunları hiç duymadım gerçi bu gerçek mi...
Derleyici ayrıca kodumda hata ayıklamakta zorlanıyor :( ?
Sebep buysa, bu kısım için tüm kodlama fikrimi yeniden düşünmek zorunda kaldım mı? O zaman tamamen farklı bir şey ortaya çıkacak ...... :( :(
Evet, hata ayıklamak zordur, örneğin sondaki durdurma için bu koda bakın. Her satırın ne yaptığını görmek kolaydır, bu nedenle hataları tespit etmek kolaydır.
Bu kodu, okunması kolay bir kod örneği olarak gönderdim, tamamlanmış bir bağımsız işlev örneği olması amaçlanmamıştı.
Bu, MT4'e dahil olan MetaQuotes MACD örnek EA'sından takip eden durdurma kodunun satın alma siparişleri bölümüdür.
1) Doğru değil, yukarı veya aşağı sayabilirsiniz, döngü daha verimlidir, OrdersTotal() bir kez çağrılır ve yerel bir değişkene atanır.
SDC'ye teşekkürler. İpuçları için de teşekkürler WHRoeder. Faydalı.
OrderClosePrice() öğesini önceki koddaki MarketInfo ile değiştirmeyi denedim ve düzenlenmiş ( && koşulunu kaldırarak onları if ifadesi olarak, 2. for döngüsündeki gibi koydum) , ancak sonuç hala bazen çalışmıyor bazen çalışmıyor Çalışma .
Havuzdaki toplam siparişleri saymak için kullanılan for döngüsü, geri sayım döngüsünü kullanır, ancak x-- ile. Neden --x önerdiğini anlamıyorum.
Google'da "kısa devre operatörleri" aradım ama bunun mql4'te ne anlama geldiğini gerçekten anlamadım, biraz açıklamanın sakıncası var mı ^_^ ?? 'if' zincirlemek neden kötüdür?
Bu arada, SDC'nin önerdiği yukarıdaki kod, kullandığım kod değil >.< .
if'leri zincirlemek kötü değildir. Yukarıda paylaştığım kodu MQL4 dilinin geliştiricileri yazmış. Örnek olarak macd örnek EA'larından kestiğim bir kod.
WHR, && || koşullar değerlendirilir, bu da onları zincirlenmiş if koşulları kadar eşit derecede verimli kılar. Önceden daha az verimliydiler. Her iki yöntemi de kullanabilirsiniz. Zincirlenmiş if'ler, kodda farklılıklar olduğunda kullanışlıdır, böylece 'else' kullanabilirsiniz.
Uzun if( && || ) koşulları satırları parantez karışıklığı yaratabilir, bu da hataları bulmayı zorlaştırır, bu yüzden yapmayı sevmiyorum. Ayrıca, kodlamanın 80 karakterden fazla olmaması gerektiğini söyleyen kabul edilmiş bir standart vardır. Yine de birçok kodlayıcı bu standarda uyma zahmetine girmez ve MQL4 geliştiricileri, eşit derecede büyük uzun adlara sahip işlevlere yapılan işlev çağrılarında kullanılmak üzere büyük uzun adlara sahip numaralandırılmış tanımlayıcılar oluşturmaya devam eder, bu da kodun bir bütün olarak biçimlendirilmesine yardımcı olmaz. çok güzelsin.