CopyIndicatorBuffer

Retourne la quantité spécifiée de données du buffer spécifié de l'indicateur vers un vecteur.

Les données seront copiées dans le vecteur avec le plus vieil élément situé au début de la mémoire physique allouée au vecteur. La fonction existe sous 3 formes.

Accès par la position initiale et le nombre d'éléments requis

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle de l'indicateur
   ulong     buffer_index,         // numéro de buffer de l'indicateur
   ulong     start_pos,            // indice de départ de la copie
   ulong     count                 // nombre d'éléments à copier
   );

Accès par date de début et nombre d'éléments requis

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle de l'indicateur
   ulong     buffer_index,         // numéro de buffer de l'indicateur
   datetime  start_time,           // à partir de quelle date copier
   ulong     count                 // nombre d'éléments à copier
   );

Accès aux dates initiale et finale de l'intervalle de temps requis

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle de l'indicateur
   ulong     buffer_index,         // numéro de buffer de l'indicateur
   datetime  start_time,           // à partir de quelle date copier
   datetime  stop_time             // jusqu'à quelle date copier
   );

Paramètres

indicator_handle

[in] Le handle d'indicateur obtenu par la fonction de l'indicateur.

buffer_index

[in]  Le numéro du buffer de l'indicateur.

start_pos

[in]  Le numéro du premier index d'élément copié.

count

[in]  Le nombre d'éléments à copier.

start_time

[in]  Heure de la barre correspondant au premier élément.

stop_time

[in]  Heure de la barre correspondant au dernier élément.

Valeur de Retour

La fonction renvoie 'true' en cas de succès ou 'false' si une erreur se produit.

Note

Les éléments des données (le buffer de l'indicateur d'index buffer_index) copiées sont décomptés du présent au passé. La position de départ égale à 0 signifie donc la barre actuelle (la valeur de l'indicateur pour la barre actuelle).

Lors de la copie d'une quantité inconnue de données, vous devez déclarer un vecteur sans spécifier de taille (sans allouer de mémoire pour les données), car la fonction CopyBuffer() essaie d'adapter la taille du vecteur destination à la taille des données copiées.

Lorsqu'une copie partielle des valeurs de l'indicateur est requise, vous devriez utiliser un vecteur intermédiaire dans lequel la quantité nécessaire de données est copiée. A partir de ce vecteur intermédiaire, vous pouvez copier le nombre requis de valeurs membre par membre, aux emplacements requis du vecteur destination.

Si vous copiez une quantité prédéterminée de données, il est recommandé de pré-déclarer un vecteur et de spécifier sa taille pour éviter une réallocation de mémoire inutile.

Lors de la demande de données à partir d'un indicateur, la fonction renvoie immédiatement false si les séries temporelles demandées n'ont pas encore été construites ou doivent être téléchargées depuis le serveur, pendant qu'elle initie le chargement/la construction.

Lors de la demande de données à partir d'un EA ou d'un script, le téléchargement depuis le serveur est lancé si le terminal ne dispose pas des données appropriées localement, ou la construction des séries temporelles nécessaires commence si les données peuvent être construites à partir de l'historique local mais que les délais requis ne sont pas encore prêts. La fonction retourne la quantité qui sera prête à l'expiration du délai.

Voir également

CopyBuffer