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 è per il confronto, allora si potrebbe facilmente creare la propria funzione:
È solo un pensiero.
Se è per il confronto, si potrebbe facilmente creare la propria funzione:
È solo un pensiero.
È un buon pensiero, grazie :-)
L'uso di "Point" o "Point/2.0" non è un valore di differenza molto buono, IMO. L'errore di arrotondamento introdotto da NormalizeDouble (che mi ha bruciato oggi), è certamente molto più piccolo di 8 cifre, più probabilmente 15 cifre.
Visti i suggerimenti precedenti, ho apportato alcune modifiche e messo insieme la seguente routine che sembra funzionare bene (anche usando il "diff" a 15 cifre decimali), anche se non è stata ancora testata rigorosamente:
Here is a check of the obvious:
Ecco un'altra possibile routine che può confrontare, ma può anche normalizzare internamente sia A e/o B, e anche rilassare la differenza di confronto (di A-B o B-A) a un numero più grande basato su "cifre". Dubito che questa routine sia necessaria rispetto alla semplice "AvsB" di cui sopra, ma è offerta per il vostro uso come desiderato:
L'uso di "Point" o "Point/2.0" non è un valore di differenza molto buono, IMO. L'errore di arrotondamento introdotto da NormalizeDouble (che mi ha bruciato oggi), è certamente molto più piccolo di 8 cifre, più probabilmente 15 cifre.
Volete il valore più grande che non può essere considerato un errore di arrotondamento o, equivalentemente, il valore più piccolo che non può essere considerato un cambiamento di prezzo. Poiché i prezzi possono cambiare solo di un multiplo di punto, punto/2 è proprio questo.
Il valore doppio dal broker potrebbe essere ovunque da 1.23457500000000 a 1.23458499999999999 ed essere ancora considerato lo stesso prezzo 1.23458.
Se avessi usato questo, non avresti avuto il problema:
if (a > b)
if (a >= b)
if (a != b)
dovremmo evitare di usare normalisedouble?
o forse... ho pensato che possiamo usare lafunzione MathRound
ex . doppio x= (MathRound( 1.37883 * 100000)) / 100000 ;
così possiamo fare la funzione
*Usa NormalizeDouble solo nei calcoli che coinvolgono un valore doppio, non ovunque ci sia un doppio.
dovremmo evitare di usare normalisedouble?
o forse... ho pensato che possiamo usare la funzione MathRound
ex . doppio x= (MathRound( 1.37883 * 100000)) / 100000 ;
Si finisce ancora con un doppio e ancora la possibilità di prezzo != prezzo
Sono arrivato a questa soluzione che trasforma i doppi in ints allo scopo di confrontare i doppi . . .
in modo che . . .
non sarà mai vero.