Ottenere il numero di posizioni decimali di qualsiasi numero (non solo le virgolette) bypassando Digits() in MQL4 e MQL5 - pagina 9
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
Non è affatto quello di cui stavo parlando. L'idea di convertire un duble in una stringa in modo da poter poi contare i caratteri nella stringa è una completa assurdità. Non importa cosa fai.
Qual è il problema? Finora, questa opzione è la più veloce, la più funzionale e garantita corretta. Quali sono le sue opzioni?
Sì, la mia variante non è probabilmente la migliore, ma dato che non ho mai trovato nulla al riguardo, è la migliore che mi è venuta in mente da sola, ho commentato sopra, mentre tu non hai suggerito la tua variante.
Ho confrontato queste varianti:
La variante stringa è leggermente più veloce, e non è limitata a 8 cifre come d(). E la garanzia di correttezza è data dal modo in cui il terminale visualizza il numero.
Scelgo la variante con conversione in stringa.
Qual è il problema? Finora, questa opzione è la più veloce, la più funzionale, garantita per essere quella giusta. Quali sono le sue opzioni?
Puoi citare almeno un caso di applicazione dell'algoritmo di cui sopra?
Puoi citare almeno un caso di applicazione dell'algoritmo di cui sopra?
C'era un caso in cui il pannello di trading emetteva la dimensione del lotto con il numero corretto di decimali nel campo di testo. Questo è l'unico caso.
C'è stato un caso in cui il pannello di trading ha emesso la dimensione del lotto con il numero corretto di cifre decimali nella casella di testo. Questo è l'unico caso.
Cioè emette "1" in caso di 1 lotto e "0.01" in caso di 0.01 lotto?
Quindi emette "1" nel caso di 1 lotto e "0,01" nel caso di 0,01 lotti?
Non esattamente. Dipende dal lotto minimo e dal passo del lotto. Se il lotto minimo è 0,01, allora 1 viene visualizzato come 1,00
Non proprio. A seconda del lotto minimo e dell'incremento del lotto. Se il lotto minimo è 0,01, allora 1 viene visualizzato come 1,00
O.o.
Quindi risulta che non stai usando la tua funzione, ma stai ancora visualizzando qualcosa come DoubleToString(LotSize, <qualche valore const>), no?
O.o
Quindi risulta che non usi la tua funzione, ma emetti comunque qualcosa come DoubleToString(LotSize, <qualche valore const>), no?
Sì, ma bisogna sapere quante cifre decimali emettere.
Sì, ma bisogna sapere quante cifre decimali emettere.
In altre parole, usi il min.lot (o l'incremento del lotto) inserito dall'utente per determinare quante cifre decimali ha questo valore, e poi lo salvi per normalizzare i valori futuri?
Cioè, si determina dal min.lot (o incremento del lotto) inserito dall'utente quante cifre dopo la virgola ci sono in quel valore, e poi lo si salva per normalizzare i valori futuri?
Cos'è che non capisci? Il prezzo ha Digits(), mentre il volume no. Ecco come si calcola.
Perché avete bisogno delle cifre del volume? La stessa ragione per cui abbiamo bisogno delle cifre dei prezzi!