CustomTicksAdd

Ajoute les données d'un tableau de données de type MqlTick à l'historique des prix d'un symbole personnalisé. Le symbole personnalisé doit être sélectionné dans la fenêtre du Market Watch.

int  CustomTicksAdd(
   const string     symbol,             // Nom du symbole
   const MqlTick&   ticks[],            // Le tableau de ticks à appliquer au symbole personnalisé
   uint             count=WHOLE_ARRAY   // nombre d'éléments du tableau ticks[] à utiliser
   );

Paramètres

symbol

[in]  Le nom du symbole personnalisé.

ticks[]

[in]   Un tableau de ticks du type MqlTick ordonnés par date, du plus récent au plus ancien, c'est à dire ticks[k].time_msc <= ticks[n].time_msc, avec k<n.

count=WHOLE_ARRAY

[in]  Nombre d'éléments du tableau ticks[] à utiliser pour l'ajout. WHOLE_ARRAY signifie que tous les éléments du tableau ticks[] doivent être utilisés.

Valeur de Retour

Le nombre de ticks ajoutés ou -1 en cas d'erreur.

Note

La fonction CustomTicksAdd ne fonctionne que pour les symboles personnalisés ouverts dans la fenêtre du Market Watch. Si le symbole n'est pas sélectionné dans le Market Watch, vous devez ajouter les ticks avec CustomTicksReplace.

La fonction CustomTicksAdd permet de transmettre des ticks comme s'ils avaient été émis par le serveur du courtier. Les données sont envoyées dans la fenêtre du Market Watch au lieu d'être écrites directement dans la base de données des ticks. Le terminal sauvegarde ensuite les ticks depuis le Market Watch dans une base de données. Si trop de données sont transmises à un appel de la fonction, son comportement est modifié pour réduire l'utilisation des ressources. Si plus de 256 ticks sont passés, les données sont divisées en deux parties. La première, c'est à dire la partie la plus grande, est écrite directement dans la base de données des ticks (comme cela est fait dans CustomTicksReplace). La deuxième partie, contenant 128 ticks, est passée à la fenêtre du Market Watch, à partir de laquelle le terminal sauvegarde les ticks dans une base de données.

La structure MqlTick a deux champs temporels : time (l'heure du tick en secondes) et  time_msc (l'heure du tick en millisecondes), qui sont comptées depuis le 1er janvier 1970. Ces champs des ticks ajoutés sont traités dans l'ordre suivant :

  1. Si ticks[k].time_msc!=0, le champ est utilisé pour remplir ticks[k].time field, c'est à dire que ticks[k].time=ticks[k].time_msc/1000 (division entière) est défini pour le tick
  2. Si ticks[k].time_msc==0 et ticks[k].time!=0, l'heure en millisecondes est obtenue en multipliant par 1000, c'est à dire que ticks[k].time_msc=ticks[k].time*1000
  3. Si ticks[k].time_msc==0 et ticks[k].time==0, l'heure atuelle du serveur de trades plus 1 milliseconde au moment de l'appel à CustomTicksAdd est écrit dans ces champs.

Si la valeur de ticks[k].bid, ticks[k].ask, ticks[k].last ou ticks[k].volume est supérieure à zéro, la combinaison des flags correspondants est écrite dans le champ ticks[k].flags :

  • TICK_FLAG_BID — le tick a changé le prix bid
  • TICK_FLAG_ASK  — le tick a changé le prix ask
  • TICK_FLAG_LAST — le tick a changé le prix de la dernière transaction
  • TICK_FLAG_VOLUME — le tick a changé le volume

Si la valeur d'un champ est inférieure ou égale à zéro, le flag correspondant n'est pas écrit dans le champ ticks[k].flags.

 

Les flags TICK_FLAG_BUY et TICK_FLAG_SELL ne sont pas ajoutés à l'historique d'un symbole personnalisé.

 

Voir aussi

CustomRatesDelete, CustomRatesUpdate, CustomTicksReplace, CopyTicks, CopyTicksRange