MQL4 ve MQL5'te Rakamları () atlayarak herhangi bir sayıdan (sadece tırnak işaretleri değil) sonra ondalık basamak sayısını alma - sayfa 12
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
Muhtemelen en iyi çözüm
özellikle görev tam olarak işarete bağlı olduğundan, eşitlik için çift karşılaştırma yapmak doğru değildir.
MT4 dosyasına bakın stdlib.mq4 doğru bir ikili karşılaştırma örneği vardı
KarşılaştırÇiftler()
Not: Konuya göre işte makale https://www.mql5.com/ru/articles/1561
Logaritmaları nasıl sayacağınızı, tamsayı olmayan sayılarla üs almayı, trigonometriyi nasıl kullanacağınızı, .... üçüncü taraf kitaplıkları, göstergeleri nasıl kullanacağınızı merak ediyorum ... Hepsinde bir hata var!
süper mega hassasiyete umutsuzca ihtiyaç duyulursa, gnu mp gibi özel harici kütüphaneler alırız
aksi takdirde, garantili doğruluğa ihtiyacınız varsa (her işlem sırasında bir hata da hesaplandığında), o zaman her türlü "aralık kitaplığını" alırız.
Bu yeterli olmasa bile, sayılar yerine polinomları kullanırız.
ama bu tür kalemlerin MT'den gerçekten talep gördüğü bir durum görmedim :-)
burada gözler için çift :-)
özellikle görev tam olarak işarete bağlı olduğundan, eşitlik için çift karşılaştırma yapmak doğru değildir.
MT4 dosyasına bakın stdlib.mq4 doğru bir ikili karşılaştırma örneği vardı
KarşılaştırÇiftler()
Peki, peki, ve CompareDoubles ile yürütme süresi 2 kez çıkıyor. O zaman böylesi daha iyi:
Peki, peki, ve CompareDoubles ile yürütme süresi 2 kez çıkıyor. O zaman böylesi daha iyi:
doğru hesaplamadan bahsediyoruz, şu anda kodunuzu kontrol edemiyorum, ancak zor değil, örneğinizi DoubleToStr() bir döngüde kullanarak bir örnekle karşılaştırmanız gerekir, eğer herhangi bir fark yoksa, her şey doğrudur
Not: fmod () ile denedim, öyle görünüyor ki bir örnek verdim, düzgün çalışmıyor, görünüşe göre 0.07'yi kontrol etmeniz gerekiyor - hata hemen ortaya çıktı
doğru hesaplamadan bahsediyoruz, şu anda kodunuzu kontrol edemiyorum, ancak zor değil, örneğinizi DoubleToStr() bir döngüde kullanarak bir örnekle karşılaştırmanız gerekir, eğer herhangi bir fark yoksa, her şey doğrudur
Hızı zaten kontrol ettim ve hesapladım - en başarılı seçenek çıkıyor. Tabii 7 karakterden fazla bakmanız gerekmiyorsa.
Z.s. 0.7 ve 0.07 ve 50000000.0001 vb. her şey doğru.
Z.z.s. ancak 5000000000.9991 ile daha da kötüleşir. Ancak pratikte forex pek önemli değildir.
Ancak pratikte forex pek önemli değildir.
görevlere bağlıdır, eğer alım satım emirleri içinse bu görev hiç bir anlam ifade etmez - fiyatlar Rakamlara göre normalleştirilir ve lotlar minimum lota göredir
matematiksel modelleme ile görevler varsa, o zaman kullanışlı olabilir, peki, double'ın güzel çıktısı için tam olarak bir görev olduğunu yazdılar.
görevlere bağlıdır, eğer alım satım emirleri içinse bu görev hiç bir anlam ifade etmez - fiyatlar Rakamlara göre normalleştirilir ve lotlar minimum lota göredir
matematiksel modelleme ile görevler varsa, o zaman kullanışlı olabilir, peki, double'ın güzel çıktısı için tam olarak bir görev olduğunu yazdılar.
Eh, elbette, sinir ağları yazmayın =)) ama diyelim ki fiyatları / lotları / parayı 4 baytlık bir ondalık göstergeli tam sayı olarak saklamak, veri miktarını 2 kat azaltmak uygun.
özellikle görev tam olarak işarete bağlı olduğundan, eşitlik için çift karşılaştırma yapmak doğru değildir.
MT4 dosyasına bakın stdlib.mq4 doğru bir ikili karşılaştırma örneği vardı
KarşılaştırÇiftler()
Not: Konuya göre işte makale https://www.mql5.com/ru/articles/1561
Yani görev buna değer - kaç karakter x'in normalleştirildiğini belirlemek. Yani her şey yolunda. Bunun dışında böyle bir merdiven yazmak çok tembel değildi.
Bunun dışında böyle bir merdiven yazmak çok tembel değildi.
Merdivensiz de mümkündür, sadece %10 daha uzun sürer.
Merdivensiz de mümkündür, sadece %10 daha uzun sürer.
İşte burada: f/=0.0000001; şüphe uyandırır.