---
title: Overbasic – Return
description: "La parola chiave RETURN restituisce il risultato di una [**funzione**](https://www.overcharts.com/it/helpcenter/docs/overbasic-function/). 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…"
url: "https://www.overcharts.com/it/helpcenter/docs/overbasic-return/"
updated: "2022-08-05"
category: "Overbasic / Sintassi & Parole Chiave"
---

# Overbasic – Return

La parola chiave RETURN restituisce il risultato di una [**funzione**](https://www.overcharts.com/it/helpcenter/docs/overbasic-function/). 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**](#2-toc-title).

### **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
```
