'Need help to convert Pinescript V2 to V4

Need help on converting below V2 pinescript indicator to V4. I tried many options but somehow couldn't succeed. I tried creating/initializing the variables first but keep getting errors. Probably making some silly errors & hence need your help. Will be much appreciated.

//@version = 2
study("VWAP Standard Deviation Bands", overlay=true)

devNum = input(2, title="Number of stdev")
newSession = iff(change(dayofweek), 1, 0)


vwapsum = iff(newSession, hl2*volume, vwapsum[1]+hl2*volume)
volumesum = iff(newSession, volume, volumesum[1]+volume)
v2sum = iff(newSession, volume*hl2*hl2, v2sum[1]+volume*hl2*hl2)
myvwap = vwapsum/volumesum
dev = sqrt(max(v2sum/volumesum - myvwap*myvwap, 0))
plot(myvwap, title="VWAP")
plot(myvwap + devNum * dev, title="VWAP Upper")
plot(myvwap - devNum * dev, title="VWAP Lower") 




Solution 1:[1]

Self-referenced variables are removed starting from v3, so you should declare a variable first. Migration guides

//@version = 4
study("VWAP Standard Deviation Bands", overlay=true)

devNum = input(2, title="Number of stdev")
newSession = iff(change(dayofweek), 1, 0)

vwapsum = 0.0
vwapsum := iff(newSession, hl2*volume, vwapsum[1]+hl2*volume)

volumesum = 0.0
volumesum := iff(newSession, volume, volumesum[1]+volume)

v2sum = 0.0
v2sum := iff(newSession, volume*hl2*hl2, v2sum[1]+volume*hl2*hl2)
myvwap = vwapsum/volumesum
dev = sqrt(max(v2sum/volumesum - myvwap*myvwap, 0))
plot(myvwap, title="VWAP")
plot(myvwap + devNum * dev, title="VWAP Upper")
plot(myvwap - devNum * dev, title="VWAP Lower") 

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