How It Works Chart Features House Rules Moderators For the WEB Widgets Stock Charting Library Feature Request FAQ Help & Wiki Twitter

# MTF Standard Deviation Bands Medley

414 0
Description:
• A veritable banquet of MA basis calculations to choose from.
• 3 separate sets of bands to tinker with.
• Optional toggle-able time resolution.
• Optional breakout shapes with their own separate multiplier.
• A fart, some love and kisses. ...and I may have dribbled a bit. Sorry.

Go on. Have a tinker. You know you want to.
```//@version=2

study(title="MTF Standard Deviation Bands Medley", shorttitle="SDBM", overlay=true)

// Revision:    1
// Author:      JayRogers
//
// Description:
//  - A veritable banquet of MA basis calculations to choose from.
//  - 3 seperate sets of bands to tinker with.
//  - Optional breakout shapes with their own seperate multiplier.
//  - A fart, some love and kisses. ...and I may have dribbled a bit. Sorry.

// - INPUTS START
useRes  = input(defval=false, title="Use Fixed Resolution?")
setRes  = input(defval="15", title="Select Resolution", type=resolution)
maType  = input(defval="VWMA", title="Basis Calculation: SMA, EMA, WMA, VWMA, SMMA, DEMA, TEMA, HullMA, LSMA ( case sensitive )", type=string)
maSrc   = input(defval=close, title="Source", type=source)
maLen   = input(defval=20, title="Period", minval=1)
maOff   = input(defval=0, title="Offset", minval=0)
multA   = input(defval=2, title="Deviation A", minval=0, step=0.05)
multB   = input(defval=2.5, title="Deviation B", minval=0, step=0.05)
multC   = input(defval=3, title="Deviation C", minval=0, step=0.05)
showB   = input(defval=false, title="Disable Bands B?")
showC   = input(defval=false, title="Disable Bands C?")
multBr  = input(defval=3.5, title="Breakout Deviation", minval=0, step=0.05)
highBr  = input(defval=high, title="Break Up Source", type=source)
lowBr   = input(defval=low, title="Break Down Source", type=source)
showBr  = input(defval=false, title="Enable Breakout Markers?")
lsmaOff = input(defval=4, title="Offset for LSMA", minval=0)
// - INPUTS END

// - FUNCTIONS
// Returns chosen MA input calculation, default to SMA if blank or typo.
variant(type, src, len, lsma) =>
v1 = sma(src, len)                                                  // Simple
v2 = ema(src, len)                                                  // Exponential
v3 = wma(src, len)                                                  // Weighted
v4 = vwma(src, len)                                                 // Volume Weighted
v5 = na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len    // Smoothed
v6 = 2 * v2 - ema(v2, len)                                          // Double Exponential
v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len)               // Triple Exponential
v8 = wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))   // Hull
v9 = linreg(src, len, lsma)                                         // Least Squares
type=="EMA"?v2 : type=="WMA"?v3 : type=="VWMA"?v4 : type=="SMMA"?v5 : type=="DEMA"?v6 : type=="TEMA"?v7 : type=="HullMA"?v8 : type=="LSMA"?v9 : v1
// Return selected resolution series, or use current
reso(exp, use, res) => use ? security(tickerid, res, exp) : exp
// - FUNCTIONS END

// - SERIES VARIABLES
// Basis and deviation
basis       = reso(variant(maType, maSrc[maOff], maLen, lsmaOff), useRes, setRes)
devA        = multA * reso(stdev(maSrc, maLen), useRes, setRes)
devB        = multB * reso(stdev(maSrc, maLen), useRes, setRes)
devC        = multC * reso(stdev(maSrc, maLen), useRes, setRes)
// Breakouts
devBreak    = multBr * reso(stdev(maSrc, maLen), useRes, setRes)
highBreak   = showBr and highBr >= (basis + devBreak)
lowBreak    = showBr and lowBr <= (basis - devBreak)
// - SERIES VARIABLES END

// - PLOTTING
// Basis
plot(basis, title="basis", color=#999999, linewidth=2, transp=50)
// Upper bands
plot(basis + devA, title="Upper Band A", color=#006666, linewidth=2, transp=50)
plot(showB ? na : (basis + devB), title="Upper Band B", color=#009999, linewidth=2, transp=50)
plot(showC ? na : (basis + devC), title="Upper Band C", color=#00CCCC, linewidth=2, transp=50)
// Lower bands
plot(basis - devA, title="Lower band A", color=#006666, linewidth=2, transp=50)
plot(showB ? na : (basis - devB), title="Lower band B", color=#009999, linewidth=2, transp=50)
plot(showC ? na : (basis - devC), title="Lower band C", color=#00CCCC, linewidth=2, transp=50)
// Breakout shapes
plotshape(highBreak, title="High Break", style=shape.diamond, location=location.abovebar, size=size.tiny, color=#FF0000, transp=50)
plotshape(lowBreak, title="Low Break", style=shape.diamond, location=location.belowbar, size=size.tiny, color=#00FF00, transp=50)
// - PLOTTING END```
United States
United Kingdom
India
España
France
Italia
Polska
Brasil
Россия
Türkiye
Indonesia

한국
Home Stock Screener Forex Signal Finder Economic Calendar How It Works Chart Features House Rules Moderators For the WEB Widgets Stock Charting Library Priority Support Feature Request Blog & News FAQ Help & Wiki Twitter