---
title: Overbasic – Return
description: "RETURN keyword returns the result of a [**function**](https://www.overcharts.com/en/helpcenter/docs/overbasic-function/). The result type (Numeric, Boolean, String etc.) must match the type declared in the first line of function. - **RETURN is mandatory** in every Overbasic function! Without RETURN the function will not…"
url: "https://www.overcharts.com/en/helpcenter/docs/overbasic-return/"
updated: "2022-07-29"
category: "Overbasic / Syntax & Keywords"
---

# Overbasic – Return

RETURN keyword returns the result of a [**function**](https://www.overcharts.com/en/helpcenter/docs/overbasic-function/). The result type (Numeric, Boolean, String etc.) must match the type declared in the first line of function.

- **RETURN is mandatory** in every Overbasic function! Without RETURN the function will not return any results.
- In addition to returning the result, **[RETURN ends the function execution](#2-toc-title)**.

### **Syntax**

```
Return <expression>
```

<expression> MUST be of the same type declared in the first line of function.

**Examples**

```
Function DoSomething() As Numeric
    Return 10 * 5 'returns a numeric
EndFunction

Function DoSomething() As Numeric
    Dim i As Numeric = 0
    i = 10 * 5
    Return i 'returns a numeric
EndFunction

Function DoSomething() As Numeric()
    Dim a As Numeric()
    a(1) = 10 * 5
    Return a 'returns a numeric array
EndFunction

Function DoSomething() As Boolean
    Dim b As Boolean = False
    If (Close > Open) Then
        b = True
    EndIf
    Return b 'returns a boolean
EndFunction

Function DoSomething() As String
    Return "Hello!" 'returns a string
EndFunction
```

### **RETURN in the Main function**

In Overbasic there is a special function called ***Main***. It is the function where the script execution begins.

```
Function Main()
```

Main function has no arguments or even a defined result type. Result depends on script type.

If the script is an **indicator**:

- result is ALWAYS ***Numeric***
- RETURN in the MAIN function can return up to a **maximum** of **10 results** at the same time which will graphically correspond to 10 different curves.
- when RETURN returns only **1 result**, the identifying **name is NOT required**
- when RETURN returns **more than one result**, the identifying **name** is **required**

```
Return <expression1> As <name1>, <expression2> As <name2>, ... , <expression10> As <name10>
```

**Examples**

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

If the script is a **Trading System**:

- result is ALWAYS ***Boolean***

*For more information see user-indicators and trading-systems documentation.*

> The Main function is called automatically by Overcharts every time the script is run. For example, when calculating an indicator, the script is run for each bar in the reference chart. If the indicator reference chart contains 100 bars, the script will run 100 times. Script will also be run on each real time data update.

### **RETURN exits the function**

RETURN, in addition to returning function result, ends function execution. In other words, any statements after RETURN keyword will NOT be executed.

```
Function DoSomething() As Boolean
    Dim b As Boolean = False
    If (Close > Open) Then
        b = True
    EndIf

    Return b 'returns a boolean

    'Any statements after RETURN keyword will NOT be executed
    If (High > High(-1)) Then
        b = True
    EndIf
EndFunction
```

**On Events:**

Events are special procedures called automatically by the Overbasic script when specific events occur. In events, RETURN keyword returns no results. However, it can be used to exit the procedure.

```
Event OnProcess()
    ...
    <statements>
    ...
    Return
EndEvent
```
