Thanks to LazyBear who I stole the filter code from.
study(title = "POC Dots", shorttitle="POC Dots", overlay=true) resCustom = input(title="Timeframe", type=resolution, defval="15") Length = input(4, minval=1) xPrice = security(tickerid, resCustom, hlc3) xvnoise = abs(xPrice - xPrice) nfastend = 0.666 nslowend = 0.0645 nsignal = abs(xPrice - xPrice[Length]) nnoise = sum(xvnoise, Length) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) nAMA = nz(nAMA) + nsmooth * (xPrice - nz(nAMA)) basis = nAMA BB_length = input(24, minval=1,maxval=100) BB_stdDev = input(2, minval=1, maxval=3) dev = BB_stdDev * stdev(nAMA, BB_length) upper = basis + dev lower = basis - dev plot(basis, color=red) p1 = plot(upper, color=blue) p2 = plot(lower, color=blue) fill(p1,p2, blue)
the middle line represents an average of a lower timeframe, so ideally this will either match the spot where the most volume was traded. way better than a regular moving average. price above will be a good sell and below a cheap buy in general. how you apply this is up to you though.
you can trade extremes and revert to the fair value zone if not trending for example.