[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 470
![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
Farklı hileler? Örneğin hangisi?if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }
if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }
Ben de denedim ve her ihtimale karşı, Rakamlar yerine 4, sonra 5, sonra 6 yazdım ... Çalışmıyor!
https://www.mql5.com/en/articles/1561
Teşekkür ederim! Gerçekten de, makale çok bilgilendirici. Ancak MetaEditor'da bool CompareDoubles işlevini bulamadım ...
https://www.mql5.com/en/articles/1561
Ya da, görünüşe göre, tam olarak anlamıyorum ya da daha doğrusu, bir kitaplığın ne olduğunu hiç anlamıyorum?
Ya da, görünüşe göre, tam olarak anlamıyorum ya da daha doğrusu, bir kitaplığın ne olduğunu hiç anlamıyorum?
Gerçek sayıları karşılaştırma işleviSöyle bana, lütfen, nasıl burada olacağım.
Dosyadaki sayıları ilgili dizilere okumak istiyorum.
dosyadaki sayılar şöyle görünür: 1.2121;1.2233;1.3434;1.4545
Onlar için diziler oluşturuyorum: double s1[], s2[], r1[], r2[]
Başlatma aşamasında şunu okudum:
ama maalesef diziler dolmaz...
Lütfen nasıl yapacağınızı tavsiye edin...
Посоветуйте, как тут быть....
İlk olarak, csv dosyalarında öğeler "," ile ayrılır ve ";" ile değil.
İkinci olarak, dizileriniz dosyanın her satırının ilk öğesiyle doldurulmalıdır, çünkü Önce tüm dizeyi FileReadString komutuyla çıkarır , ardından tek bir gerçek sayıya dönüştürürsünüz ve sonraki FileRead komutu dosyadaki bir sonraki satırda çalışır.
Okumayı şu şekilde düzenleyebilirsiniz:
for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}
Çalışmalı...ama emin değilim :)
İlk olarak, csv dosyalarında öğeler "," ile ayrılır ve ";" ile değil.
İkinci olarak, dizileriniz dosyanın her satırının ilk öğesiyle doldurulmalıdır, çünkü Önce tüm dizeyi FileReadString komutuyla çıkarırsınız, ardından tüm dizeyi tek bir gerçek sayıya dönüştürürsünüz ve sonraki FileRead komutu dosyadaki bir sonraki satırda zaten çalışır.
Okumayı şu şekilde düzenleyebilirsiniz:
for(;;) {
str=FileReadString(Handle);
s1[k] =StrToDouble(StringSubstr(str,0,6));
s2[k] =StrToDouble(StringSubstr(str,7,6));
r1[k] =StrToDouble(StringSubstr(str,14,6));
r2[k] =StrToDouble(StringSubstr(str,21,6));
k++;
if(FileIsEnding(Handle)) break;
}
Çalışmalı...ama emin değilim :)
Varsayılan ayırıcı ";" şeklindedir, ancak herhangi birini kullanabilirsiniz.Yazmadığın bir şey...
Varsayılan ayırıcı ";" şeklindedir, ancak herhangi birini kullanabilirsiniz.CSV - Virgülle Ayrılmış Değerler. Varsayılan sınırlayıcı olan ","'dir. ";" ile ayırma çok daha az yaygındır ve genel olarak MQL4'te desteklendiğinden emin değilim.
Yazmadığın bir şey...
Yazdıklarımda özellikle neyi beğenmedin?