# 2.8 Understanding Loops in Pine Script

In this video, Paul discusses loops, specifically the “for” loop. He demonstrates how a “for” loop repeatedly performs a task within a specified range. The loop iterates over the defined range, executing the task each time. Paul illustrates this using an example where calculations are performed and plotted using a “for” loop that iterates from 0 to 10, multiplying the loop index by 2. He explains that loops run on a time series, which can lead to repetitive execution on each bar of the chart. He mentions the use of the “break” and “continue” keywords within loops. Paul also clarifies that “plot” functions cannot be used within local scopes or functions, only in the global scope.

## Understanding Loops in Pine Script

### Introduction

Loops are a powerful programming concept that allow you to repeat a specific task for a defined number of times. In this guide, we’ll dive into how to use loops in Pine Script to perform calculations and create visualizations. Whether you’re a beginner or an experienced trader, understanding loops can greatly enhance your Pine Script skills.

### The Basics of For Loops

A fundamental loop type in Pine Script is the “for” loop. Essentially, a for loop repeats a set of instructions a certain number of times, making it perfect for tasks like iterative calculations.

To initiate a for loop, follow this structure:

``````for i = start_value to end_value
// Code to repeat goes here``````

For instance, if you want to repeat a calculation ten times, you can use:

``````for i = 0 to 10
// Perform calculations based on 'i'``````

#### Performing Calculations

Inside the loop, you can perform calculations using the loop index (‘i’ in this case). Let’s say we want to multiply ‘i’ by 2 and visualize the results. The loop would look like this:

``````for i = 0 to 10
result = i * 2
plot(result)``````

This code snippet calculates the result of multiplying ‘i’ by 2 during each iteration of the loop and plots the end result on a chart.

### Creating Visualizations

Visualizations can be generated within a loop to visualize the data being processed. However, remember that plots can only work outside local scopes so we can only see the final loops result using a plot. To overcome this limitation, use labels inside the local scope.

``````plot_value = 0
for i = 0 to 10
plot_value := i * 2
label.new(bar_index[i], high[i], text=str.tostring(plot_value)) // Will plot 10 values on last 10 bars of chart

plot(plot_value) // Will only plot last value in loop (10 * 2)``````

This way, you can visualize the plotted data points on the chart, showing the progression of values over the iterations.

### Controlling Loops

You can control the behavior of loops using keywords like “break” and “continue.” For example, using “break” will stop the loop prematurely when a certain condition is met:

``````for i = 0 to 10
if i == 5
break
if i == 6
// code here never gets executed``````

Using “continue” will skip the current iteration when a condition is met:

``````for i = 0 to 10
if i == 5
continue
// Code here gets skipped when i == 5``````

### Conclusion

Loops are an essential tool in Pine Script that allow you to efficiently repeat tasks and create dynamic visualizations. By mastering loops, you can unlock new possibilities in your trading strategies and technical analysis. Experiment with different loop structures and explore how they can enhance your Pine Script projects.

Remember, practice makes perfect. Feel free to experiment and iterate on your code to discover the full potential of loops in Pine Script.

Lesson Content