Overbasic – Funzioni Array

La categoria My.Array contiene tutte le funzioni built-in disponibili in Overbasic per la manipolazione degli ARRAY.

Clone #

Restituisce una copia dell’array passato come argomento.

Tipo di risultato: Stesso dell’array da clonare.

Argomenti:

  • DATA ARRAY: una qualsiasi funzione o variabile di tipo array (es. Open, High, Low, Close, Volume, Indicatori, etc.).

Esempio:

Dim a As Numeric() = My.Array.Clone(Close)

CreateArray #

Crea un array a partire da un’espressione. L’array contiene il risultato dell’espressione calcolato per ogni singolo periodo della serie dati.

Tipo di risultato: un array numerico o un numero a seconda del contesto.

Argomenti:

  • EXPRESSION: una qualsiasi espressione numerica composta da funzioni dati (es. Open, High, Low, Close, Volume), funzioni indicatore, numeri, proprietà.

Esempi:

'Nel seguente contesto, CreateArray restituisce un Array numerico:
Dim a As Numeric() = My.Array.CreateArray((Close + High + Low) / 3)

'Nel seguente contesto, CreateArray restituisce il valore di EXPRESSION nella barra corrente:
If (My.Array.CreateArray((Close + High + Low) / 3) > Open) Then
    ...
EndIF

HShift #

Sposta orizzontalmente verso destra o sinistra l’array numerico passato come argomento in base al valore di Offset.

Tipo di risultato: un array numerico o un numero a seconda del contesto.

Argomenti:

  • EXPRESSION: una qualsiasi espressione numerica composta da funzioni dati (es. Open, High, Low, Close, Volume), funzioni indicatore, numeri, proprietà.
  • OFFSET: valore numerico che specifica l’offset di spostamento orizzontale. Valori positivi sposteranno l’array verso destra, valori negativi verso sinistra.

Esempi:

'Nel seguente contesto, HShift restituisce un Array numerico spostato verso destra di 10 barre:
Dim a As Numeric() = My.Array.HShift((Close + High + Low) / 3, 10)
Dim a As Numeric() = My.Array.HShift(Close, 10)

'Nel seguente contesto, HShift restituisce il valore di EXPRESSION nella barra corrente spostato verso destra di 10 barre:
If (My.Array.HShift((Close + High + Low) / 3, 10) > Open) Then
    ...
EndIF

'Esempio:
'Supponendo Expression uguale a:
'3, 5, 34, 67, 88, 23, 65, 25, 88, 3, 123, 344, 545, 1, 12, 3, 456, 345
'e Offset uguale a 10, il risultato sarà:
'0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 34, 67, 88, 23, 65, 25

Lbound #

Restituisce l’indice del primo elemento dell’array passato come argomento. In Overbasic, tutti gli array iniziano sempre dall’indice ZERO. Pertanto il risultato di questa funzione sarà sempre ZERO.

Tipo di risultato: un numero intero.

Argomenti:

  • DATA ARRAY: una qualsiasi funzione o variabile di tipo array (es. Open, High, Low, Close, Volume, Indicatori, etc.).
Dim i As Numeric = My.Array.Lbound(Close)

Ubound #

Restituisce l’indice dell’ultimo elemento dell’array passato come argomento.

Tipo di risultato: un numero intero.

Argomenti:

  • DATA ARRAY: una qualsiasi funzione o variabile di tipo array (es. Open, High, Low, Close, Volume, Indicatori, etc.).
Dim i As Numeric = My.Array.Ubound(Close)

VShift #

Sposta verticalmente l’array numerico passato come argomento in base al valore di Offset.

Tipo di risultato: un array numerico o un numero a seconda del contesto.

Argomenti:

  • EXPRESSION: una qualsiasi espressione numerica composta da funzioni dati (es. Open, High, Low, Close, Volume), funzioni indicatore, numeri, proprietà.
  • STARTING FROM: indice dell’elemento da cui iniziare lo shift verticale.
  • OFFSET: valore numerico da sommare a tutti gli elementi dell’array. Valori positivi sposteranno l’array verso l’alto (l’offset sarà sommato al valore dei vari elementi), valori negativi sposteranno l’array verso il basso (l’offset sarà sottratto al valore dei vari elementi).
  • OFFSET TYPE: rappresenta la modalità di calcolo dello spostamento:
    • P = Point (il valore di offset viene direttamente sommato al valore dell’elemento)
    • C = Percentuale (l’offset viene calcolato per ogni elemento dell’array come percentuale del valore dell’elemento stesso)

Esempi:

'VShift restituisce un array numerico spostato verso l'alto di 10 unità a partire dall'elemento con indice uguale a zero:
Dim a As Numeric() = My.Array.VShift(Close, 0, 10, "P")
'Esempio:
'Array iniziale: 25, 10, 40, 34, 67
'Risultato:      35, 20, 50, 44, 77

'VShift restituisce un array numerico spostato verso l'alto del 10% del valore di ogni singolo elemento a partire dall'elemento con indice uguale a zero:
Dim a As Numeric() = My.Array.VShift(Close, 0, 10, "C")
'Esempio:
'Array iniziale: 25, 10, 40, 34, 67
'Risultato:      27.5, 11, 44, 37.4, 73.7