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
WHRoeder: bu kod iyi (özellikle "eklendi" ve "varsayılan"ı kontrol edin )? Ayrıca, bu konuyu ziyaret edip son sayfaya gidenler için kolay bir son başvuru kaynağı olabilir (benim yaptığım gibi)
O kod doğru değil.
Eşitlik için karşılaştırma yapmak için if( !MathAbs( a - b ) > Point/2) nasıl kullanılabilir? Bu size 1.4999 == 1.5000
if ( ! ( MathAbs ( 1.4999 - 1.5000 > 0.00005 )
if ( ! ( 0.0001 > 0.00005 )
if ( ! ( true )
if ( false ) 1.4999 is NOT equal to 1.5000
kullanırım
veya gerçek fiyatlar olmayan çiftler için daha yüksek bir hassasiyet
Raptors bu kod hakkında yayın yapıyor
Yani kullanırsanız,
Bu yöntemi çeşitli şekillerde test ettim, beklenen veya istenen sonucu getirmeyecek bir senaryo bulamadım.Son kod... Teşekkürler WHRoeder
Ve belki de fiyat olmayan tüm diğer çiftleri karşılaştırmak için ikincil bir işlev...
Karşılaştırma için küçük sayıların kullanılmasıyla ilgili olarak ayrıca bkz. 'MQL4 Reference > Language Basics > Data Types > Real Types (double, float)'.
Belki birisi expon'da 0.00...1 yazmayı daha iyi biliyordur
Bu yüzden, potansiyel olarak "// 0 karşılaştırmanın bu işleve ihtiyacı yok" ile bağlantılı olarak bulduğum ilginç bir şey daha var.
Belki sadece en son sürümlerde bir hata, emin değilim. 0 ile karşılaştırma artık doğru çalışmıyor. Düşmanca olmayan bir şeye başvurmak zorunda kaldım;
sonuç=(int(sonuç*100)/100.0); // Çözünürlük 2 basamak
Sadece 0 değerlerinin gerçekten 0 değer olarak sonuçlandığından emin olmak için.
WHRoeder, teşekkürler. Daha fazla çalışma gerekli :)
Bence bu konu çok fazla gereksiz karmaşıklıkla işleniyor.
Programcınızın hayatını her zaman mümkün olduğunca kolaylaştırmaya çalışın. İkili karşılaştırmalarınıza ihtiyaç duyduğunuz sınıflarda tanımlar yazın (veya gerçekten yapmanız gerekiyorsa yöntemlerle devam edin):
İki dubleyi karşılaştırmanız gerektiğinde, bunu aşağıdaki gibi bir durumda kullanın:
Bir çiftin sıfır olup olmadığını (veya sıfıra çok, çok yakın) görmek istiyorsanız, aşağıdaki gibi bir koşul kullanın:
Bir yan notta, bölümlerden bahseden birçok gönderi gördüğüm için:
Kapsülleme ile, bazı yardımcı yöntemlere "dış kaynaklı" olan kodun maliyetlerini unutma eğilimindeyiz. Kendinize bölümlerin hesaplama açısından çok pahalı olduğunu hatırlatın! Özellikle, fayda sınıflarında bir yerde nice fayda yöntemlerine sarıldığında, bunları göstergelerde veya EA'larda her yerde kullanmaya başlıyoruz ve hangi hesaplama adımlarını gerçekleştirdiklerini çoktan unuttuk. Strateji test cihazını kullanırken, özensizliğimiz için çok fazla gereksiz zaman ödüyoruz.
Temel kural : Toplama ve çıkarma işlemleri, çarpma ve bölme işlemlerinden çok daha hızlıdır. Bölme işlemi en yüksek hesaplama süresini alır. Bölümleri optimize edin - mümkün olan her yerde! Payda bu döngüdeki gibi sabit ise...
sonra payda x'i ters çevrilmiş değeri 1/x ile değiştirin :
Ayrıca, bir bölmenin sonucu her zaman aynıysa, o zaman hesaplamayı bir kez yapın ve sonucu bir değişkene kaydedin, böylece onu kodunuzun her yerinde (örneğin döngülerde) kullanabilirsiniz:
Şerefe,
AT