CopyIndicatorBuffer

Ottiene i dati del buffer dell'indicatore specificato nella quantità specificata in un vettore.

I dati saranno copiati nel vettore posizionando l'elemento più vecchio all'inizio della memoria fisica allocata per il vettore. Ci sono tre opzioni di funzione.

Accesso tramite posizione iniziale e numero di elementi richiesti

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle indicatore
   ulong     buffer_index,         // numero del buffer dell'indicatore
   ulong     start_pos,            // posizione iniziale da copiare
   ulong     count                 // numero di elementi da copiare
   );

Accesso tramite data d'inizio e numero di elementi richiesti

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle indicatore
   ulong     buffer_index,         // numero del buffer dell'indicatore
   datetime  start_time,           // da quale data copiare
   ulong     count                 // numero di elementi da copiare
   );

Accesso tramite le date iniziale e finale dell'intervallo di tempo richiesto

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle indicatore
   ulong     buffer_index,         // numero del buffer dell'indicatore
   datetime  start_time,           // da quale data copiare
   datetime  stop_time             // fino a quale data copiare
   );

Parametri

indicator_handle

[in] L' handle dell'indicatore ottenuto dalla relativa funzione dell'indicatore.

buffer_index

[in] Il numero del buffer dell'indicatore.

start_pos

[in] Il numero dell'indice del primo elemento copiato.

count

[in] Il numero di elementi copiati.

start_time

[in] Ora della barra corrispondente al primo elemento.

stop_time

[in] Ora della barra corrispondente all'ultimo elemento.

Valore Restituito

La funzione restituisce 'true' in caso di successo o 'false' se si verifica un errore.

Note

Gli elementi dei dati copiati (il buffer dell'indicatore con indice buffer_index) sono contati dal presente al passato, e quindi la posizione di partenza uguale a 0 significa la barra corrente (il valore dell'indicatore per la barra corrente).

Quando si copia una quantità di dati sconosciuta, è necessario dichiarare un vettore senza specificare una dimensione (senza allocazione di memoria per i dati), poiché la funzione CopyBuffer() prova a ripartire la dimensione del vettore ricevente alla dimensione dei dati copiati.

Quando è necessaria la copia parziale dei valori dell'indicatore, è necessario utilizzare un vettore intermedio in cui viene copiata la quantità richiesta. Da questo vettore intermedio, è possibile copiare il numero richiesto di valori, membro per membro, ai posti richiesti del vettore ricevente.

Se si sta copiando una quantità predeterminata di dati, si consiglia di pre-dichiarare un vettore e specificare le sue dimensioni per evitare riallocazioni inutili della memoria.

Quando si richiedono dati da un indicatore, la funzione ritorna immediatamente false se le timeseries richieste non sono ancora state costruite o devono essere scaricate dal server, mentre il caricamento/ costruzione viene avviato.

Quando si richiedono dati da un'EA o da uno script, viene avviato il download dal server se il terminale non dispone dei dati appropriati localmente, o la costruzione delle timeseries necessarie inizia se i dati possono essere costruiti dalla storia locale, ma i timeframe richiesti non sono ancora pronti. La funzione restituisce la quantità che sarà pronta entro la scadenza del timeout.

Vedere anche

CopyBuffer