Histoire d'un tic-tac - page 10

 
Vasiliy Sokolov:
Le temps est un véritable problème dans MT5. Tout d'abord, le type de date du système est d'une résolution trop faible ; selon les normes modernes, une seconde est une éternité. Deuxièmement, l'arrivée des événements n'est pas liée au temps. Supposons que nous obtenions une nouvelle capture d'écran d'un verre dans OnBookEvent, et à quelle heure se réfère-t-elle ? Devrions-nous récupérer TimeCurrent avec la dernière heure connue du serveur ? Et si la dernière heure connue du serveur a été mise à jour il y a une minute ?

Il est peu probable qu'ils modifient la date avant l'an 3000.

последняя дата datetime 3001.01.01 00:00:00 | 32535216000

C'est beaucoup plus facile de faire un emballage.

struct millisekdatetime
  {
   datetime time;
   ushort millisek;
  };
 
Tapochun:
Je n'ai pas besoin d'un indicateur. Et je n'ai pas besoin de différences de mode. Dites-moi, observez-vous des différences entre les mêmes ticks lorsque vous demandez à un mode un montant différent (par exemple, 2000 et 10000).
Karputov Vladimir:
Maintenant je le comprends. Je dois le vérifier...

Ghjdt vérifié. Donc : dans un seul et même outil, pour un seul et même mode de réception des tick (j'ai cherché le mode COPY_TICKS_INFO - seulement Bid et Ask) et à différentes profondeurs de demande de tick, nous recevons différents flux de tick. Le fichier joint de l'Expert Advisor (v. 1.41) montre clairement la raison d'un tel comportement :

1

Lorsque l'on demande 1500, on obtient 1500 ticks, lorsque l'on demande 10000, on obtient 4691. En général, si elle renvoie plus de 2000 ticks, alors le mode de restitution de l'historique change.

Dossiers :
CopyTicks.mq5  4 kb
 
Karputov Vladimir:

Ghjdt vérifié. Ainsi, dans un seul et même code, pour un seul et même mode de réception de tick (j'ai vérifié le mode COPY_TICKS_INFO - seulement Bid et Ask) et à différentes profondeurs de demande de tick, un flux de tick est reçu différemment. Le fichier joint de l'Expert Advisor (v. 1.41) montre clairement la raison d'un tel comportement :

Lorsque l'on demande 1500, on obtient 1500 ticks, lorsque l'on demande 10000, on obtient 4691. En général, si plus de 2000 ticks sont retournés, alors le mode de retour de l'historique est modifié.

Voilà, super, j'ai la même chose. J'ai écrit à Servicedesk, on va attendre.
 
Tapochun:
Ici, super, j'ai la même chose. J'ai écrit à Servicedesk, nous allons attendre.

J'ai remarqué une caractéristique intéressante. J'ai exécuté l'EA décrit dans mon post précédent avec un nouvel instrument (il n'a pas encore demandé l'historique des ticks et n'a donc pas créé de fichiers avec l'historique des ticks sur le disque) et j'ai découvert qu'au début il retournait environ 200 ticks en demandant 2000. Mais progressivement, à chaque tic, le nombre de ticks renvoyés augmente - on a l'impression que l'histoire en ligne s'ajoute aux 200 ticks initiaux au moment où j'écris ici.

Ajouté : EA v 1.42 ci-joint - correction du bug de sortie de plage lors de la toute première exécution.

Dossiers :
CopyTicks.mq5  4 kb
 
Mise à niveau vers la nouvelle version 1190. Recompilation de l'EA dans une nouvelle version. Dans le testeur CopyTicks() n'obtient pas de ticks - erreur 4014.
 
Karputov Vladimir:

J'ai remarqué une caractéristique intéressante. J'ai exécuté l'EA décrit dans mon post précédent avec un nouvel instrument (il n'a pas encore demandé l'historique des ticks et n'a donc pas créé de fichiers avec l'historique des ticks sur le disque) et j'ai découvert qu'au début il retournait environ 200 ticks en demandant 2000. Mais progressivement, à chaque tic, le nombre de ticks renvoyés augmente - on a l'impression que l'histoire en ligne s'ajoute aux 200 ticks initiaux au moment où j'écris ici.

Ajouté : EA v 1.42 ci-joint - correction du bug de sortie de plage lors de la toute première exécution.

Oui, Renat a noté que les ticks sont chargés. Nous devrions donc vérifier si le retour est de -1 (au moins). En revanche, le mode COPY_TICKS_INFO permet à l'analyseur de vérifier l'égalité des ticks retournés avec celui demandé, même si ce n'est pas si important. Le rendement sera toujours inférieur.
 
Tapochun:
Oui, Renat a souligné que les tiques sont ramassées. Il est donc nécessaire de vérifier la présence de -1 (au moins). Et en mode COPY_TICKS_INFO, vous pouvez vérifier que le montant retourné est égal au montant demandé, même si ce n'est pas le cas - c'est inutile.
Je ne pourrai pas vérifier s'il y a des tiques avant lundi. Je m'occuperai d'autres choses.
 

J'ai essayé de demander des ticks maintenant - sur le graphique hors ligne. Quel que soit le mode et le nombre de ticks demandés, le résultat est à peu près le même : aucun prix d'offre (tous les ticks ont bid = 0).

 
Karputov Vladimir:
De toute façon, tu ne pourras rien croire avec les tics avant lundi. Je vais faire autre chose.
Pourquoi ? Si vous téléchargez un indicateur, il existe un excellent bouton pour le rafraîchir. Et personne n'a annulé les scripts.
 
Veuillez expliquer à nouveau. Quelle est la profondeur de l'histoire de la tique disponible maintenant ? L'historique est-il téléchargé depuis le serveur, c'est-à-dire qu'il n'est pas nécessaire de l'accumuler ? Comment fonctionne le testeur, utilise-t-il la simulation ou l'historique des tics?