'pinescript Undeclared identifier error (version2 to version4)
I'm considering reverting a code in the library from version 2 to version 3 and then back to version 4 with the pinescript robot tool. but I can't fix the error I got in this part. it says it is invalid for version 3.
line 18: Undeclared identifier `TriggerLineb`;
line 19: Undeclared identifier `TriggerLineb`;
line 19: Undeclared identifier `TriggerLinea`
Full code
//@version=3
study("breakout and swing",overlay=true)
res1 = input(title="Close Time Frame", type=resolution, defval="D")
cld=security(tickerid, res1, close[1])
opd=security(tickerid,res1, open[1])
hd=security(tickerid, res1, high[1])
ld=security(tickerid, res1, low[1])
tu=(cld +opd)/2
ChanLength=input(40,"high/lowChannel barback")
UpperBand = highest( high, ChanLength )
LowerBand = lowest( low, ChanLength )
LowRef= iff(low <= LowerBand,highest(high,2) ,0)
HighRef =iff( high >= UpperBand,lowest(low,2),0)
TriggerLineb = LowRef ==0 and LowRef[1]!=0? max(highest(high,2),LowRef[1]) :HighRef==0 and HighRef[1]!=0?min(lowest(low,2),HighRef[1]):nz(TriggerLineb[1])
TriggerLinea = LowRef!=0 ? TriggerLineb[1]- 1.272 * ( TriggerLineb[1] - LowerBand[1] ):LowRef==0 and crossover(close,TriggerLineb )?LowerBand[1]+.7886* ( UpperBand[1]- LowerBand[1] ): HighRef!=0 ?1.272 * ( UpperBand[1] - TriggerLineb[1] )+TriggerLineb[1] : HighRef==0 and crossunder(close,TriggerLineb)?UpperBand[1]-.786* ( UpperBand[1] - LowerBand[1] ):nz(TriggerLinea[1])
plot( tu, "Breakout",color=white ,style=line,linewidth=2,transp=20)
Solution 1:[1]
Starting from v3, you need to declare the variable first, then you can use it.
Change it to:
TriggerLineb = 0.0
TriggerLineb := LowRef ==0 and LowRef[1]!=0? max(highest(high,2),LowRef[1]) :HighRef==0 and HighRef[1]!=0?min(lowest(low,2),HighRef[1]):nz(TriggerLineb[1])
TriggerLinea = 0.0
TriggerLinea := LowRef!=0 ? TriggerLineb[1]- 1.272 * ( TriggerLineb[1] - LowerBand[1] ):LowRef==0 and crossover(close,TriggerLineb )?LowerBand[1]+.7886* ( UpperBand[1]- LowerBand[1] ): HighRef!=0 ?1.272 * ( UpperBand[1] - TriggerLineb[1] )+TriggerLineb[1] : HighRef==0 and crossunder(close,TriggerLineb)?UpperBand[1]-.786* ( UpperBand[1] - LowerBand[1] ):nz(TriggerLinea[1])
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | vitruvius |
