Search code examples
pine-scriptpine-script-v5tradingtradingview-api

PineScript v5 - Cannot call 'fill' with argument 'hline1'='upperInner'. An argument of 'series float' type was used but a 'hline' is expected


I'm writting a PineScript code using Bollinger Bands and i have a problem with fill() command. Error is saying: "Cannot call 'fill' with argument 'hline1'='upperInner'. An argument of 'series float' type was used but a 'hline' is expected."

I tried searching the problem, but solutions that i found, didn't help

Code:

// Upper bands
upperInner = basis + devInner
upperOuter = basis + devOuter
upperMid = basis + devMid

// Lower Bands
lowerInner = basis - devInner
lowerOuter = basis - devOuter
lowerMid = basis - devMid

// Center Channel Fill
fill(upperInner, lowerInner, color=color.new(color.silver, 100), title="Center Channel Fill")

// Plot and fill Upper bands
fill(upperInner, upperMid, color=color.new(color.red, 90), title="Upper Bands - Inner Fill")
fill(upperMid, upperOuter, color=color.new(color.red, 80), title="Upper Bands - Outer Fill")

// Plot and fill Lower bands
fill(lowerInner, lowerMid, color=color.new(color.green, 90), title="Lower Bands - Inner Fill")
fill(lowerMid, lowerOuter, color=color.new(color.green, 80), title="Lower Bands - Outer Fill")

Solution

  • You need to pass a plot() or hline() to fill(). You are just passing numerical values.

    p_upperInner = plot(upperInner)
    p_lowerInner = plot(lowerInner)
    
    fill(p_upperInner, p_lowerInner , color=color.new(color.silver, 100), title="Center Channel Fill")