Test des "CopyTicks". - page 6

 
Karputov Vladimir:
Ils sont différents sur MetaQuotes-Demo - car, une fois encore, l'exemple doit être aussi simple que possible. Mes drapeaux sont les mêmes sur MetaQuotes-Demo aujourd'hui.

Résultat de votre indicateur aujourd'hui, serveur Meta-Quotes démo. Les drapeaux via SymbolInfoTick sont nuls.

 
zimbabve15:

Résultat de votre indicateur aujourd'hui, serveur Meta-Quotes démo. Les drapeaux à travers SymbolInfoTick viennent avec des nuls.

Cela fait 10 minutes et je n'ai vu aucun décalage entre les drapeaux reçus par CopyTicks et SymbolInfoTick sur EURUSD sur MetaQoutes-Demo.
 
Karputov Vladimir:
Cela fait 10 minutes - mais je n'ai jamais vu de décalage entre les drapeaux des ticks reçus par CopyTicks et SymbolInfoTick sur EURUSD sur MetaQoutes-Demo.

à 16.53, les inadéquations se sont terminées lorsque le pic d'activité était passé

 
Karputov Vladimir:
Cela fait 10 minutes, mais je n'ai jamais vu sur MetaQoutes-Demo, sur EURUSD, les drapeaux des ticks reçus par CopyTicks et SymbolInfoTick ne coïncident pas.

La même chose encore une fois sur un mouvement fort

 
Karputov Vladimir:
Cela m'a pris 10 minutes et je n'ai pas vu de divergence entre les drapeaux des ticks reçus par CopyTicks et SymbolInfoTick sur EURUSD sur MetaQoutes-Demo.

Je propose le code suivant pour le tester :

#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.44"
#property description "Indicator for comparing the three modes of receiving ticks"
#property description "Индикатор для сравнения трёх режимов получения тиков"
#property indicator_plots 0
#property indicator_chart_window
int count=1; //считаем пришедшие тики в OnCalculate
int depth_save_tick=10; // количество тиков для записи
//с приходом каждого тика в OnCalculate будем писать в массив структуру тика через функцию SymbolInfoTick depth_save_tick раз
MqlTick SymbolInfoTick_array_depth_save_tick[10]; 
//с приходом каждого тика в OnCalculate будем получать в массив структуру последнего тика через функцию CopyTicks 
MqlTick CopyTick_array_one_tick[];
//с приходом каждого тика в OnCalculate будем писать в массив структуру тика через функцию CopyTicks depth_save_tick раз
MqlTick  CopyTick_array_depth_save_tick[10]; 
//когда придет depth_save_tick тиков  запишем их одним запросом через CopyTicks
MqlTick CopyTick_array[]; 

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   MqlTick last_tick;
   SymbolInfoTick(Symbol(),last_tick);
   if(count%depth_save_tick==0)
     {
      int copied=CopyTicks(_Symbol,CopyTick_array,COPY_TICKS_ALL,0,depth_save_tick);
      Comment("");
     }
   else
     {
      SymbolInfoTick_array_depth_save_tick[count-1]=last_tick;
      CopyTicks(_Symbol,CopyTick_array_one_tick,COPY_TICKS_ALL,0,1);
      CopyTick_array_depth_save_tick[count-1]=CopyTick_array_one_tick[0];
     }
   count++;
   return(rates_total);
  }

L'idée : votre indicateur va comparer les valeurs reçues par SymbolInfoTick et CopyTicks avec une profondeur de 1 tick, c'est-à-dire les dernières valeurs qui proviennent du serveur. Dans l'indicateur, dans la procédureOnCalculate, nous sauvegarderons la première et la deuxième valeur dans des tableaux à chaque nouveau tick. La sortie contiendra deux tableaux de ticks, obtenus par des méthodes différentes. Réglons la profondeur d'enregistrement à 10. Après avoir atteint cette profondeur, faisons une requêteCopyTicks pour les mêmes 10 ticks et comparons ces trois tableaux, et ainsi tester le travail de votre idée avec l'exemple le plus simple, et voir comment CopyTicks fonctionne avec une profondeur d'historique de plus d'un tick.

Comme il semble, votre idée de "l'exemple simple avec un fichier" fonctionne et l'indicateur montre correctement les valeurs des ticks via SymbolInfoTick et CopyTicks avec une profondeur de 1 tick (je n'ai pas encore considéré les forts mouvements, comme je l'ai écrit hier, où 0 drapeaux ont été reçus, nous allons attendre jusqu'à l'ouverture de l'Amérique aujourd'hui). Mais dès que nous commençons à comparer ces histoires, l'image avec les drapeaux et autres valeurs dans la structure de la coche devient floue. La photo montre ce que c'est. De plus, le temps en tiques obtenu par les trois méthodes coïncide, c'est-à-dire que les tiques sont les mêmes, mais elles ont un remplissage différent. Démonstration du serveur MetaQuotes

Et je n'ai pas eu à attendre les États-Unis, encore une fois sur un mouvement fort :

J'ai réussi à écrire les données tick sur le mouvement, ils sont dans la pièce jointe, les zéros viennent par SymbolInfoTick peut être vu clairement, je peux donner des captures d'écran comparer votre indicateur temps d'alarme et les zéros dans le fichier. MetaQuotes-Serveur de démonstration

Dossiers :
 

Comment se termine ce thriller ?

Je l'ai lu en entier et il n'y a pas de fin.

 
Nemoys:

Comment se termine ce thriller ?

Je l'ai lu en entier et il n'y a pas de fin.

Le Service Desk a répondu :

Bon après-midi. Vos demandes sont en cours de traitement. Nous répondrons à chacune d'entre elles lorsque le problème aura été résolu.

Une mise à jour semble avoir été promise pour début mars, nous attendons donc.

 

Le moment et la séquence des ticks sont-ils cohérents avec les données de la bourse ou avec les données du serveur de trading du metatrader ?

Par exemple, il se pourrait qu'une offre particulière sur la bourse soit née à la 100e milliseconde et soit morte à la 101e, mais que dans l'historique du metatrader, cette offre soit manquante, soit avec une heure de naissance/mort non égale à 100/101 ?

 
Anton Zverev:

Le moment et la séquence des ticks sont-ils cohérents avec les données de la bourse ou avec les données du serveur de trading du metatrader ?

Par exemple, se peut-il qu'une offre particulière sur la bourse soit née à la 100e milliseconde et soit morte à la 101e, mais que dans l'historique du metatrader, cette offre soit est manquante, soit a une heure de naissance/mort différente de 100/101 ?

Tous les ticks sont absolument exacts, sans omissions ni autres erreurs.

La base de tick est la même pour tous les processus de MetaTrader 5 : serveurs, terminaux, testeurs, etc.

 
MetaQuotes Software Corp.:

Tous les ticks sont absolument exacts, sans omissions ni autres erreurs.

La base de tick est la même pour tous les processus MetaTrader 5 : serveurs, terminaux, testeurs, etc.

Il s'avère que si je télécharge l'historique des tics depuis le site d'échange et depuis le cinq, il y aura une correspondance complète avec une précision de ms ?

Les tics dans le testeur sont pour FORTS Demo ou pour de vrai ?