Caratteristiche del linguaggio mql4, sottigliezze e tecniche - pagina 30

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
Ciao!
Qual è il modo corretto di usare il "doppio" nel ciclo "for"? Sembra che non ci sia alcun divieto di usare "doppio" nell'aiuto.
Comunque, la mia conclusione è che il "doppio" non è raccomandato nel ciclo"for" a causa della mancanza di normalizzazione di ExpressionZ dopo ogni iterazione. Questo può portare ad almeno 2 problemi:
1) Numero sbagliato di iterazioni;
2) Risultati sbagliati se usate ExpressionZ per calcolare in una dichiarazione.
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. Quindi la domanda rimane, si può usare il "doppio" in un ciclo e ottenere sempre il numero corretto di iterazioni?
Moltiplicare per 10 al grado giusto fino ad ottenere dei numeri interi. All'inizio ho fatto fatica anch'io, ora converto anche il prezzo in numeri interi e lavoro con i numeri interi o arrotondando ai numeri interi. Ho meno errori, migliore leggibilità.
In generale, come ha detto un programmatore dopo aver ricevuto i riassunti dello scambio, non capisco perché i numeri di una certa capacità di cifre siano rappresentati da numeri reali, piuttosto che da interi. Questo non è logicamente corretto. ))))
Moltiplicare per 10 al grado giusto fino ad ottenere dei numeri interi. All'inizio ho fatto fatica anch'io, ma ora converto anche il prezzo in un numero intero e lavoro con i numeri interi o arrotondando ai numeri interi. Ho meno errori, migliore leggibilità.
In generale, come ha detto un programmatore dopo aver ricevuto i riassunti dello scambio, non capisco perché i numeri di una certa capacità di cifre siano rappresentati da numeri reali, piuttosto che da interi. Questo non è logicamente corretto. ))))
Grazie, userò int alla vecchia maniera e poi dividerò per double. ;)
Grazie, ma anche il tuo esempio non ha dato il risultato giusto. In printf si può vedere che non avviene alcuna normalizzazione:
Scusa, avrei dovuto controllare. E qui abbiamo "volevo farlo bene, ma è risultato essere lo stesso di sempre".
Risultato
Codice corretto
Codice corretto
Fate attenzione a non mettere step=0.04 ;)
Fate attenzione a non mettere step=0.04 ;)
Questo è solo un consiglio per coloro che non sanno usare il loro cervello)))
Scusa, avrei dovuto controllare. È solo: "Avevo buone intenzioni, ma è sempre lo stesso".
Risultato
Codice corretto.
i=NormalizeDouble(i+step, 1)
Ah, grazie! Non ci ho pensato io. Questo è proprio il genere di cose che aiuta noi neofiti della programmazione! ;)
Sto cercandodei metodi per ordinare un array di strutture. Qualcuno ha qualche variante funzionante?
https://www.mql5.com/ru/forum/170952/page134#comment_11532251
https://www.mql5.com/ru/forum/170952/page134#comment_11532251
Non funziona...