[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 470
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Разные приёмы? Какие, например?se (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }
if (NormalizeDouble(a, 4)==NormalizeDouble(b, 4)) { ... }
Ci ho provato anch'io, e per sicurezza, al posto di Digits ho scritto 4, poi 5, poi 6... Non funziona!
https://www.mql5.com/ru/articles/1561
Grazie! In effetti, l'articolo è molto informativo. Ma non ho trovato la funzione bool CompareDoubles in MetaEditor...
https://www.mql5.com/ru/articles/1561
O forse non capisco bene, o piuttosto non capisco affatto cosa sia una biblioteca?
O forse non capisco bene, o piuttosto non capisco affatto cosa sia una biblioteca?
Una funzione per confrontare i numeri realiPotresti per favore dirmi cosa fare qui?
Voglio leggere i numeri da un file negli array corrispondenti.
I numeri del file sono i seguenti: 1.2121;1.2323;1.3434;1.4545
Preparo i seguenti array per loro: double s1[], s2[], r1[], r2[]
nella fase di inizializzazione leggo come segue
ma, sfortunatamente, gli array non sono riempiti...
Consigliare come essere qui....
Посоветуйте, как тут быть....
Primo, nei file csv, gli elementi sono separati da "," non ";"
Secondo, dovete riempire gli array con il primo elemento di ogni linea del file, perché prima recuperate l'intera linea con FileReadString, poi la convertite in un singolo numero reale, e il prossimo comando FileRead funziona già con la prossima linea del file.
Puoi organizzare la lettura nel modo seguente:
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;
}
Dovrebbe funzionare... ma non necessariamente :)
In primo luogo, nei file csv, gli elementi sono separati da "," non da ";".
In secondo luogo, gli array devono essere riempiti con il primo elemento di ogni stringa di file, perché prima si recupera l'intera stringa con il comando FileReadString, poi si converte l'intera stringa in un singolo numero reale, e il successivo comando FileRead funziona già con la riga successiva del file.
Puoi organizzare la lettura in questo modo:
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;
}
Dovrebbe funzionare... ma non sono sicuro :)
Il delimitatore predefinito è ";", anche se potete usare qualsiasi delimitatore.Stai scrivendo qualcosa di sbagliato...
Il delimitatore predefinito è ";", anche se si può usare uno qualsiasi.CSV - Comma Separated Values. Il "," è il delimitatore predefinito. Separare con ";" è molto meno comune, e non sono sicuro che sia supportato in MQL4.
Stai scrivendo qualcosa di sbagliato...
Cosa esattamente non ti piace di quello che scrivo...?