Errors

How to fix ‘expression’ argument of security function should have no side effects

How to fix ‘expression’ argument of security function should have no side effects

In this article, I will show you how to fix the “‘expression’ argument of security function should have no side effects” error in PineScript.

Here is an example of the script that triggers that error:

//@version=4
study("My Script", overlay = true)

calc_high(len) => 
    h = highest(high, len)
    if (barstate.islast)
        line.new(bar_index, h, bar_index[10], h)
    h

high_htf = security(syminfo.tickerid, '240', calc_high(10))

plot(close)

Error message:

The issue is that when you call a function inside a “security” function you can’t plot trend line or labels in it. So you can’t use label.new, line.new and all related functions.

To solve that just delete all these functions from the functions and plot your stuff outside security call.

For example in my example this is a solution:

//@version=4
study("My Script", overlay = true)

calc_high(len) => 
    h = highest(high, len)
    h

high_htf = security(syminfo.tickerid, '240', calc_high(10))

if (barstate.islast)
    line.new(bar_index, high_htf, bar_index[10], high_htf)

plot(close)

Follow me on TradingView and YouTube.

This image has an empty alt attribute; its file name is wide.png
Pine Script Programming Courses
Pine Script Programming Courses
Learn to build your own TradingView Indicators and Strategies
Sidebar Signup Form
If you want to be the first in this business, subscribe to the latest news