Skip to content

Instantly share code, notes, and snippets.

@alg0trader
Last active February 4, 2023 03:04
Show Gist options
  • Save alg0trader/f566f194397e23131f20447fe101b1cb to your computer and use it in GitHub Desktop.
Save alg0trader/f566f194397e23131f20447fe101b1cb to your computer and use it in GitHub Desktop.
Dark Blood Wolfline
//@version=4
// New Version > Xadiamant
// === /SETTINGS FOR CRYPTO ===
study(title="Dark Wolf Bloodline", overlay=true)
// === /Source ===
src = input(defval=close, title="Source")
// === /Sampling Period ===
per = input(defval=30, minval=1, title="Dark Period")
// === /Range Multiplier ===
mult = input(defval=3, minval=0.1, title="Dark Range")
// === /Smooth Average Range ===
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ema(abs(x - x[1]), t)
smoothrng = ema(avrng, wper) * m
smoothrng
smrng = smoothrng(src, per, mult)
// === /Range Filter ===
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt[1]) ? x - r < nz(rngfilt[1]) ? nz(rngfilt[1]) : x - r :
x + r > nz(rngfilt[1]) ? nz(rngfilt[1]) : x + r
rngfilt
filt = rngfilt(src, smrng)
plot(filt, color=color.purple)
plot(nz(src[1]))
// === /Filter Direction ===
upward = 0.0
upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])
downward = 0.0
downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])
// === /Target Bands ===
hband = filt + smrng
lband = filt - smrng
// === /Colors ===
filtcolor = upward > 0 ? color.green : downward > 0 ? color.red : color.red
barcolor = src > filt and src > src[1] and upward > 0 ? color.green :
src > filt and src < src[1] and upward > 0 ? color.green :
src < filt and src < src[1] and downward > 0 ? color.red :
src < filt and src > src[1] and downward > 0 ? color.red : color.red
filtplot = plot(filt, color=filtcolor, linewidth=0, transp=100, title="Dark Range")
// === /Target ===
hbandplot = plot(hband, color=color.green, linewidth=1, transp=0, title="High Target")
lbandplot = plot(lband, color=color.red, linewidth=1, transp=0, title="Low Target")
// === /Fills ===
fill(hbandplot, filtplot, color=color.green, transp=100, title="High Target Range")
fill(lbandplot, filtplot, color=color.red, transp=100, title="Low Target Range")
// === /Bar Color ===
barcolor(barcolor)
// === /Break Outs ===
longCond = bool(na)
shortCond = bool(na)
longCond := src > filt and src > src[1] and upward > 0 or
src > filt and src < src[1] and upward > 0
shortCond := src < filt and src < src[1] and downward > 0 or
src < filt and src > src[1] and downward > 0
CondIni = 0
CondIni := longCond ? 1 : shortCond ? -1 : CondIni[1]
longCondition = longCond and CondIni[1] == -1
shortCondition = shortCond and CondIni[1] == 1
// === /Alerts ===
plotshape(longCondition, title="Buy Signal", text="BUY", textcolor=color.green, style=shape.triangleup, size=size.normal, location=location.belowbar, color=color.green, transp=0)
plotshape(shortCondition, title="Sell Signal", text="SELL", textcolor=color.red, style=shape.triangledown, size=size.normal, location=location.abovebar, color=color.purple, transp=0)
alertcondition(longCondition, title="Dark Buy", message="DARK BUY")
alertcondition(shortCondition, title="Dark Sell", message="DARK SELL")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment