2.7 Conditional Statements in Pine Script: Simplified Guide for Traders

This video explains how to use conditional statements in coding. It covers if-else statements, switches, and ternary operators for decision-making. Paul demonstrates coding examples, including indentation, conditions, assignments, and plotting. The concepts are explained through practical coding and examples in PineScript.

Conditional Statements in Pine Script: Simplified Guide for Traders


Conditional statements are powerful tools in Pine Script, the scripting language for creating custom indicators and strategies on TradingView. In this post, we’ll delve into the world of conditional statements, exploring if-else statements, the ternary operator, and the new switch statement introduced in Pine Script version 5. Whether you’re a seasoned Pine Script developer or just starting out, this guide will help you understand how to make informed decisions in your trading strategies.

If-Else Statements: Making Choices in Code

At the heart of conditional statements are if-else statements. These allow you to execute different blocks of code based on specified conditions. Let’s start by breaking down a simple if-else statement:

d = false

if close > open
    d := true

plotshape(d, style=shape.triangleup, location=location.abovebar)

Here, we’re checking if the close price is greater than the open price. If true, we set the variable d to true, and we plot an upward triangle above the bar. Notice the use of indentation to define the code block under the if condition.

Ternary Operator: A Neat Alternative

The ternary operator offers a concise way to write conditional statements in a single line. It allows you to assign a value based on a condition. Here’s how you can rewrite the previous example using the ternary operator:

d = close > open ? true : false
plotshape(d, style=shape.triangleup, location=location.abovebar)

In this case, d is assigned true if the condition holds and false otherwise. The ternary operator can make your code cleaner and more readable, especially for simpler conditions.

Switch Statement: Handling Multiple Cases

Pine Script version 5 introduced the switch statement, which is handy when dealing with multiple cases. Let’s say you want to select a moving average type based on user input. Here’s how you can achieve this using the switch statement:

indicator("Moving Average Selector", overlay=true)

maType = input.string(title="MA Type", defval="SMA", options=["SMA", "EMA", "WMA"])
maSource = input.source(title="MA Source", defval=close)
maLength = input.int(title="MA Length", defval=14)

selectedMA =
    switch maType
        "SMA" => ta.sma(maSource, maLength)
        "EMA" => ta.ema(maSource, maLength)
        "WMA" => ta.wma(maSource, maLength)
        // Default case

plot(selectedMA, title="Selected MA", color=color.blue)

In this example, the switch statement checks the value of maType and returns the corresponding moving average type. The code is efficient and easy to read, making it a great choice for managing multiple conditions.

Conclusion: Simplifying Decision-Making in Pine Script

Conditional statements are essential for building flexible and dynamic trading strategies in Pine Script. Whether you prefer the traditional if-else approach, the concise ternary operator, or the new switch statement for managing multiple cases, each method has its merits. Choose the one that suits your coding style and strategy requirements. With a solid understanding of conditional statements, you’ll be well-equipped to make informed decisions in your trading scripts.

Collapse Comments

quiz doesn’t tell you which question(s) had an error.

Hey Daga, when you are finished with the quizzes you can click “View Questions” and it will show you which questions you got right and wrong.

Leave a Comment