Home » Pinescript Syntax » Switch Statement in Pine Script

Switch Statement in Pine Script

Photo of author
Published on

One of the notable features of Pine Script is the switch statement, which offers a structured and efficient way to execute different code paths based on variable values. This tutorial will delve into the intricacies of the switch statement in Pine Script, illustrating its syntax, functionalities, and practical applications.

The switch statement in Pine Script exists in two forms: one that switches based on different values of a key expression, and another that switches on the evaluation of different expressions. It’s a powerful control structure that directs the flow of execution based on specified conditions.

Syntax of switch Statement

The general syntax of the switch statement is as follows:

// With a key expression
[[<declaration_mode>] [<type>] <identifier> = ] switch <expression>
{<expression> => <local_block>}
=> <local_block>

// Without a key expression
[[<declaration_mode>] [<type>] <identifier> = ] switch
{<expression> => <local_block>}
=> <local_block>

The switch Statement with an Expression

This form uses a key expression to determine which code block to execute. Each case in the switch structure is defined by an expression followed by => and a local block of code.

Example: Moving Average Type Selection

Let’s consider a practical example where we use the switch statement to select the type of moving average based on user input.

//@version=5
indicator("Switch using an expression", "", true)

string maType = input.string("EMA", "MA type", options = ["EMA", "SMA", "RMA", "WMA"])


float ma = switch maType
    "EMA" => ta.ema(close, 10)
    "SMA" => ta.sma(close, 10)
    "RMA" => ta.rma(close,10)
    "WMA" => ta.wma(close,10)


plot(ma)
switch Statement

In this example, maType is a string variable set by the user. The switch statement checks maType and executes the corresponding moving average function. If no match is found, a runtime error is triggered, and float(na) is returned to maintain type consistency.

The switch Statement without an Expression

This form of the switch statement executes blocks based on the evaluation of expressions within the structure.

Example: Strategy Order Selection

Here, we use the switch statement to determine whether to place a long or short order in a trading strategy.

//@version=5
strategy("Switch without an expression", overlay = true)

bool longCondition  = ta.crossover( ta.sma(close, 14), ta.sma(close, 28))
bool shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

switch
    longCondition  => strategy.entry("Long ID", strategy.long)
    shortCondition => strategy.entry("Short ID", strategy.short)

In this case, longCondition and shortCondition are boolean expressions evaluated before the switch statement. The statement then executes the corresponding strategy entry based on which condition is true.

Key Takeaways

  • The switch statement in Pine Script offers a structured way to handle multiple conditions.
  • It can be used with or without a key expression, providing flexibility in scripting.
  • Proper understanding and use of the switch statement can enhance the efficiency and readability of Pine Script code.

Conclusion

The switch statement is a versatile tool in Pine Script that simplifies complex conditional structures. By understanding its syntax and practical use cases, traders and scriptwriters can create more efficient and effective scripts for their trading strategies on TradingView.

Leave a Comment