Caratteristiche del linguaggio mql4, sottigliezze e tecniche - pagina 29
![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
L'ora è la stessa nella finestra deidati?
Sì.
Sì.
Capisco, quindi è davvero l'ora del bar. Ho solo avuto un sospetto sul parametro"Precise timeline".
Ciao!
Qual è il modo corretto di usare il "doppio" nel ciclo "for"? Sembra che non ci sia alcun divieto di usare "doppio" nell'aiuto. Capisco che devo normalizzare la "i", ma non funziona per me.
Se "expr2=2.6" è ancora ok per 9 iterazioni, ma quando "expr2=2.8" mostra già 9 iterazioni errate (il valore corretto è 10).
Ciao!
Qual è il modo corretto di usare il "doppio" nel ciclo "for"? Sembra che non ci sia alcun divieto di usare "doppio" nell'aiuto. Capisco che devo normalizzare la "i", ma non funziona per me.
Se "expr2=2.6" va ancora bene per 9 iterazioni, ma quando "expr2=2.8" mostra già 9 iterazioni errate (il valore corretto è 10).
Probabilmente devo normalizzare i valori.
Probabilmente bisogna normalizzare i valori.
Se intendevi questo, non è stato d'aiuto neanche questo:
Se intendevi questo, non è stato d'aiuto neanche questo:
No. Come minimo bisogna ottimizzarlo
perché è quello che vi dà il valore sbagliato. E gli altri potrebbero non doverlo fare.
Ciao!
Qual è il modo corretto di usare il "doppio" nel ciclo "for"? Sembra che non ci sia alcun divieto di usare "doppio" nell'aiuto. Capisco che devo normalizzare la "i", ma non funziona per me.
Se "expr2=2.6", allora tutto è normale 9 iterazioni, ma quando "expr2=2.8" mostra non correttamente 9 iterazioni (correttamente 10).
Qui potete trovare, leggete il post di Nikolay, una descrizione molto dettagliata e molto qualitativa del doppiohttps://www.mql5.com/ru/forum/1111/page2623#comment_14473837
Se non riuscite ad assimilare il materiale dalla prima volta, provate a sostituire Print() con printf() nel vostro codice con l'uscita del doppio almeno alla 15a cifrahttps://www.mql5.com/ru/forum/1111/page2623#comment_14474138.
Forse allora capirai perché è così
No. Come minimo bisogna ottimizzare questo
perché è quello che vi dà il valore sbagliato. E gli altri potrebbero non doverlo fare.
Grazie, ma anche il tuo esempio non ci ha dato il risultato giusto. In printf potete vedere che non avviene nessuna normalizzazione:
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.0000000000000000000000000000000000000000000000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.199999999999999999995559107901499373838305473327636718750000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.399999999999991111182158029987476766109466552734375000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.59999999999999999866773237044981212151491164199829101562500000000
0 10:29:31595 Test_Double_For EURCHF,H4: i = 1.7999999999999999982236431605997495353221893310546875000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.99999999999997779553950749686919152736638618359375000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 2.1999999999999997335464740899624302983283996582031250000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 2.399999999999999999119182158029987476766109466552734375000000000
0 10:29:31595 Test_Double_For EURCHF,H4: i = 2.6000000000000088817841970012523233890533447265625000000000
0 10:29:31595 Test_Double_For EURCHF,H4: MaxPass: 10 count: 9
0 10:29:31.595 Test_Double_For EURCHF,H4: Last i = 2.800000000002664535259100375697016716003417968750000000
Eccolo, leggete il post di Nikolay, ha descritto il lavoro con il doppio in grande dettaglio e con grande qualitàhttps://www.mql5.com/ru/forum/1111/page2623#comment_14473837
Se non riuscite a digerire il materiale dalla prima volta, provate a sostituire Print() con printf() con l'uscita del doppio almeno fino alla 15a cifrahttps://www.mql5.com/ru/forum/1111/page2623#comment_14474138.
Forse allora capirete perché è così.
Grazie, capisco perché succede, per questo ho cercato di normalizzarlo. Non ha funzionato per me. Anche l'opzione di Alexey Viktorov non ha risolto il problema, i valori rimangono non normalizzati. Quindi la domanda rimane, si può usare il "doppio" in un ciclo e ottenere sempre il numero corretto di iterazioni?
Quindi la domanda rimane, "doppio" può essere usato nel ciclo
può
e ottenere sempre il numero corretto di iterazioni?
il valore di double è sempre corretto, ma non corrisponde al sistema decimale posizionale che vorreste vedere o ottenere
Grazie, capisco perché questo accade, è per questo che ho cercato di normalizzare. Non ha funzionato per me. Anche l'opzione di Alexey Viktorov non ha risolto il problema, i valori rimangono non normalizzati
Qualsiasi manipolazione con la doppia conversione avrà sempre delle limitazioni, dubito che questo problema possa essere risolto come nei vostri esempi
Fate una soluzione affidabile: nel ciclo usate int e formula per calcolare il valore di risultato del doppio e non usate l'aggiunta del doppio come risultato durante le iterazioni nel ciclo - ancora una volta guardate il mio esempio nel dialogo con Nikolaev