Pinescript Warning of only support to Simple Integer and asking to eliminate the Series Integer

18 Views Asked by At

I want consider all Bars are Valid Bar; except "In Bar" for my Analysis. Among all Valid Bars, using EMA, I want to find "The Real Bull and Real Bear Bar" present at the end of particular move. For that I have written code as shared here.

I am facing problem, when I want to use integer variable for 'offset' in 'Plotshot' and 'barcolor'. I am getting warning - "A series int argument was used with offset in the plotshape() function, but only its last calculated value is taken into account. The parameter will only support simple int arguments in the future; consider eliminating series int use for offset arguments in your scripts." Resultant Bar color and plotshape taking to other bar then desired.

//@version=5
indicator("My Idicator", overlay = true, max_lines_count = 500)
var float ValidHigh = 0.0
var float ValidLow = 0.0
ValidHigh := high < ValidHigh[1] and low > ValidLow[1] ? ValidHigh[1] : high  < close[1] ? close[1] :    
 high
ValidLow := high < ValidHigh[1] and low > ValidLow[1] ? ValidLow[1]  : low   > close[1] ? close[1] : low
var float ValidBar = na
ValidBar := ValidHigh > ValidHigh[1] and ValidLow >= ValidLow[1] ? "Up" : ValidHigh <= ValidHigh[1] and      
 ValidLow < ValidLow[1] ? "Dn" : ValidHigh > ValidHigh[1] and ValidLow < ValidLow[1] ? "Out" : "In" 
var string Move = na  
Move :=  ValidBar == "Up" ? "Up_Move" : ValidBar == "Dn" ? "Dn_Move" : Move[1]
var float  M_Line = na 
MLine :=  ValidBar  ==  "In" ? na : Move == "UpMove" ? ValidHigh : ValidLow
UpTurn = Move == "UpMove" and Move[1] == "DnMove"
DnTurn = Move == "DnMove" and Move[1] == "UpMove"
var int UpMoveCount  = na 
UpMoveCount :=  ValidBar == "In" ? UpMoveCount[1] : UpTurn ? 1 : Move == "UpMove" and Move[1] ==   
 "UpMove" ? nz(UpMoveCount[1]) + 1 : na
var int DnMoveCount = na 
DnMoveCount  :=  ValidBar == "In" ? DnMoveCount[1] : DnTurn ? 1 : Move == "DnMove" and Move[1] ==  
 "DnMove" ? nz(DnMoveCount[1]) + 1 : na
EMA14 = ta.ema(close,14)
TheBull = ValidBar != "In" and EMA14[1] > ValidHigh[1] and EMA14[1] > ValidLow[1] and UpMoveCount == 1  
 and DnMoveCount[1] >= 3 
TheBear = ValidBar != "In" and EMA14[1] < ValidHigh[1] and EMA14[1] < ValidLow[1] and DnMoveCount  == 1 
 and UpMoveCount[1] >= 3
BarSinceLastDn = ta.barssince(MLine==ValidLow)
BarSinceLastUp = ta.barssince(MLine==ValidHigh)
//PROBLE START FROM HERE
plotshape(TheBull, style = shape.labelup, color = color.new(#00FF00,00), size=size.small, location =  
 location.belowbar, offset= - BarSinceLastDn)
plotshape(TheBear, style = shape.labeldown, color = color.new(#FF0000,00), size=size.small, location = 
location.abovebar, offset= - BarSinceLastUp)
TheBullColor = TheBull ? #00FF00 : na    
TheBearColor = TheBear ? #FF0000 : na
barcolor(TheBullColor, offset = - BarSinceLastDn, title = "Bullish DPB Candle" )
barcolor(TheBearColor, offset = - BarSinceLastUp, title = "Bearish DPB Candle" )
0

There are 0 best solutions below