pavlick_: Alcuni numeri possono essere rappresentati solo come una frazione infinita, come 1/3 nel sistema decimale. Ma 1/3 non è una frazione infinita nel sistema terziario, lì == 0,1. Cioè, diversi sistemi numerici hanno le loro frazioni infinite. Di conseguenza, una frazione non infinita in decimale può essere uno in binario. Per esempio: 0.1, 0.2, 0.3, 0.4, ... non hanno una rappresentazione binaria esatta. Se chiamate NormalizeDouble dieci volte, sarà o 0,19999999999...1 o 0,200000...1. Non so, forse questa è una novità.
Stai dicendo la verità! Per essere chiari, ND è necessario SOLO per il confronto, non per la rappresentazione. Ed è obsoleto da tempo.
pavlick_: Alcuni numeri possono essere rappresentati solo come frazioni infinite, per esempio 1/3 nel sistema decimale. Ma 1/3 non è una frazione infinita nel sistema terziario, lì == 0,1. Cioè, diversi sistemi numerici hanno le loro frazioni infinite. Quindi, una frazione non infinita in decimale può essere uno in binario. Per esempio: 0.1, 0.2, 0.3, 0.4, ... non hanno una rappresentazione binaria esatta. Se chiamate NormalizeDouble dieci volte, sarà o 0,19999999999...1 o 0,200000...1. Non so, forse questa è una novità.
Stai dicendo la verità! Per essere chiari, ND è necessario SOLO per il confronto, non per la rappresentazione. Ed è da tempo obsoleto.
NormalizeDouble è necessario solo per normalizzare il prezzo quando si piazzano ordini pendenti e stop. Non ne ha bisogno per altro.
Questo è chiaramente indicato nella documentazione
I valori di StopLoss e TakeProfit calcolati, così come i prezzi aperti degli ordini pendenti, devono essere normalizzati con la precisione, il cui valore può essere ottenuto da Digits().
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Alcuni numeri possono essere rappresentati solo come una frazione infinita, come 1/3 nel sistema decimale. Ma 1/3 non è una frazione infinita nel sistema terziario, lì == 0,1. Cioè, diversi sistemi numerici hanno le loro frazioni infinite. Di conseguenza, una frazione non infinita in decimale può essere uno in binario. Per esempio: 0.1, 0.2, 0.3, 0.4, ... non hanno una rappresentazione binaria esatta. Se chiamate NormalizeDouble dieci volte, sarà o 0,19999999999...1 o 0,200000...1. Non so, forse questa è una novità.
Stai dicendo la verità! Per essere chiari, ND è necessario SOLO per il confronto, non per la rappresentazione. Ed è obsoleto da tempo.
Alcuni numeri possono essere rappresentati solo come frazioni infinite, per esempio 1/3 nel sistema decimale. Ma 1/3 non è una frazione infinita nel sistema terziario, lì == 0,1. Cioè, diversi sistemi numerici hanno le loro frazioni infinite. Quindi, una frazione non infinita in decimale può essere uno in binario. Per esempio: 0.1, 0.2, 0.3, 0.4, ... non hanno una rappresentazione binaria esatta. Se chiamate NormalizeDouble dieci volte, sarà o 0,19999999999...1 o 0,200000...1. Non so, forse questa è una novità.
Me lo ricordo, ma in questo caso è 0+0 e non è 0.
Me lo ricordo, ma in questo caso è 0+0 e non è 0.
Stai dicendo la verità! Per essere chiari, ND è necessario SOLO per il confronto, non per la rappresentazione. Ed è da tempo obsoleto.
NormalizeDouble è necessario solo per normalizzare il prezzo quando si piazzano ordini pendenti e stop. Non ne ha bisogno per altro.
Questo è chiaramente indicato nella documentazione
I valori di StopLoss e TakeProfit calcolati, così come i prezzi aperti degli ordini pendenti, devono essere normalizzati con la precisione, il cui valore può essere ottenuto da Digits().
In quale caso particolare? Fammi un esempio di quando questo accade.
questo succede quando c'era 0 nella variabile e vi si aggiunge 0
(Ho il sospetto che in realtà non sia 0)
NormalizeDouble è necessario solo per normalizzare il prezzo quando si piazzano ordini pendenti e stop. Non ne ha bisogno per altro.
Questo è chiaramente indicato nella documentazione
questo succede quando c'era 0 nella variabile e vi si aggiunge 0
(Ho il sospetto che in realtà non sia 0)
Esattamente. Gli zeri "reali" nell'addizione e nella sottrazione rimangono zeri. Ecco perché vi ho offerto un esempio.
Che ne dici di confrontare i numeri reali...
Un effetto collaterale correlato.
Si è rivelato conveniente. Ma non era originariamente destinato ad essere usato in questo modo.
Ci sono funzioni speciali per stampare il numero reale con la giusta precisione.
Ditemi, perché avete bisogno di arrotondare i numeri reali nei calcoli? Perché in questo caso si perde la precisione dei calcoli!
Esattamente. Gli zeri "reali" nell'addizione e nella sottrazione sono ancora zeri. Ecco perché vi ho offerto un esempio.
NormalizeDouble è necessario solo per normalizzare il prezzo quando si piazzano ordini pendenti e stop. Non ne ha bisogno per altro.
Questo è chiaramente indicato nella documentazione
Forum sul trading, sistemi di trading automatico e test di strategia
Implementazioni alternative di funzioni/approcci standard
Renat Fatkhullin, 2016.09.02 00:55
Questo non è il modo per sovraccaricarsi. Stesse firme di funzioni.
Ma l'idea è chiara: la funzione di normalizzazione che tiene conto della granulazione delle zecche.