mm = (source = 'close', len = 20, data) => {
const mult = 1.5
const basis = sma(source, len, data)
const dev = mult * stdev(source, len, data)
const upperBB = basis + dev
const lowerBB = basis - dev
const ma = sma(source, len, data)
const range = tr(data)
const rangema = sma(null, len, range)
const upperKC = ma + rangema * mult
const lowerKC = ma - rangema * mult
const sqzOn = (lowerBB > lowerKC) && (upperBB < upperKC)
const sqzOff = (lowerBB < lowerKC) && (upperBB > upperKC)
const noSqz = (sqzOn == false) && (sqzOff == false)
const avgValue = avg('close', len, data)
const val = linreg(null, len, data.map((b, idx) => b.close - avgValue[idx]))
return { val }
}