[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 318
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
c'è una funzione "double MathRound( double value)", ma ho bisogno dell'arrotondamento ad una frazione decimale più grande, e se il numero è intero o già decimale, allora lascia perdere.
Per esempio: 1) 0,744 arrotondato a 0,8; 1,233 arrotondato a 1,3
2) 0,9 o 3 o 1,5 non toccare.
Non l'ho controllato, ma in qualche modo.
Gesto completamente inutile abbastanza doppio res=NormalizeDouble(res,1) gestisce ancora matematicamente doppio res = 3; o doppio res = 3.0;
La differenza sarà visibile solo nella stampa (grafico), ma questo non è nella descrizione del problema da parte dell'autore.
Gesto completamente inutile abbastanza doppio res=NormalizeDouble(res,1) gestisce ancora matematicamente doppio res = 3; o doppio res = 3.0;
La differenza sarà visibile solo nella stampa (grafico), ma questo non è nella descrizione del problema da parte dell'autore.
Bene, potete farlo in questo modo:
Penso che la prima variante sia migliore. Funzionerà più velocemente.Beh, si potrebbe fare così:
Penso che la prima opzione sia la migliore. Funzionerà più velocemente.Questa opzione.
dovrebbe essere il più veloce
La versione di Vadim è più veloce del 20-25%, ma l'effetto inizia a mostrarsi costantemente quando il numero di iterazioni supera il milione. (controllato)
Mostrami il codice, come l'hai controllato
La versione di Vadim è più veloce del 20-25%, ma l'effetto inizia a mostrarsi costantemente quando il numero di iterazioni supera il milione. (testato)
il modo corretto di scriverlo: if (OrderSelect (OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY) == OrderTakeProfit() == OrderClosePrice()) Stop=false // cioè se l'ultimo ordine dalla fine ha chiuso a Take Profit (prendendo profitto al raggiungimento di un certo livello), lo Stop=false? (Stop alle variabili globali)
questa domanda è sorta perché l'ordine si apre con una condizione if((iClose(NULL,0,1)<ma) && Stop==True)...
Mai confrontare, prese non normalizzate, inutili. E a proposito, il prezzo di chiusura di un ordine take può essere diverso dal prezzo take (reale/demo (online))
Quindi sarebbe più corretto misurare il modulo della differenza di prezzo, confrontandolo con il valore di prova.