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
Quello che mi preoccupa è che quando calcolo un numero frazionario, lo normalizzo, lo scrivo in una variabile, poi lo leggo e lo normalizzo di nuovo, ottengo delle code
ad esempio
basis[0]=NormalizeDouble(sum_A,2);
GlobalVariableSet("Equity-"+portfolio_id,basis[0]);
...
current=NormalizeDouble(GlobalVariableGet("Equity-"+portfolio_id),2);
text = "Positions synchronized at " + current + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
Ora l'ho cambiato in
text = "Positions synchronized at " + DoubleToStr(current,2) + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
e non sembrano esserci code, whew, whew, whew...
Ho già scritto, lo ripeto: alcuni numeri non esistono in binario. Non c'è lo 0,1, lo 0,3 e molti altri. Non importa quante volte scriviate double val = NormalizeDouble(0.1434, 1), non otterrete mai 0.1 solo perché non esiste un tale numero.
Per esempio, i numeri sono rappresentati come segue:
0.1 = 0.100000000000000000001
0.2 = 0.2000000000001
0.3 = 0.2999999999999999999999999
0.4 = 0.400000000000002
0.6 = 0.5999999999999999998
ma
0.125 = 0.125
0.25 = 0.25
0.5 = 0.5
Se questo è molto fastidioso, è necessario arrotondare o scrivere la propria bicicletta per rappresentare i numeri frazionari (ci possono essere alcune librerie, non mi interessa) che non useranno fpu.
E nessuna coda viene aggiunta durante la conversione in stringa, ci sono inizialmente.
Quindi ho risolto la mia domanda, possiamo chiudere l'argomento
soluzione: dovete forzare l'arrotondamento, anche dopo la normalizzazione
molto probabilmente... ma in termini di risultato finale - ci sono le code!
...
Non ci sono code dopo la normalizzazione.
Credo che lei stia ingannando l'uomo. Cosa significa che non ci sono code dopo la normalizzazione? Non ci possono essere code solo nella stringa che abbiamo ottenuto da un numero e arrotondato il valore (arrotondato già nella stringa, non nel doppio). Ma ci sono delle code dopo NormalizeDouble().
Soluzione sbagliata. Quando si arrotonda, bisogna moltiplicare, arrotondare, dividere. Dopo l'ultima divisione il numero non sarà normalizzato.
Cosa intende per normalizzazione? Stringo diceva qui che l'algoritmo è qualcosa del genere:
Credo che lei stia ingannando l'uomo. Cosa significa che non ci sono code dopo la normalizzazione? Non ci possono essere code solo nella stringa che abbiamo ottenuto da un numero e arrotondato il valore (arrotondato già nella stringa, non nel doppio). Ma dopo NormalizeDouble() ci sono delle code.
Cosa intende per normalizzazione? Stringo diceva qui che l'algoritmo è qualcosa del genere:
Ti sto facendo una domanda specifica e tu mi stai versando acqua addosso. Come è normale spiegare e argomentare il proprio punto di vista?
Leggere i libri di testo e la documentazione ad alta voce o cosa? O leggere il dizionario ad alta voce, sulla parola "circa"?