
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
Voglio essere in grado di controllare i dati storici che uso in modo da poter ripetere i test (Strategy Tester) in condizioni controllate.
Quali condizioni controllate?
Grazie, grazie
Quali condizioni controllate?
Grazie.
Le condizioni che scelgo io, non quelle che sceglie il mio Broker. Come altro proponi di testare? Un insieme di condizioni casuali per ogni test? Ma non andiamo fuori tema.
Ho capito.
Grazie, grazie.
No. Se leggete il mio link e/o quello di RaptorUK, questo vi sarebbe più chiaro. Se no, rileggi :-D
1.000000000006551e-005 è semplicemente un'altra notazione per 0.000010000000006551.
Ciao angevoyageur,
1.000000000006551e-005
0.00001000000000006551
Il decimale del secondo doppio è spostato a sinistra cinque volte MA ;) non può essere restituito nel tester in questo formato perché i doppi restituiscono un valore massimo di sedici cifre (cifre significative) a destra di un decimale.
Moderatore
1651
Ciao comunità MQL5,
https://www.mql5.com/en/docs/common/comment
"Idati di tipo doppio sono emessi con la precisione fino a 16 cifre dopo la virgola, e possono essere emessi sia in formato tradizionale che in formato scientifico, a seconda di quale notazione sarà più compatta. I dati di tipo float vengono emessi con 5 cifre dopo la virgola. Per emettere numeri reali con un'altra precisione o in un formato predefinito, usate la funzione DoubleToString()".
Larappresentazione del prezzo di USDJPY in 98.370 è un dato di tipo float (uscita a 5 cifre dopo il decimale).
La rappresentazione del prezzo di USDJPY in -0.0019999999995339 è un dato di tipo double, formato tradizionale (output fino a 16 cifre dopo il decimale).
Perché il doppio -0.00199999999999533[9] restituisce una diciottesima cifra dopo il decimale se un output doppio è solo fino a 16 cifre dopo il decimale?
Grazie per l'aiuto.
I prezzi sono sempre doppi, 98.370 è un doppio. Ci sono 16 cifre significative. Gli zeri non sono significativi.
Se gli zeri non sono significativi, perché il valore 0.00001000000000006551 non potrebbe essere restituito nel tester invece di 1.000000000006551e-005? Preferirei fare i calcoli in formato 0.00001000000000006551 !
Grazie, grazie
Se gli zeri non sono significativi, perché il valore 0.00001000000000006551 non potrebbe essere restituito nel tester invece di 1.000000000006551e-005? Preferirei fare i calcoli in formato 0.00001000000000006551 !
Un numero in virgola mobile (doppio) è sempre tenuto internamente in questo formato... 1.000000000006551e-005, hai letto e capito le informazioni ai link indicati?
Da qui:numeri in virgola mobile
"Un float IEEE-754 (4 byte) o un double (8 byte) ha tre componenti (c'è anche un analogo formato a 96 bit a precisione estesa sotto IEEE-854): un bit di segno che dice se il numero è positivo o negativo, un esponente che dà il suo ordine di grandezza, e una mantissa che specifica le cifre reali del numero. Usando i float a singola precisione come esempio, ecco la disposizione dei bit:"
3 parti
Se volete vedere 0.00001000000000xyz allora usate DoubleToStr() per formattare l'output a vostro piacimento.
Un numero in virgola mobile (doppio) è sempre tenuto internamente in questo formato... 1.000000000006551e-005, hai letto e capito le informazioni ai link indicati?
Da qui:numeri in virgola mobile
"Un float IEEE-754 (4 byte) o un double (8 byte) ha tre componenti (c'è anche un analogo formato a 96 bit a precisione estesa sotto IEEE-854): un bit di segno che dice se il numero è positivo o negativo, un esponente che dà il suo ordine di grandezza, e una mantissa che specifica le cifre reali del numero. Usando i float a singola precisione come esempio, ecco la disposizione dei bit:"
3 parti
Se volete vedere 0.00001000000000xyz allora usate DoubleToStr() per formattare l'output a vostro piacimento.
Sì, ho letto tutti i tuoi link forniti e li ho trovati utili, grazie ancora per averli forniti. Il mio gusto sarebbe quello di incorporare DoubleToString e scegliere il valore del penultimo posto del doppio (esempio:CADJPY 95.9[5]9) come secondo parametro di DoubleToString. Non credo che questo problema "can price!=price" sia troppo difficile da risolvere! Cosa ne dite di questo?
Grazie a voi
Sì, ho letto tutti i tuoi link forniti e li ho trovati utili, grazie ancora per averli forniti. Mi piacerebbe incorporare DoubleToString e scegliere il valore del penultimo posto del doppio (esempio:CADJPY 95.9[5]9) come secondo parametro di DoubleToString. Non credo che questo problema "can price!=price" sia troppo difficile da risolvere! Cosa ne dici di questo?
Intendi qualcosa del genere?
Può il prezzo != prezzo è un problema diverso, ma leggermente collegato. Non può essere veramente risolto, prima devi capire qual è il problema . . . poi ci lavori intorno.
Quindi intendi qualcosa del genere?
Can price != price è un problema diverso, ma leggermente collegato. Non può essere veramente risolto, prima devi capire qual è il problema. . . poi ci lavori intorno.
Quali sono i tuoi pensieri su cosa sia questo problema "can price != price"?
Grazie a tutti
WhooDoo22:
...
I prezzi sono sempre doppi, 98,370 è un doppio. Ci sono 16 cifre significative. Gli zeri non sono significativi.
Se gli zeri non sono significativi, perché il valore 0.00001000000000006551 non potrebbe essere restituito nel tester invece di 1.000000000006551e-005? Preferirei fare i calcoli in formato 0.00001000000000006551 !
Grazie
Potrebbe essere, è solo una scelta di formattazione del valore di uscita.
È proprio perché gli zeri non sono significativi
Sì, ho letto tutti i tuoi link forniti e li ho trovati utili, grazie ancora per averli forniti. Il mio gusto sarebbe quello di incorporare DoubleToString e scegliere il valore del penultimo posto del doppio (esempio:CADJPY 95.9[5]9) come secondo parametro di DoubleToString. Non credo che questo problema "can price!=price" sia troppo difficile da risolvere! Cosa ne dite di questo?
Grazie.
Potrebbe essere, è solo una scelta di formattazione del valore di uscita.
È proprio perché gli zeri non sono significativi
Scusa ma non capisco questa frase."Scusa ma non capisco questa frase".
Grazie.