MT5 Per coloro che si preoccupano della velocità. - pagina 12

 
shelandr:

Non capisco la domanda... EA gestisce ogni tick. I tick sono di solito 2-3 al minuto, sui movimenti di prezzo la frequenza aumenta a qualcosa come 200 al minuto - o 4-5 al secondo (non pensate che ho tradotto erroneamente in minuti in secondi - c'è un altro rapporto). Non so se mi sbaglio sul minuto o sul secondo - è più preciso, posso controllare visivamente il carico della CPU, eccetto per le operazioni commerciali sincrone che inevitabilmente rallentano il processo e probabilmente bloccano i tick in arrivo.

Bene, che si sappia che né l'EA né lo script possono bloccare i tick che entrano nel terminale. Ma cosa sto dicendo - vai avanti e scema.
 
TheXpert:
Si sappia che né gli EA né gli script possono bloccare i tick che entrano nel terminale.

Non ho detto che stavano bloccando... solo fisicamente le porte del modem-scheda di rete se non sono gigabit non possono far passare tutto. anche il traffico internet è imprevedibile.

Ma le operazioni di trading sincrone sono bloccate... imparate la matematica.

Gli indicatori non bloccano - lavorano nel flusso. Ma gli script e gli Expert Advisors rallentano (ce n'è uno nella documentazione di MT4).

 
shelandr:

Penso che se aumento la larghezza di banda del canale anche le frequenze massime aumenteranno... Probabilmente non ho il tempo di ricevere tutti i tick...

Forum sul trading, sistemi di trading automatico e test di strategia

MT5 Per coloro che si preoccupano della velocità.

shelandr, 2013.07.02 08:24

Ho una buona idea di usare il mio robot di trading, non posso ancora fare trading robot, non posso tornare al robot di trading, non voglio usare il mio robot di trading come riferimento, devo imparare come fare trading robot, e non voglio cambiare il mercato.

Forse dovresti farlo, invece di fare la stessa domanda 10 volte.
 
papaklass:

Per chiarire.

1. Memorizzate l'ora di inizio dell'esperto nel prossimo tick.

2. Quando Expert Advisor ha lavorato un tick, sottrae dal tempo corrente il tempo che hai memorizzato all'inizio.

Se la differenza è più di 6 ms, significa che non è il canale che rallenta l'EA, ma il tuo EA non può far fronte alla velocità del canale.

Ho tale contatore in MT5 - mostra 0 ms. Non ci sono millisecondi in MT4. Misuro anche l'inerziale tra i tick, a volte visualizza 3000 ms.

Ho anche bisogno di misurare l'uptime del terminale, funziona anche questo. Ma 6 ms non ha niente a che vedere con questo - lo scambio con il server è in un tempo diverso e dipende dalla lunghezza del pacchetto, che può variare... Lo stesso, non sanno se hanno formato mestieri e informazioni su posizioni, ordini, ecc in un pacchetto separato o aggiunto al pacchetto di tick (l'ho divulgato all'inizio).

Ho guardato meglio ora e a volte Lavoro = 16 ms. Anche se il mercato è tranquillo. L'intervallo è di circa 500 msec.

 
sion:
Forse dovresti fare così invece di chiedere la stessa cosa 10 volte.
Lo faccio anche io. Inoltre, non è che sto chiedendo, sto rispondendo o -comunicando-.
 
papaklass:

Puoi facilmente controllare la velocità del kalala internet usando lo stesso metodo.

È necessario ricordare il tempo prima di OrderSend(); e confrontarlo con il tempo dopo la ricezione del biglietto d'ordine.

Lafunzione GetTickCount() vi aiuterà a misurare i millisecondi.

Ora guardo con più attenzione: a volte Lavoro = 16 ms. Anche se il mercato è tranquillo. L'intervallo è di circa 500 ms.

Anche se non ci sono scambi.

Ora ho provato a chiudere una posizione e ha mostrato 36 ms.

E ora il minimo ha mostrato 64 ms. Cosa può significare una tale diffusione.

 
shelandr:

Ora ho guardato più da vicino e a volte Work = 16ms sfugge. Anche se il mercato è tranquillo. L'intervallo è di circa 500 ms.

Anche se non ci sono scambi.

Ora ho provato un'operazione di trading per chiudere una posizione ha mostrato 36 ms.

E ora il minimo ha mostrato 64 ms. Cosa può significare una tale variazione.

La precisione della misurazione del tempo attraverso GetTickCount è entro 16 ms.

Quindi, non ci si può fidare del tempo entro 32 ms. Con tempi reali che vanno da 0 a 31 ms, le risposte di GetTickCount possono essere arrotondate a 0 o 16 più spesso.

 
shelandr:
È quello che faccio anch'io. Inoltre, non è che sto chiedendo, ma rispondendo o comunicando.
Se rispondi, mi chiedo cosa intendi per "le frequenze massime aumenteranno...", in particolare la dipendenza di queste frequenze dalla velocità del canale...?
 
Renat:

La precisione della misura del tempo di GetTickCount è entro 16 ms.

Cioè, non ci si può fidare delle misurazioni entro 32 ms. Con un tempo reale tra 0 e 31 ms, le risposte di GetTickCount possono spesso essere arrotondate a 0 o 16.

Grazie... Ho capito il problema... Ho in Expert Advisor:finish =GetTickCount();
Quindi non c'è niente da misurare. Perché mi sto chiedendo perché ho 0 - non ho bisogno di misurare in microsecondi...
 
shelandr:
Inoltre, non è che sto chiedendo, sto rispondendo o -comunicando-.

senza offesa

ma le vostre risposte sono più o meno così.