PROTECTED SOURCE SCRIPT

Majkl Manzalovic

16
//version=5
indicator("Majkl Manzalovic", overlay=true, max_lines_count=500)

// ── Inputs ─────────────────────────────────────────
grpB = "Osnovno"
src = input.source(open, "Izvor (za VWAP dev.)", group=grpB)
resetMode = input.string("Dnevno", "VWAP reset", options=["Dnevno","Nedeljno","Mesečno","Nikad"], group=grpB)
// Senčenje isključeno po difoltu
showFill = input.bool(false, "Senčenje između linija", group=grpB)

grpM = "Metoda rastojanja"
method = input.string("StdDev", "Metoda", options=["StdDev","ATR","Pips/poeni"], group=grpM)
atrLen = input.int(14, "ATR dužina", minval=1, group=grpM)
pip = input.float(0.0001, "Vrednost 1 pipa/poena", step=0.0001, group=grpM)

// Gornji pojasevi
grpU = "Gornji pojasevi (iznad plave)"
u1v = input.float(1.23, "Gornji 1 – faktor/poeni", step=0.01, group=grpU)
u1s = input.float(0.0, "Gornji 1 – ručni pomak", step=0.0001, group=grpU)
u2v = input.float(1.9, "Gornji 2 – faktor/poeni", step=0.01, group=grpU)
u2s = input.float(0.0, "Gornji 2 – ručni pomak", step=0.0001, group=grpU)
u3v = input.float(2.3, "Gornji 3 – faktor/poeni", step=0.01, group=grpU)
u3s = input.float(0.0, "Gornji 3 – ručni pomak", step=0.0001, group=grpU)
u4v = input.float(3.0, "Gornji 4 – faktor/poeni", step=0.01, group=grpU)
u4s = input.float(0.0, "Gornji 4 – ručni pomak", step=0.0001, group=grpU)

// Donji pojasevi
grpD = "Donji pojasevi (ispod plave)"
d1v = input.float(1.23, "Donji 1 – faktor/poeni", step=0.01, group=grpD)
d1s = input.float(0.0, "Donji 1 – ručni pomak", step=0.0001, group=grpD)
d2v = input.float(1.9, "Donji 2 – faktor/poeni", step=0.01, group=grpD)
d2s = input.float(0.0, "Donji 2 – ručni pomak", step=0.0001, group=grpD)
d3v = input.float(2.3, "Donji 3 – faktor/poeni", step=0.01, group=grpD)
d3s = input.float(0.0, "Donji 3 – ručni pomak", step=0.0001, group=grpD)
d4v = input.float(3.0, "Donji 4 – faktor/poeni", step=0.01, group=grpD)
d4s = input.float(0.0, "Donji 4 – ručni pomak", step=0.0001, group=grpD)

// ── Boje ───────────────────────────────────────────
cMid = color.new(color.blue, 0)
cUp = color.new(color.red, 0)
cDn = color.new(color.green, 0)
cFillUp = color.new(color.red, 85)
cFillDn = color.new(color.green, 85)
cFillOff = color.new(color.white, 100)

// ── VWAP i reset logika ────────────────────────────
vwap = ta.vwap(src)

var float sum = na
var float sum2 = na
var float n = na

bool isNew = false
if resetMode == "Dnevno"
isNew := ta.change(time("D"))
else if resetMode == "Nedeljno"
isNew := ta.change(time("W"))
else if resetMode == "Mesečno"
isNew := ta.change(time("M"))
else
isNew := false

if isNew
sum := 0.0, sum2 := 0.0, n := 0.0
if na(sum)
sum := 0.0, sum2 := 0.0, n := 0.0

sum += src
sum2 += src*src
n += 1.0
mean = n > 0 ? sum/n : na
stdev = n > 0 ? math.sqrt(math.max(sum2/n - mean*mean, 0.0)) : na
atr = ta.atr(atrLen)

// Rastojanje prema metodi
f_dist(mult) =>
method == "StdDev" ? mult * nz(stdev, 0) :
method == "ATR" ? mult * atr :
mult * pip

// ── Pojasevi ───────────────────────────────────────
u1 = vwap + f_dist(u1v) + u1s
u2 = vwap + f_dist(u2v) + u2s
u3 = vwap + f_dist(u3v) + u3s
u4 = vwap + f_dist(u4v) + u4s

d1 = vwap - f_dist(d1v) - d1s
d2 = vwap - f_dist(d2v) - d2s
d3 = vwap - f_dist(d3v) - d3s
d4 = vwap - f_dist(d4v) - d4s

// ── Plot ──────────────────────────────────────────
pMid = plot(vwap, title="VWAP (plava)", color=cMid, linewidth=2)

pU1 = plot(u1, title="Gornji 1", color=cUp, linewidth=2) // deblji
pU2 = plot(u2, title="Gornji 2", color=cUp, linewidth=1)
pU3 = plot(u3, title="Gornji 3", color=cUp, linewidth=1)
pU4 = plot(u4, title="Gornji 4", color=cUp, linewidth=1)

pD1 = plot(d1, title="Donji 1", color=cDn, linewidth=2) // deblji
pD2 = plot(d2, title="Donji 2", color=cDn, linewidth=1)
pD3 = plot(d3, title="Donji 3", color=cDn, linewidth=1)
pD4 = plot(d4, title="Donji 4", color=cDn, linewidth=1)

// ── Senčenje (ostavljeno ali podrazumevano off) ────
fill(pMid, pU1, color = showFill ? cFillUp : cFillOff)
fill(pU1, pU2, color = showFill ? cFillUp : cFillOff)
fill(pU2, pU3, color = showFill ? cFillUp : cFillOff)
fill(pU3, pU4, color = showFill ? cFillUp : cFillOff)

fill(pMid, pD1, color = showFill ? cFillDn : cFillOff)
fill(pD1, pD2, color = showFill ? cFillDn : cFillOff)
fill(pD2, pD3, color = showFill ? cFillDn : cFillOff)
fill(pD3, pD4, color = showFill ? cFillDn : cFillOff)

إخلاء المسؤولية

لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.