Last active
February 4, 2023 03:04
-
-
Save alg0trader/f566f194397e23131f20447fe101b1cb to your computer and use it in GitHub Desktop.
Dark Blood Wolfline
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//@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