nuovo mql4 che fornisce millisecondi in timestamps.... - pagina 2

 
Siate consapevoli se i millisecondi e i nanosecondi sono così importanti che questi tic arrivano su internet (IO legato alla rete). La risoluzione temporale in nonosecondi è probabilmente eccessiva, a meno che non stiate progettando qualcosa di cattivo!
 
angevoyageur:
Non ci sono queste informazioni nemmeno in mql5. Ma ci sono eventi Timer che possono essere usati con precisione di millisecondi, anche se non so se questa caratteristica sarà disponibile con il nuovo mql4.

L'equivalente attuale di mql4 è qualcosa come sotto:

void start(){
    while(true){
        do_something....;
        Sleep(1000); //Sleep for one Second.
        RefreshRates();
    }
}

void start(){
    static bool RunOnce;
    if(RunOnce) return;
    int Begin=GetTickCount();
    while(GetTickCount()<Begin+1000){
        Print("GetTickCount()="+GetTickCount());
        Sleep(1);
    }
    RunOnce=true;
}

Ho testato il GTC e sembra saltare di 16_millisecondi. Per scoprire che è probabilmente una sorta di limitazione di Computer_Science sui sistemi legacy. Se qualcuno vuole spiegarmi il perché [ nonostante le mie divagazioni ] ne sarò felice. Hummm, mi chiedo se mql5 ha le stesse limitazioni? Va bene, un altro test in arrivo :)

 

Vale sempre la pena di scoprire quale funzione API di Widows hanno incapsulato gli sviluppatori di MQL.

In questo caso la risposta è facile - hanno usato GetTickCount Dice:

Larisoluzione della funzioneGetTickCount è limitata alla risoluzione del timer di sistema, che è tipicamente nell'intervallo da 10 millisecondi a 16 millisecondi.

 

Ho cercato su Google e, anche se non capisco bene, sembra che GetTickCount() sia una funzione direttamente dal sistema operativo Windows. Non è pensata per essere accurata e non dovrebbe essere usata per cose che hanno bisogno di essere accurate a livello di millisecondi (anche se restituisce valori in millisecondi).

Ho fatto delle prove con sleep e con get tick count e ci sono sempre degli errori, è difficile dire se sono causati da Sleep o da GTC ma la mia ipotesi è entrambi

 
Ovo:

Vale sempre la pena fare uno sforzo per scoprire quale funzione API di Widows hanno incapsulato gli sviluppatori MQL.

In questo caso la risposta è facile - hanno usato GetTickCount Dice:

Larisoluzione della funzioneGetTickCount è limitata alla risoluzione del timer di sistema, che è tipicamente nell'intervallo da 10 millisecondi a 16 millisecondi.

Grazie.
 
ubzen:

L'equivalente attuale di mql4 è qualcosa come qui sotto:

Ho testato il GTC e sembra saltare di 16_millisecondi. Per scoprirlo, è probabilmente una sorta di limitazione di Computer_Science sui sistemi legacy. Se qualcuno vuole spiegarmi il perché [ nonostante le mie divagazioni ] ne sarò felice. Hummm, mi chiedo se mql5 ha le stesse limitazioni? Va bene un altro test in arrivo :)

La limitazione di 16 millisecondi deriva da una limitazione hardware, ma ci sono altri modi per ottenere una migliore precisione del timer.
mql5 ha la stessa limitazione per GetTickCount() ma come ho cercato di spiegare sopra ci sono altre caratteristiche che possono essere usate (eventi del timer).

 
Ovo:

Vale sempre la pena di scoprire quale funzione API di Widows hanno incapsulato gli sviluppatori di MQL.

In questo caso la risposta è facile - hanno usato GetTickCount Dice:

Larisoluzione della funzioneGetTickCount è limitata alla risoluzione del timer di sistema, che è tipicamente nell'intervallo da 10 millisecondi a 16 millisecondi.


Sì, è quello che dice, ma è difficile sapere cosa significa veramente. Se la risoluzione è 16 ms, mi aspetterei di vedere valori di 0,16,32,48.. ecc.

Non vedo mai niente tra 0 e 16, ma vedo ogni valore intorno a 16.

 
angevoyageur:

La limitazione di 16 millisecondi deriva da una limitazione hardware, ma ci sono altri modi per ottenere una migliore precisione del timer.
mql5 ha la stessa limitazione per GetTickCount() ma come ho cercato di spiegare sopra ci sono altre caratteristiche che possono essere usate (eventi del timer).

Capito :)
 
RaptorUK:
Volume è un brutto nome per quello che in realtà è "Tick count" . . . non ha nulla a che fare con il volume/lotti scambiati . . . la ragione per cui può cambiare di più di 1 è perché si possono perdere tick.


Grazie per le informazioni. Mi chiedo come ho fatto a non notarlo prima. In questo caso, sembra un'informazione abbastanza inutile (o fuorviante).

Devo davvero cercare i dati reali del volume di livello 2 da alcuni broker. Fortunatamente il mio broker ECN offre dati di trading di livello2 con volume reale.