Overbasic – Return

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.

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