Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 90

 
Alexey Navoykov:

Ecco una variante che utilizza un timer winapi ad alta risoluzione, dando una precisione di 5,6e-13 secondi.

Di cosa stai parlando? Si scopre che la frequenza è 1786 GHz. E questa è la frequenza della radiazione infrarossa. :))
Hai appena confuso la frequenza con il contatore.
In realtà è 3,8e-07 secondi. Si tratta di un terzo di microsecondo. Non significativamente diverso dal MQL


 
Nikolai Semko:

Di cosa stai parlando? Si scopre che la frequenza è 1786 GHz. E questa è la frequenza della radiazione infrarossa. :))
Hai appena confuso la frequenza con il contatore.
In realtà è 3,8e-07 secondi. Si tratta di un terzo di microsecondo. Non è molto diverso da MQL.

Sì, è vero, ho sbagliato.

 
Alexey Navoykov:

Sì, è vero, mescolato)

Questa però è una vera soluzione.
Ho controllato - il loro contatore non reagisce al cambiamento dell'ora locale.
Quindi se ho bisogno di microsecondi e li uso per un lungo periodo di tempo - per favore usateKernel32.dll
Grazie!

Quindi è un bug dopo tutto, che per MQ è facile da risolvere.
 

Dobbiamo inviare richieste collettive al service-desk. Perché altrimenti è inutile. Hanno anche smesso di rispondere ai bug del compilatore. Ci sono molte richieste, ma tutte senza risultato.

Allo stesso modo, ho chiesto loro di creare i millisecondi TimeLocal e TimeCurrent (specialmente il secondo, perché è problematico implementarlo da solo).

 
Konstantin:

c'è un uso, può essere usato per scaricare la GUI, per esempio qui:

Oggetto di classe Canvas per tutto il grafico, disegnando dati in tabelle, dati cluster, livelli, ecc, se OnTimer è alzato al massimo e la GUI è messa lì (e faccio sempre esattamente così), allora senza ritardo un grafico carica il mio VPS di circa il 45-60%, se faccio un ritardo di 250, allora tutto è normalizzato al minimo, la grafica risponde ai pulsanti chiaramente, il sistema non si carica

Qual è la connessione tra GetMicrosecondCount() e OnTimer() discussa qui?
 
Alexey Navoykov:

Ecco una variante che utilizza un timer winapi ad alta risoluzione, dando una precisione di3,8e-07 secondi.

Ecco come contiamo i microsecondi
 
Renat Fatkhullin:
Ecco come contiamo i microsecondi

Renat, puoi sistemare il binding all'ora locale GetMicrosecondCount()?
Perché le conseguenze possono essere molto imprevedibili per chi non conosce questa caratteristica.




int OnInit()
  {
   EventSetMillisecondTimer(1000);
   return(INIT_SUCCEEDED);
  }
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
void OnTimer()
  {
    Comment("Программа уже работает: "+(string)(round(double(GetMicrosecondCount())/1000000.0))+" сек");
  }
 
No, è un timer relativo per misurare con precisione gli intervalli di tempo, non il tempo astronomico.
 
Renat Fatkhullin:
No, è un timer relativo per intervalli di tempo precisi, non il tempo astronomico.

Grazie, lo saprò.
Sono stato ingannato dal riferimento.

 
Renat Fatkhullin:
Ecco come calcoliamo i microsecondi

Perché non calcoliamo GetTickCount allo stesso modo? Allora il problema della risoluzione di 15 ms scomparirà e causerà alcuni problemi.

Motivazione: