RETURN keyword returns the result of a 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.
<expression> MUST be of the same type declared in the first line of function.
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.
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>
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
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