La parola chiave RETURN restituisce il risultato di una funzione. Il tipo risultato (Numeric, Boolean, String ecc.) deve corrispondere al tipo dichiarato nella prima riga della funzione.
- RETURN è obbligatoria in ogni funzione Overbasic! Senza RETURN la funzione non restituirà alcun risultato.
- Oltre a restituire il risultato, RETURN termina l’esecuzione della funzione.
Sintassi #
Return <espressione>
<espressione> DEVE essere dello stesso tipo dichiarato nella prima riga della funzione.
Esempi
Function DoSomething() As Numeric
Return 10 * 5 'restituisce un valore numeric
EndFunction
Function DoSomething() As Numeric
Dim i As Numeric = 0
i = 10 * 5
Return i 'restituisce un valore numeric
EndFunction
Function DoSomething() As Numeric()
Dim a As Numeric()
a(1) = 10 * 5
Return a 'restituisce un array numeric
EndFunction
Function DoSomething() As Boolean
Dim b As Boolean = False
If (Close > Open) Then
b = True
EndIf
Return b 'restituisce un valore boolean
EndFunction
Function DoSomething() As String
Return "Hello!" 'restituisce un valore string
EndFunction
RETURN nella funzione Main #
In Overbasic esiste una funzione speciale denominata Main. La funzione Main è la funzione principale dello script Overbasic. In altre parole, è la funzione da dove inizia l’esecuzione dello script.
Function Main()
La funzione Main non ha argomenti e nemmeno un tipo risultato definito. Il risultato dipende dal tipo di script.
Se lo script è un indicatore:
- il risultato è SEMPRE di tipo Numeric
- RETURN nella funzione MAIN può restituire fino ad un massimo di 10 risultati contemporaneamente che corrisponderanno nel grafico dell’indicatore a 10 curve differenti.
- quando RETURN restituisce solo 1 risultato il nome identificativo NON è obbligatorio
- quando RETURN restituisce più di un risultato il nome identificativo è obbligatorio
Return <espressione1> As <nome1>, <espressione2> As <nome2>, ... , <espressione10> As <nome10>
Esempi
Function Main()
Dim v1 As Numeric = (Close + Open) / 2
Return v1
EndFunction
Function Main()
Dim v1 As Numeric = Open(-1)
Dim v2 As Numeric = Close(-1)
Dim v3 As Numeric = (Close + Open) / 2
Return v1 As PrevOpen, v2 As PrevClose, v3 As CurrentMiddle
EndFunction
Se lo script è un Trading System:
- il risultato è SEMPRE di tipo Boolean
Per maggiori informazioni vedi la documentazione relativa agli indicatori utente e trading system.
La funzione Main viene chiamata automaticamente da Overcharts ogni volta che viene eseguito lo script. Per esempio, nel calcolo di un indicatore, lo script viene eseguito per ogni barra presente nel grafico di riferimento. Se il grafico di riferimento dell’indicatore contiene 100 barre, lo script verrà eseguito 100 volte. L’esecuzione avverrà anche ad ogni aggiornamento dati real time.
RETURN esce dalla funzione #
RETURN, oltre a restituire il risultato della funzione, termina l’esecuzione della funzione stessa. In altre parole, tutte le istruzioni eventualmente inserite dopo Return NON saranno eseguite.
Function DoSomething() As Boolean
Dim b As Boolean = False
If (Close > Open) Then
b = True
EndIf
Return b 'restituisce un valore boolean
'Tutte le istruzioni successive a Return NON saranno mai eseguite
If (High > High(-1)) Then
b = True
EndIf
EndFunction
Negli Event:
Gli Event sono procedure particolari chiamate automaticamente dallo script Overbasic al verificarsi di certi eventi. Negli event la parola chiave RETURN non restituisce alcun risultato. Può tuttavia essere utilizzata per uscire dalla procedura.
Event OnProcess()
...
<istruzioni>
...
Return
EndEvent