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
Tutto arriva gradualmente. Per prima cosa bisogna ricordare che le frasi sono scritte in lettere maiuscole e che lo stile dei versi spezzati non è assolutamente adatto a un forum. Poi si risolverà da solo con la normalizzazione e l'indicizzazione da zero.
Stavo aspettando questo commento )))))
non c'è niente di più naturale che digitare velocemente in stile chat room - una riga
è naturale come contare da 1.
e arrotondare un numero per farlo arrotondare allo stesso modo.
dai, dov'è il tuo flusso di commenti sarcastici pieni di formalismo?
La vita è più che punti e virgole opportunamente spaziati e formati binari.
è il flusso delle sensazioni e dovrebbe essere bello.
è libertà e creatività.
qual è la sua risposta a questo?
Vi state tutti prendendo gioco di me, vero?
Avevo solo bisogno di digitare un numero frazionario senza spazzatura
e mi stai dimostrando che ho torto.
mql non è un fine in sé, è uno strumento.
Penso che ci siano alcune cose ovvie, come - se mettete un numero in una variabile, lo stampate come lo mettete...
non importa come è organizzato internamente o come il numero è memorizzato, è a livello di sistema
ed è ovvio che queste code sono una sciocchezza e un difetto a livello di applicazione - non amichevole
Ma qui abbiamo di nuovo qualche battuta da programmatore: "questo non è un bug, questa è una caratteristica".
queste battute non sono apparse per niente, non per niente ))))))))
NormalizeDouble() è necessaria quando si inviano parametri calcolati come prezzi negli ordini di compravendita. Puoi inviare i prezzi Ask e Bid senza normalizzazione, perché sono già normalizzati alla capacità della cifra necessaria. Se si calcolano i prezzi, per esempio per un Bid-stopLoss*Point, allora questa espressione richiede una normalizzazione. Anche i prezzi degli ordini pendenti sono uguali: li si calcola in anticipo, quindi devono essere normalizzati.
Quando si confrontano due numeri reali, è necessario confrontare la loro differenza normalizzata con zero o con il valore minimo.
Quando volete vedere ciò che avete calcolato, usate DoubleToString() con la precisione che volete. IntegerToString() con i parametri che volete.
Questo è qualcosa che dovreste capire e imparare.
non c'è niente di più naturale che digitare velocemente in stile chat room - una riga
è naturale come contare da 1.
e arrotondare un numero per farlo arrotondare allo stesso modo.
dai, dov'è il tuo flusso di commenti sarcastici pieni di formalismo?
La vita è più che punti e virgole opportunamente distanziati e formati binari.
è il flusso delle sensazioni e dovrebbe essere bello.
è libertà e creatività.
cosa ne dici di questo?
La libertà... e qualcuno la trattiene con la forza?
Creatività ... creare, scrivere i propri wrapper per tutte le funzioni MK e godersi la bellezza.
NormalizeDouble() è necessaria quando si inviano parametri calcolati come prezzi negli ordini di compravendita. Puoi inviare i prezzi Ask e Bid senza normalizzazione, perché sono già normalizzati alla capacità di cifre richiesta. Se si calcolano i prezzi, per esempio per un Bid-stopLoss*Point, allora questa espressione richiede una normalizzazione. Anche i prezzi degli ordini pendenti sono uguali: li calcolate in anticipo, quindi devono essere normalizzati.
Quando si confrontano due numeri reali, è necessario confrontare la loro differenza normalizzata con zero o con il valore minimo.
Quando volete vedere ciò che avete calcolato, usate DoubleToString() con la precisione che volete. IntegerToString() con i parametri di cui avete bisogno.
Questo è qualcosa che è meglio capire e assimilare.
Sì, lo capisco molto bene, non si può inviare un ordine 1.234567 se la quotazione è un numero di 5 cifre.
Per quanto riguarda il confronto di numeri doppi, ho visto riferimenti a ..... ed è terribile.
ma per quanto ho capito è sicuro confrontare A>B finché A e B sono sensibilmente diversi
solo se si scopre che se, per esempio, imposto esplicitamente A=1,23456 e B=1,23456 e if(A==B) dà falso, allora questo è già un crimine
NormalizeDouble() è necessaria quando si inviano parametri calcolati come prezzi negli ordini di compravendita. Puoi inviare i prezzi Ask e Bid senza normalizzazione, perché sono già normalizzati alla capacità di cifre richiesta. Se si calcolano i prezzi, per esempio per un Bid-stopLoss*Point, allora questa espressione richiede una normalizzazione. Anche i prezzi degli ordini pendenti sono uguali: li si calcola in anticipo, quindi devono essere normalizzati.
Quando si confrontano due numeri reali, è necessario confrontare la loro differenza normalizzata con zero o con il valore minimo.
Quando volete vedere ciò che avete calcolato, usate DoubleToString() con la precisione che volete. IntegerToString() con i parametri di cui avete bisogno.
Questo è qualcosa che dovreste capire e imparare.
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...
più precisamente - nella versione originale era (string)current
cioè la conversione di un numero normalizzato a sinistra delle code
a volte (non sempre)
il problema di confrontare due doppi si pone se, per esempio, un numero è una costante e l'altro è calcolato dividendo/moltiplicando
Comunque grazie ancora per aver perso il vostro tempo su un umanitario senza speranza, se sto infastidendo qualcuno, scusate ancora, sto solo dicendo quello che penso senza malizia.
Buone notizie nel frattempo.