Test des "CopyTicks". - page 46

 
Igorz2006:
Merci, je vais m'en occuper.

Voir aussi cette réponse à votre question :

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Conseiller expert universel pour Cryptoexchange pour plus d'une paire !

Vladimir Karputov, 2020.05.18 14:29

Vous devez vous connecter à un serveur de transactions qui diffuse les cours des crypto-monnaies, puis exécuter les opérations suivantes

Télécharger l' historique des prix


 
J'ai installé mt4, c'est facile
 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

MT5 et la vitesse en action

fxsaber, 2020.06.01 11:43

Quelle est la raison pour laquelle cette EA n'alerte pas ?
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!");
}


Au même moment le même test, cousu dans l'EA de trading en direct sur le même Terminal, Alertit. Quelle pourrait être la raison de cette situation ?

 

Dans les épisodes précédents.

A gauche, une requête sur le terminal de combat pour un intervalle de 10 secondes de la journée en cours. Combat - fonctionne pendant plusieurs jours, à chaque tic, appelle CopyTicks* pour obtenir de nouveaux tics.

A droite - le terminal vient de commencer, demandant le même intervalle de 10 secondes.

Vous pouvez voir qu'il y a cinq tics supplémentaires sur la droite. Cela signifie que le DB des ticks est formé avec des erreurs dans le Terminal.

Soyez vigilants ! MT5 saute ses propres ticks historiques, qui arrivent (j'ai vérifié) à OnTick via SymbolInfoTick.

 
fxsaber:

Dans les épisodes précédents.


Soyez vigilants ! MT5 manque ses propres ticks historiques, qui sont arrivés (vérifiés) à OnTick via SymbolInfoTick.

C'est triste, j'utilise des flux de données intensément tiques dans mon travail. On ne sait pas si c'est une erreur terminale ou si c'est voulu.

 
fxsaber:

Dans les épisodes précédents.

A gauche, une requête sur le terminal de combat pour un intervalle de 10 secondes de la journée en cours. Combat - fonctionne pendant plusieurs jours, à chaque tic, appelle CopyTicks* pour obtenir de nouveaux tics.

A droite - le terminal vient de commencer, demandant le même intervalle de 10 secondes.

Vous pouvez voir qu'il y a cinq tics supplémentaires sur la droite. Cela signifie que le DB des ticks est formé avec des erreurs dans le Terminal.

Soyez vigilants ! MT5 saute ses propres ticks historiques, qui arrivent (j'ai vérifié) à OnTick via SymbolInfoTick.

À première vue, cela ressemble plus à un bug qu'à un filtrage conscient pour une raison quelconque (les ticks manquants ne semblent pas se démarquer). Ou ai-je tort ?

 
Maksim Emeliashin:

Malheureusement, j'utilise intensivement le flux de données tick dans mon travail. On ne sait pas si c'est un bug du terminal ou si c'est voulu.

Aleksey Nikolayev:

À première vue, cela ressemble plus à un bug qu'à un filtrage délibéré dans un but quelconque (les ticks manquants ne semblent pas se démarquer beaucoup). Ou ai-je tort ?

Le terminal génère une base de données de ticks pour la journée en cours, s'il n'y a pas d'échec de connexion. C'est beaucoup plus rapide et plus économique.

Mais il y a une erreur dans cet algorithme de formation de la base de données des tiques.

 
fxsaber:

Le terminal génère une base de données de ticks pour la journée en cours s'il n'y a pas d'interruption de connexion. C'est beaucoup plus rapide et plus économique.

Mais il y a une erreur dans cet algorithme de génération de base de données de tiques.

Et si nous le demandons à la fin de la journée, il y a déjà un vide ?

Thèse douteuse sur l'absence d'échecs de connexion, les rescans/commutations se produisent régulièrement.

Si les ticks corrects étaient en mémoire, il ne serait pas difficile de les écrire sans erreur. Plus probablement, il y a un contrôle d'intégrité ou une erreur d'assemblage quelque part.

 
Andrey Khatimlianskii:

Et si vous interrogez à la fin de la journée, le laissez-passer est-il déjà là ?

Il semble que la première requête des dernières 24 heures mette à jour la base de données des tics via une synchronisation avec le serveur.

Une thèse douteuse sur l'absence d'échecs de connexion, les rescans/switching se produisent régulièrement.

Si les ticks corrects étaient en mémoire, il ne serait pas difficile de les écrire sans erreur. Plus probablement, il y a une erreur quelque part dans le contrôle d'intégrité ou dans l'assemblage.

SymbolInfoTick a attrapé au moins un tick qui n'était pas dans la base de données.

 
fxsaber:

Il semble que la première requête des dernières 24 heures mette à jour la base de données des tics via une synchronisation avec le serveur.

SymbolInfoTick a attrapé au moins un tick qui n'était pas dans la base de données.

Seul @renat peut répondre ici. Ou @Slava