CopyClose

La funzione ottiene in close_array i dati storici dei prezzi della barra close per la coppia simbolo-periodo selezionati nella quantità specificata. Occorre notare che l'ordinamento degli elementi è dal presente al passato, cioè, la posizione iniziale di 0 significa la barra corrente.

CopyClose

Quando si copia una quantità ancora sconosciuta di dati, si raccomanda di utilizzare gli array dinamici come array di destinazione, perché se il conteggio dei dati richiesti è di meno (o più) rispetto alla lunghezza dell'array di destinazione, la funzione cerca di riallocare la memoria in modo che i dati richiesti vi entrino completamente.

Se si conosce la quantità necessaria di dati da copiare, dovrebbe essere meglio fatto in un buffer allocato in modo statico, al fine di evitare un' allocazione eccessiva di memoria.

Non importa ciò che è di proprietà dell'array di destinazione - as_series=true o as_series=false. I dati verranno copiati in modo che l'elemento più vecchio sarà situato all'inizio della memoria fisica allocata per l'array. Ci sono 3 varianti di chiamate di funzione.

Chiamate dalla prima posizione ed il numero di elementi richiesti

int  CopyClose(
   string           symbol_name,       // nome del simbolo
   ENUM_TIMEFRAMES  timeframe,         // periodo
   int              start_pos,         // posizione inizio
   int              count,             // conteggio dati da copiare
   double           close_array[]      // array target in cui copiare
   );

Chiamata dalla data di inizio e il numero di elementi richiesti

int  CopyClose(
   string           symbol_name,       // nome del simbolo
   ENUM_TIMEFRAMES  timeframe,         // periodo
   datetime         start_time,        // data ed ora di inizio
   int              count,             // conteggio dati da copiare
   double           close_array[]      // array target in cui copiare
   );

Chiamata per le date di inizio e di fine di un intervallo di tempo richiesto

int  CopyClose(
   string           symbol_name,       // nome del simbolo
   ENUM_TIMEFRAMES  timeframe,         // periodo
   datetime         start_time,        // data ed ora di inizio
   datetime         stop_time,         // stop date and time
   double           close_array[]      // array target in cui copiare
   );

Parametri

symbol_name

[in] Nome del Simbolo.

timeframe

[in] Periodo.

start_pos

[in] La posizione di partenza per il primo elemento da copiare.

count

[in] Conteggio dati da copiare.

start_time

[in] L'orario di avviamento per il primo elemento da copiare.

stop_time

[in] Orario barra, corrispondente all'ultimo elemento da copiare.

close_array[]

[out]  Array of double type.

Valore restituito

Restituisce il numero di dati copiati o -1 in caso di errore.

Nota

Se l'intervallo di insieme dei dati richiesti è fuori dei dati disponibili sul server, la funzione restituisce -1. Se sono richiesti i dati fuori da TERMINAL_MAXBARS (numero massimo di barre nel grafico), la funzione anche restituire -1.

Quando si richiedono dati dall'indicatore, se le timeseries richieste non sono ancora costruite o hanno bisogno di essere scaricati dal server, la funzione restituisce immediatamente -1, ma il processo di download/costruzione verrà avviato.

Quando si richiedono i dati da un Expert Advisor o da uno script, verrà avviato il downloading dal server, se il terminale non dispone di questi dati a livello locale, o inizierà la costruzione di una timeseries richiesta, se i dati possono essere costruiti dallo storico locale, ma non sono ancora pronti. La funzione restituisce la quantità di dati che sarà pronta entro il momento del timeout dell'espirazione, ma il download dello storico continuerà, ed alla successiva richiesta simile la funzione restituisce più dati.

Quando si richiedono dati dalla data di inizio ed il numero di elementi richiesti, solo i dati con data minore (prima) o uguale alla data specificata vengono restituiti. Vuol dire, che il tempo di apertura di ogni barra, per il quale viene restituito il valore (volume, spread, valore sul buffer indicatore, i prezzi Open, High, Low, Close o l'orario di apertura Time) è sempre minore o uguale a quello specificato.

Quando si richiedono dati in un intervallo di date specificato, solo i dati di questo intervallo verranno restituiti. L'intervallo è impostato e contato fino ai secondi. Vuol dire, che il tempo di apertura di ogni barra, per il quale viene restituito il valore (volume, spread, valore sul buffer indicatore, i prezzi Open, High, Low, Close o l'orario di apertura Time) è sempre entro l'intervallo richiesto.

Dunque, se il giorno corrente è Sabato, al tentativo di copiare i dati su un arco di tempo di settimane specificando start_time=Last_Tuesday e stop_time=Last_Friday la funzione restituirà 0, perché l'orario di apertura su timeframe di settimana è sempre Domenica, ma una barra da una settimana non cadere nell'intervallo specificato.

Se c'è bisogno di restituire il valore corrispondente alla corrente barra incompiuta, è possibile utilizzare la prima forma di chiamata specificando start_pos=0 e count= 1.

Vedere un esempio dettagliato di dati storici richiesti, nella sezione Metodi di Binding Oggetti. Lo script disponibile in questa sezione mostra come ottenere i valori degli indicatori iFractals delle ultime 1000 barre e come visualizzare gli ultimi 10 su e 10 giù frattali sul grafico. Una tecnica simile può essere utilizzata per tutti gli indicatori che hanno dati mancanti e che sono solitamente elaborati utilizzando i seguenti stili: