- Direzione di Indicizzazione negli Array, Buffers e TimeSeries
- Organizzazione di Accesso ai Dati
- SeriesInfoInteger
- Bars
- BarsCalculated
- IndicatorCreate
- IndicatorParameters
- IndicatorRelease
- CopyBuffer
- CopyRates
- CopySeries
- CopyTime
- CopyOpen
- CopyHigh
- CopyLow
- CopyClose
- CopyTickVolume
- CopyRealVolume
- CopySpread
- CopyTicks
- CopyTicksRange
- iBars
- iBarShift
- iClose
- iHigh
- iHighest
- iLow
- iLowest
- iOpen
- iTime
- iTickVolume
- iRealVolume
- iVolume
- iSpread
CopyRealVolume
La funzione ottiene in volume_array i dati storici dei volumi trade 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.
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 CopyRealVolume(
|
Chiamata dalla data di inizio e il numero di elementi richiesti
int CopyRealVolume(
|
Chiamata per le date di inizio e di fine di un intervallo di tempo richiesto
int CopyRealVolume(
|
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.
volume_array[]
[out] Array odi tipo long.
Valore restituito
Restituisce il numero di dati copiati o -1 in caso dierrore.
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 dati da un Expert Advisor o uno script, verrà avviato il download dal server, se il terminale non dispone di questi dati a livello locale, o la costruzione delle timeserie richieste avrà inizio, 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 per la data di inizio ed il numero di elementi necessari, solo i dati la cui data è minore (prima) o uguale alla data specificata. 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 l'esempio 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: