MT5 e la velocità in azione - pagina 66

 

Per quanto riguarda il codice sorgente presentato

#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  for (int i = 0; i < 5; i++)
    _BV(Sleep(1), 1);
}

Se vuoi la velocità, dovresti rinunciare a questo mostro, perché ti stai rallentando.

Questo strumento di misurazione non è adatto perché introduce un errore enorme

Nel mio script ho messo

#define  ITERATIONS 5

Ecco il log per 5 iterazioni.

2020.11.04 16:37:24.430 TestSleep (EURUSD,H1)   total 9673 microseconds (1.935 ms per iteration)

Meno di 2 millisecondi.

 
fxsaber:
Gli sviluppatori, con il loro silenzio, hanno pienamente riconosciuto due problemi.

Gli sviluppatori hanno ammesso con il loro silenzio che non ci sono problemi.

 
Slava:

Ecco il log per 5 iterazioni

Meno di 2 millisecondi.

Il tuo copione.

2020.11.04 16:46:40.341 Test9 (EURCHF,M1)       total 67620 microseconds (13.524 ms per iteration)


Macchina.

2020.11.04 16:47:52.962 Terminal        Windows 10 build 19042, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 18 / 29 Gb disk, IE 11, Admin, GMT+2
 
Anton:

Gli sviluppatori hanno ammesso con il loro silenzio che non ci sono problemi.

Bello! È normale che le zecche arrivino con meno tempo rispetto al Market Review di prima?

 
fxsaber:

Bello! È normale che le zecche arrivino con meno tempo rispetto al Market Review di prima?

Normale.

Ho risposto a questa domanda 5 giorni fa, nello stesso thread:


SymbolInfoTick invia i dati ricevuti dal server del broker. Ciò che il server ha inviato è ciò che si ottiene.

Se ci sono domande sul flusso di tick trasmesso dal vostro broker, dovete contattare il vostro broker.

 
Slava:

La coda di esperti è una risorsa bloccabile. Quando un evento viene scritto nella coda, l'Expert Advisor attende (a meno che, ovviamente, l'Expert Advisor non stia elaborando un evento)

Gli eventi per l'Expert Advisor provengono dalla coda degli eventi del grafico corrispondente, che a sua volta proviene dal ciclo di elaborazione del simbolo corrispondente. E questo ciclo di elaborazione non solo distribuisce gli eventi ai propri grafici, ma fa anche un sacco di altre cose.

Vi ho già detto che Windows non è un sistema operativo in tempo reale.

Il compito è formulato molto semplicemente: come scrivere un Expert Advisor che non rallenti in attesa di una coda? Non si può usare un ciclo infinito perché Sleep è un freno. Quindi, la modalità asincrona non funzionerà affatto. Ora catturare le attese sotto forma di lunghi millisecondi non è affatto il punto.

 
fxsaber:

Il tuo copione.


E per 10.000 iterazioni?

 
Slava:

E per 10.000 iterazioni?

2020.11.04 17:09:30.483 total 155965249 microseconds (15.597 ms per iteration)

Invito altri a condividere il risultato dell'esecuzione di questo script sulla loro macchina.

 
Anton:

Va bene.

Ho risposto a questa domanda 5 giorni fa, nello stesso thread:

SymbolInfoTick invia i dati ricevuti dal server del broker. Ciò che il server ha inviato è ciò che si ottiene.

Se ci sono domande sul flusso di tick trasmesso dal tuo broker, allora dovresti contattare il tuo broker.

Ecco perché faccio una domanda ai proprietari di MQ-Demo.

 
fxsaber:

Il problema è formulato molto semplicemente: come scrivere un EA che non rallenti quando aspetta una coda? Un ciclo infinito è impossibile, perché Sleep è un freno. Quindi, il ciclo asincrono va fuori strada. Ora catturare le attese sotto forma di lunghi millisecondi non è affatto il punto.

Non ingannare te stesso e chi ti circonda.

Tutte le tue affermazioni qui descrivono un compito completamente diverso: come scrivere un Expert Advisor che non si senta lento su un hardware di 9 anni fa molto carico.