Testare 'CopyTicks'. - pagina 46

 
Igorz2006:
Grazie, ci darò un'occhiata

Vedi anche questa risposta alla tua domanda:

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

Expert Advisor universale per Cryptoexchange per più di una coppia!

Vladimir Karputov, 2020.05.18 14:29

È necessario connettersi a un server di trading che trasmette le quotazioni delle criptovalute e poi eseguire

Scarica la storia dei prezzi#


 
installato mt4, lo rende facile
 

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

MT5 e la velocità in azione

fxsaber, 2020.06.01 11:43

Qual è la ragione per cui questo EA non si allerta?
const MqlTick GetMarketWatchTick( void )
{
  MqlTick Tick = {0};
  
  ::SymbolInfoTick(_Symbol, Tick);
  
  return(Tick);
}

const MqlTick GetLastHistoryTick()
{
  MqlTick Tick[1];
  
  ::CopyTicks(_Symbol, Tick, COPY_TICKS_ALL, 0, 1);
  
  return(Tick[0]);
}

void OnTick()
{
  if (GetMarketWatchTick().time_msc > GetLastHistoryTick().time_msc) // Тик из Обзора рынка свежее, чем последний тик из истории.
    Alert("Hello!");
}


Allo stesso tempo lo stesso controllo, cucito nel live trading EA sullo stesso terminale, Alertit. Quale potrebbe essere la ragione di questo?

 

Negli episodi precedenti.

A sinistra c'è una richiesta sul Combat Terminal per un intervallo di 10 secondi del giorno corrente. Combat - in esecuzione per diversi giorni, su ogni tick chiama CopyTicks* per ottenere tick freschi.

A destra - appena iniziato Terminal, richiedendo lo stesso intervallo di 10 secondi.

Potete vedere che ci sono altre cinque zecche sulla destra. Significa che il DB di zecche è formato con errori nel terminale.

Siate vigili! MT5 salta i propri tick storici, che arrivano (ho controllato) a OnTick tramite SymbolInfoTick.

 
fxsaber:

Negli episodi precedenti.


Siate vigili! MT5 salta i propri tick storici che sono arrivati (controllati) a OnTick tramite SymbolInfoTick.

È triste, sto usando un flusso di dati intensamente tick nel mio lavoro. Non è chiaro se si tratta di un errore terminale o se è voluto.

 
fxsaber:

Negli episodi precedenti.

A sinistra c'è una richiesta sul Combat Terminal per un intervallo di 10 secondi del giorno corrente. Combat - in esecuzione per diversi giorni, su ogni tick chiama CopyTicks* per ottenere tick freschi.

A destra - appena iniziato Terminal, richiedendo lo stesso intervallo di 10 secondi.

Potete vedere che ci sono altre cinque zecche sulla destra. Significa che il DB di zecche è formato con errori nel terminale.

Siate vigili! MT5 salta i propri tick storici, che arrivano (ho controllato) a OnTick tramite SymbolInfoTick.

A prima vista, sembra più un bug che un filtraggio consapevole per qualche motivo (le zecche mancanti non sembrano distinguersi). O mi sbaglio?

 
Maksim Emeliashin:

Purtroppo, nel mio lavoro uso intensamente il flusso di dati tick. Non è chiaro se si tratta di un bug del terminale o se è destinato ad esserlo.

Aleksey Nikolayev:

A prima vista, sembra più un bug che un filtraggio deliberato per qualche scopo (le zecche mancanti non sembrano risaltare molto). O mi sbaglio?

Il terminale genera un database di tick per il giorno corrente, se non ci sono errori di connessione. È molto più veloce ed economico.

Ma c'è un errore in questo algoritmo di formazione del database delle zecche.

 
fxsaber:

Il terminale genera un database di tick per il giorno corrente se non ci sono interruzioni di connessione. Questo è molto più veloce ed economico.

Ma c'è un errore in questo algoritmo di generazione del database delle zecche.

E se lo richiediamo alla fine della giornata, c'è già un vuoto?

Tesi dubbia sull'assenza di errori di connessione, le scansioni/commutazioni avvengono regolarmente.

Se i tic corretti fossero in memoria, non sarebbe difficile scriverli senza errori. Più probabilmente, c'è un controllo di integrità o un errore di assemblaggio da qualche parte.

 
Andrey Khatimlianskii:

E se si interroga alla fine della giornata, il pass è già lì?

Sembra che la prima richiesta delle ultime 24 ore aggiorni il database delle zecche tramite la sincronizzazione con il server.

Tesi discutibile circa l'assenza di fallimenti di connessione, le scansioni/commutazioni avvengono regolarmente.

Se i tic corretti fossero in memoria, non sarebbe difficile scriverli senza errori. Più probabilmente, c'è un controllo di integrità o un errore di assemblaggio da qualche parte.

SymbolInfoTick ha catturato almeno un tick che non era nel database.

 
fxsaber:

Sembra che la prima query delle ultime 24 ore aggiorni il database delle zecche tramite la sincronizzazione con il server.

SymbolInfoTick ha catturato almeno un tick che non era nel database.

Solo @renat può rispondere qui. O @Slava

Motivazione: