Skip to content

Instantly share code, notes, and snippets.

@iCodeForBananas
Created June 3, 2022 19:03
Show Gist options
  • Select an option

  • Save iCodeForBananas/b6a3251e182975a87a5ee503375dc2c3 to your computer and use it in GitHub Desktop.

Select an option

Save iCodeForBananas/b6a3251e182975a87a5ee503375dc2c3 to your computer and use it in GitHub Desktop.
//@version=5
indicator("VWAP Std Dev Position", shorttitle="VWAP Expansion")
devUp1 = input(1.28, title="Stdev above (1)")
devDn1 = input(1.28, title="Stdev below (1)")
devUp2 = input(2.01, title="Stdev above (2)")
devDn2 = input(2.01, title="Stdev below (2)")
devUp3 = input(2.51, title="Stdev above (3)")
devDn3 = input(2.51, title="Stdev below (3)")
devUp4 = input(3.09, title="Stdev above (4)")
devDn4 = input(3.09, title="Stdev below (4)")
devUp5 = input(4.01, title="Stdev above (5)")
devDn5 = input(4.01, title="Stdev below (5)")
var float vwapsum = na
var float v2sum = na
var float volumesum = na
price = input(close)
start = request.security(syminfo.ticker, "D", time)
newSession = ta.change(start) ? 1 : 0
vwapsum := newSession ? hl2*volume : vwapsum[1]+hl2*volume
volumesum := newSession ? volume : volumesum[1]+volume
v2sum := newSession ? volume*hl2*hl2 : v2sum[1]+volume*hl2*hl2
myvwap = vwapsum/volumesum
dev = math.sqrt(math.max(v2sum/volumesum - myvwap*myvwap, 0))
myvwapu1= myvwap + devUp1 * dev
myvwapd1= myvwap - devDn1 * dev
myvwapu2= myvwap + devUp2 * dev
myvwapu3= myvwap + devUp3 * dev
myvwapd2= myvwap - devDn2 * dev
myvwapd3= myvwap - devDn3 * dev
myvwapu4= myvwap + devDn4 * dev
myvwapd4= myvwap - devDn4 * dev
plotValue = 0
plotValue := price >= myvwap and price < myvwapu1 ? 1 : plotValue
plotValue := price >= myvwapu1 and price < myvwapu2 ? 2 : plotValue
plotValue := price >= myvwapu2 and price < myvwapu3 ? 3 : plotValue
plotValue := price >= myvwapu3 and price < myvwapu4 ? 4 : plotValue
plotValue := price >= myvwapu4 ? 4 : plotValue
plotValue := price <= myvwap and price > myvwapd1 ? -1 : plotValue
plotValue := price <= myvwapd1 and price > myvwapd2 ? -2 : plotValue
plotValue := price <= myvwapd2 and price > myvwapd3 ? -3 : plotValue
plotValue := price <= myvwapd3 and price > myvwapd4 ? -4 : plotValue
plotValue := price <= myvwapd4 ? -4 : plotValue
plotchar(plotValue, "Ticker std dev", "", location = location.top)
plotColor = color.new(color.gray, 100)
transparencyLevel = 100
transparencyLevel := plotValue > 0 and plotValue <= 1 ? 100 : transparencyLevel
transparencyLevel := plotValue > 1 and plotValue <= 2 ? 70 : transparencyLevel
transparencyLevel := plotValue > 2 ? 0 : transparencyLevel
transparencyLevel := plotValue < 0 and plotValue >= -1 ? 100 : transparencyLevel
transparencyLevel := plotValue < -1 and plotValue >= -2 ? 70 : transparencyLevel
transparencyLevel := plotValue < -2 ? 0 : transparencyLevel
plotColor := plotValue > 0 ? color.new(color.green, transparencyLevel) : plotColor
plotColor := plotValue < 0 ? color.new(color.red, transparencyLevel) : plotColor
plot(1, color=plotColor, style=plot.style_columns)
// plot(0, color=color.gray)
// plot(-4, color=color.gray)
// plot(4, color=color.gray)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment