Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 94
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
e come vedi l'applicazione pratica di GetMicrosecondCount che rovina l'intero lavoro del programma nella versione attuale? descrivi l'applicazione pratica
per esempio, non vedo nessuna variante né in c++ né qui, tranne quelle descritte da Renat, cioè misurare il tempo di esecuzione del codice con precisione in mcs
Non capisco la sua persistenza, francamente parlando
La portata di questa funzione è abbastanza estesa, se avete un volo di fantasia.
Ho già menzionato sopra il multitimer che permette di eseguire diversi timer con periodi diversi allo stesso tempo.
Questo è anche ciò che fxsaber ha già scritto.
La funzione microsecondi rispetto alla funzione millisecondi è utile non solo per testare la velocità, ma anche per ottenere varie informazioni di telemetria durante l'esecuzione di Expert Advisors.
Se la precisione di tale telemetria è di 16 ms (più precisamente 1/64 s = 15625 microsecondi) - questo è un errore molto grande.
Configurato, ma non aiuta - non capisco la ragione. Vero, il mio server è ntp2.stratum2.ru
Se usate GetTickCount per intervalli così lunghi, non dovreste avere problemi.
Si verificheranno dei problemi se si usa GetMicrosecondCount.
Se usare la funzione microsecondi è una questione di principio, è meglio usare questa variante della funzione.
Informazioni di cui prendere nota:
Tempo approssimativo di esecuzione delle funzioni:
- GetTickCount - ~ 2 ns
- GetMicrosecondCount - ~ 30 ns
-RealMicrosecondCount - ~ 40 ns
Se usate GetTickCount per intervalli così lunghi, non dovreste avere problemi.
Si verificheranno dei problemi se si usa GetMicrosecondCount.
Se usare la funzione microsecondi è una questione di principio, è meglio usare questa variante della funzione.
Informazioni da prendere in considerazione:
Tempo approssimativo di esecuzione delle funzioni:
- GetTickCount - ~ 2 ns
- GetMicrosecondCount - ~ 30 ns
-RealMicrosecondCount - ~ 40 ns
Sto usando il codice di qualcun altro e non ci sono affatto queste funzioni, ma si verifica questo effetto di desincronizzazione.
Qual è la probabilità di cambiare il tempo locale del computer tra due chiamate a GetMicrosecondsCount usate per misurare il tempo in microsecondi?
Questo dipende, prima di tutto, dal periodo impostato di sincronizzazione dell'ora del sistema con l'ora di Internet. Per esempio, ho impostato la sincronizzazione una volta al giorno, e durante questo periodo c'è più di 1 s di differenza. Qualcuno si sincronizza una volta all'ora, o anche più spesso. Quindi, calcola la probabilità.
...perché so già di tale caratteristica di GetMicrosecondCount() e che questa funzione è più lenta di GetTickCount.
Suppongo che questa lentezza sia dovuta al fatto che oltre ad ottenere il PerfomanceCount nativo, esso fa anche scatti sull'ora locale, quindi dobbiamo pagare per questo servizio ribassista. Se confrontassimo direttamente la velocità di PerfomanceCount e GetTickCount, la differenza sarebbe molto più piccola.
Anche se, francamente, non capisco tutto questo discorso sulla velocità di esecuzione quando si parla di 2-20 nanosecondi. Questa differenza può essere sentita solo quando si esegue un ciclo quasi vuoto (con questa funzione) per cento milioni di iterazioni. Questa soluzione stessa è progettata in modo errato.
E sì, sarete ugualmente spazzati via da una funzione WinAPI pura (sia GetTickCount che QueryPerformanceCounter) quando infilate uno scarto nella motosega cambiando la data anche di pochi secondi. Non c'è nessuna protezione che si dice di avere. Succhiato dal dito come problema e presunta soluzione.
Quindi è tutto vero - questo è come WinAPI e questa è la realtà.
Ti sbagli, ho specificamente citato il codice qui usando WinApi. Eseguilo, cambia l'orologio nel processo e vedi il risultato.
Non è molto chiaro come condurre un qualsiasi dialogo con te, se i tuoi argomenti sono basati su speculazioni. E non consideri nemmeno necessario conoscere la discussione sull'argomento.
Il campo di applicazione di questa funzione è abbastanza esteso, se avete un volo di fantasia.
Ho già parlato sopra del multitimer, che permette di eseguire diversi timer con periodi diversi allo stesso tempo.
Questo è anche quello di cui ha già scritto fxsaber.
La funzione microsecondi rispetto alla funzione millisecondi è utile non solo per testare la velocità, ma anche per ottenere varie informazioni di telemetria durante l'esecuzione di Expert Advisors.
Se tale telemetria è precisa a 16 ms (più precisamente 1/64 s = 15625 microsecondi), è un errore abbastanza grande.
Misuro costantemente la velocità di esecuzione, come ha scritto Renat, non ho mai visto alcun problema, sembra che ti avvolgi dal nulla, o non vuoi cambiare ciò che è stato scritto prima, succede quando si ottiene tutto invano, senza offesa, ma lo stesso multitimer che hai citato può essere facilmente implementato senza alcun errore, ma si deve pagare per questo, Renat ha anche dato una descrizione in risposta alla mia domanda sopra
La bocca della Verità è muta per i non iniziati.
beh, sì ))
Dipende, prima di tutto, dal periodo impostato di sincronizzazione dell'ora del sistema con l'ora di Internet. Per esempio, ho impostato la sincronizzazione una volta al giorno, e durante questo periodo c'è più di 1 secondo di divergenza. Qualcuno ce l'ha una volta all'ora, o anche più spesso. Qui si può stimare la probabilità.
Sei sicuro di aver letto tutta la domanda?
...tra due chiamate a GetMicrosecondsCount...