-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
//@version=5
indicator(".", overlay = true)
//Trend Sar
psar(start1, inc1, maximum1) =>
out1 = float(na)
isUpTrend1 = bool(na)
maxMin1 = float(na)
acc1 = float(na)
prev1 = float(na)
if bar_index >= 1
prev1 := out1[1]
if bar_index == 1
if close > close[1]
isUpTrend1 := true
maxMin1 := math.max(high, high[1])
prev1 := math.min(low, low[1])
prev1
else
isUpTrend1 := false
maxMin1 := math.min(low, low[1])
prev1 := math.max(high, high[1])
prev1
acc1 := start1
acc1
else
isUpTrend1 := isUpTrend1[1]
acc1 := acc1[1]
maxMin1 := maxMin1[1]
maxMin1
if isUpTrend1
if high > maxMin1
maxMin1 := high
acc1 := math.min(acc1 + inc1, maximum1)
acc1
else
if low < maxMin1
maxMin1 := low
acc1 := math.min(acc1 + inc1, maximum1)
acc1
if na(out1)
out1 := prev1 + acc1 * (maxMin1 - prev1)
out1
if isUpTrend1
if low <= out1
isUpTrend1 := false
out1 := maxMin1
maxMin1 := low
acc1 := start1
acc1
else
if high >= out1
isUpTrend1 := true
out1 := maxMin1
maxMin1 := high
acc1 := start1
acc1
if na(out1)
if isUpTrend1
out1 := math.min(out1, bar_index == 1 ? low[1] : math.min(low[1], low[2]))
out1
else
out1 := math.max(out1, bar_index == 1 ? high[1] : math.max(high[1], high[2]))
out1
[out1, acc1, maxMin1, isUpTrend1]
start1 = input(0)
increment1 = input(0.01)
maximum1 = input(0.1)
[p1, AF1, EP1, isUpTrend1] = psar(start1, increment1, maximum1)
newEP1 = EP1 != EP1[1]
epNew1 = newEP1 ? EP1 : na
//plot(p1, 'SAR-TREND', style=plot.style_stepline, color=isUpTrend1 ? color.rgb(76, 175, 79, 100) : color.rgb(255, 82, 82, 100), linewidth=1)
//plot(EP1, 'ONAY', style=plot.style_circles, color=isUpTrend1 ? color.green : color.red, linewidth=2)
//plot(epNew1, 'Trend-Continue', style=plot.style_line, color=isUpTrend1 ? color.rgb(76, 175, 79, 100) : color.rgb(255, 82, 82, 100), linewidth=1)
//Function Sar; slow-avarage-fast
lenxc = input(3)
lenxc20 = input(2)
lenxc50 = input(1)
z(close, lenxc) =>
hxc = 0.0
dxc = 0.0
for i = 0 to lenxc - 1 by 1
kxc = (lenxc - i) * lenxc
hxc += kxc
dxc += close[i] * kxc
dxc
dxc / hxc
cxc = z(close, math.floor(math.sqrt(lenxc)))
//
z20(close, lenxc20) =>
hcx20 = 0.0
dxc20 = 0.0
for i = 0 to lenxc20 - 1 by 1
kxc20 = (lenxc20 - i) * lenxc20
hcx20 += kxc20
dxc20 += close[i] * kxc20
dxc20
dxc20 / hcx20
cxc20 = z20(close, math.floor(math.sqrt(lenxc20)))
//
z50(close, lenxc50) =>
hxc50 = 0.0
dxc50 = 0.0
for i = 0 to lenxc50 - 1 by 1
kxc50 = (lenxc50 - i) * lenxc50
hxc50 += kxc50
dxc50 += close[i] * kxc50
dxc50
dxc50 / hxc50
cxc50 = z50(close, math.floor(math.sqrt(lenxc50)))
//
//
startsx = 0.05
incrementsx = 0.75
maximumsx = 0.35
ssx = ta.sar(startsx, incrementsx, maximumsx)
s1sx = z(ssx, lenxc)
pcsx = close < s1sx ? color.rgb(255, 82, 82, 100) : color.rgb(76, 175, 79, 100)
//plot(s1sx, title="SAR Avarage",style=plot.style_cross, color=pcsx, linewidth=1)
startsx20 = 0
incrementsx20 = 0.01
maximumsx20 = 1
ssx20 = ta.sar(startsx20, incrementsx20, maximumsx20)
s1sx20 = z20(ssx20, lenxc20)
pcsx20 = close < s1sx20 ? color.rgb(255, 82, 82, 00) : color.rgb(76, 175, 79, 00)
plot(s1sx20, title="YavaşDöngü",style=plot.style_cross, color=pcsx20, linewidth=2)
startsx50 = 0
incrementsx50 = 0.1
maximumsx50 = 1
ssx50 = ta.sar(startsx50, incrementsx50, maximumsx50)
s1sx50 = z50(ssx50, lenxc50)
pcsx50 = close < s1sx50 ? color.rgb(255, 82, 82, 00) : color.rgb(76, 175, 79, 00)
plot(s1sx50, title="HızlıDöngü",style=plot.style_cross, color=pcsx50, linewidth=2)
//Signal
xyz=ta.crossover(close,s1sx50)
plotshape(xyz? s1sx50:na, style=shape.circle, color=isUpTrend1 ? color.rgb(34, 247, 6) : color.rgb(247, 3, 3), size=size.tiny)
xyz1=ta.crossover(s1sx50,s1sx20)
plotshape(xyz1? s1sx20:na, style=shape.circle, color=isUpTrend1 ? color.rgb(34, 247, 6) : color.rgb(247, 3, 3), size=size.small)
//END
-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
//@version=5
indicator(". ", overlay = true, max_boxes_count=100,max_lines_count = 100, max_labels_count = 100, format=format.price)
//Psar
psar(start1, inc1, maximum1) =>
out1 = float(na)
isUpTrend1 = bool(na)
maxMin1 = float(na)
acc1 = float(na)
prev1 = float(na)
if bar_index >= 1
prev1 := out1[1]
if bar_index == 1
if close > close[1]
isUpTrend1 := true
maxMin1 := math.max(high, high[1])
prev1 := math.min(low, low[1])
prev1
else
isUpTrend1 := false
maxMin1 := math.min(low, low[1])
prev1 := math.max(high, high[1])
prev1
acc1 := start1
acc1
else
isUpTrend1 := isUpTrend1[1]
acc1 := acc1[1]
maxMin1 := maxMin1[1]
maxMin1
if isUpTrend1
if high > maxMin1
maxMin1 := high
acc1 := math.min(acc1 + inc1, maximum1)
acc1
else
if low < maxMin1
maxMin1 := low
acc1 := math.min(acc1 + inc1, maximum1)
acc1
if na(out1)
out1 := prev1 + acc1 * (maxMin1 - prev1)
out1
if isUpTrend1
if low <= out1
isUpTrend1 := false
out1 := maxMin1
maxMin1 := low
acc1 := start1
acc1
else
if high >= out1
isUpTrend1 := true
out1 := maxMin1
maxMin1 := high
acc1 := start1
acc1
if na(out1)
if isUpTrend1
out1 := math.min(out1, bar_index == 1 ? low[1] : math.min(low[1], low[2]))
out1
else
out1 := math.max(out1, bar_index == 1 ? high[1] : math.max(high[1], high[2]))
out1
[out1, acc1, maxMin1, isUpTrend1]
start1 = input(0)
increment1 = input(0.01)
maximum1 = input(1)
[p1, AF1, EP1, isUpTrend1] = psar(start1, increment1, maximum1)
newEP1 = EP1 != EP1[1]
epNew1 = newEP1 ? EP1 : na
plot(p1, 'SAR', style=plot.style_cross, color=isUpTrend1 ? color.rgb(76, 175, 79, 100) : color.rgb(255, 82, 82, 100), linewidth=2)
plot(EP1, 'Break', style=plot.style_circles, color=isUpTrend1 ? color.green : color.red, linewidth=1)
//Reverse
requestSecurity(string _symbol, string _res, bool _repaints) =>
repIndex = _repaints ? 0 : barstate.isrealtime ? 1 : 0
resIndex = _repaints ? 0 : barstate.isrealtime ? 0 : 1
[h, l, t] = request.security(_symbol, _res, [high[repIndex], low[repIndex], time[repIndex]])
[h[resIndex], l[resIndex], t[resIndex]]
var GRP1 = "General Settings"
string res = input.timeframe(title = "Resolution", defval = "", group = GRP1)
bool ignoreInsideBars = input.bool(title = "Ignore Inside Bars?", defval = true, group = GRP1)
bool rep = input.bool(title = "Allow Repainting?", defval = false, group = GRP1)
var string GRP2 = "Short Term Settings"
bool showSTHighs = input.bool(title = "Show Short Term Highs?", defval = true, group = GRP2)
color stHighsColor = input.color(color.red, "Short Term Highs Color", group = GRP2)
bool showSTLows = input.bool(title = "Show Short Term Lows?", defval = true, group = GRP2)
color stLowsColor = input.color(color.yellow, "Short Term Lows Color", group = GRP2)
var string GRP3 = "Mid Term Settings"
bool showMTHighs = input.bool(title = "Show Mid Term Highs?", defval = true, group = GRP3)
color mtHighsColor = input.color(color.red, "Mid Term Highs Color", group = GRP3)
bool showMTLows = input.bool(title = "Show Mid Term Lows?", defval = true, group = GRP3)
color mtLowsColor = input.color(color.aqua, "Mid Term Lows Color", group = GRP3)
var string GRP4 = "Long Term Settings"
bool showLTHighs = input.bool(title = "Show Long Term Highs?", defval = true, group = GRP4)
color ltHighsColor = input.color(color.red, "Long Term Highs Color", group = GRP4)
bool showLTLows = input.bool(title = "Show Long Term Lows?", defval = true, group = GRP4)
color ltLowsColor = input.color(color.white, "Long Term Lows Color", group = GRP4)
[h, l, t] = requestSecurity(syminfo.ticker, res, rep)
type ReversalPoint
int bar_time
float price
var lowShortRevPoints = array.new<ReversalPoint>()
var highShortRevPoints = array.new<ReversalPoint>()
var lowMediumRevPoints = array.new<ReversalPoint>()
var highMediumRevPoints = array.new<ReversalPoint>()
isReversalPoint(bool isLow, float firstSrc, float midSrc, float lastSrc, bool isInsideBar) =>
bool isReversalPoint = false
if not (isInsideBar and ignoreInsideBars)
if isLow
isReversalPoint := lastSrc > midSrc and midSrc < firstSrc
else
isReversalPoint := lastSrc < midSrc and midSrc > firstSrc
isReversalPoint
plotReversalPoint(bool isLow, ReversalPoint revPoint, color revPointColor, string labelSize, bool createLabel) =>
if createLabel
label.new(revPoint.bar_time, revPoint.price, isLow ? '▲' : '▼',
xloc = xloc.bar_time, yloc = isLow ? yloc.belowbar : yloc.abovebar, size = labelSize, color = color(na),
textcolor = revPointColor, style = label.style_text_outline)
getReversalPoints(bool isLow, ReversalPoint[] sourceArray, color plotColor, ReversalPoint newRp, string labelSize,
bool createLabel, bool isInsideBar) =>
ReversalPoint result = na
sourceArray.push(newRp)
plotReversalPoint(isLow, newRp, plotColor, labelSize, createLabel)
int arraySize = sourceArray.size()
float midArrayValue = arraySize >= 2 ? sourceArray.get(arraySize - 2).price : na
float firstArrayValue = arraySize >= 3 ? sourceArray.get(arraySize - 3).price : na
if not na(firstArrayValue) and not na(midArrayValue) and isReversalPoint(isLow, firstArrayValue, midArrayValue, newRp.price, isInsideBar)
result := sourceArray.get(arraySize - 2)
result
bool isInsideBar = h < nz(h[1]) and l > nz(l[1])
ReversalPoint shortTermLow = isReversalPoint(true, nz(l[2]), nz(l[1]), l, isInsideBar) ? ReversalPoint.new(nz(t[1]), nz(l[1])) : na
ReversalPoint midTermLow = na
ReversalPoint longTermLow = na
if not na(shortTermLow)
midTermLow := getReversalPoints(true, lowShortRevPoints, stLowsColor, shortTermLow, size.tiny, showSTLows, isInsideBar)
if not na(midTermLow)
longTermLow := getReversalPoints(true, lowMediumRevPoints, mtLowsColor, midTermLow, size.small, showMTLows, isInsideBar)
if not na(longTermLow)
plotReversalPoint(true, longTermLow, ltLowsColor, size.normal, showLTLows)
ReversalPoint shortTermHigh = isReversalPoint(false, nz(h[2]), nz(h[1]), h, isInsideBar) ? ReversalPoint.new(nz(t[1]), nz(h[1])) : na
ReversalPoint midTermHigh = na
ReversalPoint longTermHigh = na
if not na(shortTermHigh)
midTermHigh := getReversalPoints(false, highShortRevPoints, stHighsColor, shortTermHigh, size.tiny, showSTHighs, isInsideBar)
if not na(midTermHigh)
longTermHigh := getReversalPoints(false, highMediumRevPoints, mtHighsColor, midTermHigh, size.small, showMTHighs, isInsideBar)
if not na(longTermHigh)
plotReversalPoint(false, longTermHigh, ltHighsColor, size.normal, showLTHighs)
//TrailingStop
start = 5
lookback = input(1, "Sensitivity", tooltip="Low (High Sensitivity), High (Low Sensitivity).\n\nAdjust according to timeframe and asset.")
resp = 1
smoothing = input(2, "Smoothing")
source = input(close, "Source")
// global
var ix = -1
var mal = array.new_int(0)
// functions
avg(source, len) =>
sum = 0.0
for i = 0 to len-1
sum += source[i]
sum/len
bull = close > open
wick_touch(x) =>
bull ? ((close <= x and x <= high) or (low <= x and x <= open)) : ((open <= x and x <= high) or (low <= x and x <= close))
body_touch(x) =>
bull ? (open < x and x < close) : (close < x and x < open)
touches(t) =>
touches = 0
for i = 0 to lookback-1
touches += t[i] ? 1 : 0
touches
// local
ix := ix+1
prev_mal = ix >= 1 ? array.get(mal, ix-1) : start
cma = avg(source, prev_mal)
cma_p1 = avg(source, prev_mal+1)
cma_m1 = avg(source, prev_mal-1)
d = touches(wick_touch(cma))
d_p1 = touches(wick_touch(cma_p1))
d_m1 = touches(wick_touch(cma_m1))
d_b = touches(body_touch(cma))
d_p1_b = touches(body_touch(cma_p1))
d_m1_b = touches(body_touch(cma_m1))
any_body_touch = d_b > 0 or d_p1_b > 0 or d_m1_b > 0
no_wick_touch = d <= 0 and d_p1 <= 0 and d_m1 <= 0
wick_maximized = d >= d_p1 and d >= d_m1 ? prev_mal : (d_p1 >= d and d_p1 >= d_m1 ? prev_mal+resp : (d_m1 >= d and d_m1 >= d_p1 ? prev_mal-resp : na))
uptrend = cma > cma[1]
downtrend = cma < cma[1]
against_trend = (uptrend and close < cma) or (downtrend and close > cma)
new_mal = no_wick_touch or against_trend ? prev_mal-resp : (any_body_touch ? prev_mal+resp : wick_maximized)
next_mal = na(new_mal) ? prev_mal : new_mal
array.push(mal, next_mal < 2 ? 2 : (next_mal > 200 ? 200 : next_mal))
scma = ta.ema(cma, smoothing)
plot(scma, "Trailing Stop", style=plot.style_line, color=color.rgb(6, 233, 214, 00))
//Stop
import jdehorty/KernelFunctions/2 as kernel
DFT(x, y, Nx, _dir) =>
float _arg = 0.0
float _cos = 0.0
float _sin = 0.0
float xArr_i = 0.0
float yArr_i = 0.0
xArr = array.new_float(array.size(x))
yArr = array.new_float(array.size(y))
for i = 0 to Nx - 1 by 1
xArr_i := 0.0
yArr_i := 0.0
kx = float(i) / float(Nx)
_arg := -_dir * 2 * math.pi * kx
for k = 0 to Nx - 1 by 1
_cos := math.cos(k * _arg)
_sin := math.sin(k * _arg)
xArr_i += array.get(x, k) * _cos - array.get(y, k) * _sin
yArr_i += array.get(x, k) * _sin + array.get(y, k) * _cos
yArr_i
array.set(xArr, i, xArr_i)
array.set(yArr, i, yArr_i)
if _dir == 1
for i = 0 to Nx - 1 by 1
array.set(x, i, array.get(xArr, i) / float(Nx))
array.set(y, i, array.get(yArr, i) / float(Nx))
else
for i = 0 to Nx - 1 by 1
array.set(x, i, array.get(xArr, i))
array.set(y, i, array.get(yArr, i))
//======================================================================================================================
N = input.int(1,"Fourier Period")
xval = input.source(close,"Fourier X Series",tooltip = "i.e. the source of the discrete Fourier"+
" transform (with the Y Series being the bars through time.)")
highlighting = input.bool(true,"Highlighting")
smoothing66 = input.int(10,"Kernel Smoothing")
// Fourier transform
x = array.new_float(N, 0.0)
y = array.new_float(N, 0.0)
for i = 0 to N - 1
array.set(x, i, xval[i])
array.set(y, i, 0.0)
DFT(x, y, N, 1)
mag = array.new_float(N, 0.0)
for i = 0 to N - 1
mag_i = math.sqrt(math.pow(array.get(x, i), 2) + math.pow(array.get(y, i), 2))
array.set(mag, i, mag_i)
dft = array.get(mag,0)
dfts = kernel.rationalQuadratic(dft,25,1,smoothing66)
plot(dfts, "STOP", color=color.rgb(255, 153, 0, 00), style=plot.style_line )
//Top-Bottom
plot = input.bool(true, title="Display past dots")
OverSold = input(0)
OverBought = input(100)
length1 = input.int(2, title = "Length")
tr = input.int(1, title = "Trigger Length")
// Define the function
func(source, int len, int tr) =>
HP = 0.00, a1 = 0.00, b1 = 0.00, c1 = 0.00, c2 = 0.00, c3 = 0.00, ag = 0.00, Sp = 0.00, X = 0.00, Quotient1 = 0.00, Quotient2 = 0.00, w = math.sqrt(.5)
HP := 2500 * (source - 2 * nz(source[1]) + nz(source[2])) + 1.92 * nz(HP[1]) - .9216 * nz(HP[2])
a1 := math.exp(-math.sqrt(2) * math.pi / len)
b1 := 2 * a1 * math.cos(math.sqrt(2) * math.pi / len)
c2 := b1
c3 := -a1 * a1
c1 := 1 - c2 - c3
ag := c1 * (HP + nz(HP[1])) / 2 + c2 * nz(ag[1]) + c3 * nz(ag[2])
Sp := .991 * nz(Sp[1])
if math.abs(ag) > Sp
Sp := math.abs(ag)
Sp
if Sp != 0
X := ag / Sp
X
q1 = X * 60 + 50
out= ta.sma(q1, tr)
[out]
[k] = func(close, length1,tr)
OverboughtCond = k > OverBought
OversoldCond = k < OverSold
plotshape(plot? OverboughtCond:na, style=shape.cross, location=location.abovebar, color=color.new(color.red, 50), size=size.tiny)
plotshape(plot? OversoldCond:na, style=shape.cross, location=location.belowbar, color=color.new(color.lime, 50), size=size.tiny)
var label myLabel_Overbought = na
if OverboughtCond
// Delete the previous label if there is one
if not na(myLabel_Overbought)
label.delete(myLabel_Overbought[1])
// Create a new label
myLabel_Overbought := label.new(bar_index, high, 'Top',yloc=yloc.abovebar,style=label.style_circle, size=size.normal, color=color.rgb(255, 82, 82, 50), textcolor=color.white)
myLabel_Overbought
var label myLabel_Oversold = na
if OversoldCond
// Delete the previous label if there is one
if not na(myLabel_Oversold)
label.delete(myLabel_Oversold[1])
// Create a new label
myLabel_Oversold := label.new(bar_index, low, 'Bottom',yloc=yloc.belowbar,style=label.style_circle, size=size.normal, color=color.rgb(0, 230, 119, 50), textcolor=color.white)
myLabel_Oversold
//
startsa = input.float(0, "Starting value")
incsa = input.float(0.01, "Increment")
maxsa = input.float(1, "Max Value")
widthsa = input.float(9.00, "Zone width")
atrs = ta.atr(100) * widthsa
sarone = ta.sar(startsa, incsa, maxsa)
sarzone = if close > sarone
sarone + atrs
else if close < sarone
sarone - atrs
sartwo = ta.sar(startsa/2, incsa/2, maxsa/2)
p1sa = plot(sarone, "C-BT", color = close > sarone ? #2962ff00 : #e91e6200, style=plot.style_circles)
p3sa = plot(sarzone, "C-TB", color = close > sarone ? #2962ff00 : #e91e6200, style=plot.style_circles)
fill(p1sa, p3sa, color = close > sarone ? color.new(#848486, 80) : color.new(#e91e62, 100))
//plot(sartwo, "Second SAR", color = close > sartwo ? color.new(#2962ff, 50) : color.new(#e91e63, 50), style=plot.style_linebr)
//
//Signal
xyz=ta.crossover(sarone,ohlc4)
plotshape(xyz? sarone:na, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.normal)
xyz1=ta.crossunder(sarone,ohlc4)
plotshape(xyz1? sarone:na, style=shape.triangleup, location=location.belowbar, color=color.new(color.lime, 0), size=size.normal)
//END
//Emas
//price = request.security(syminfo.tickerid, "", close)
q1 = ta.ema(ohlc4, 1)
q5 = ta.ema(ohlc4, 5)
q9 = ta.ema(ohlc4, 9)
q13 = ta.ema(ohlc4, 13)
q26 = ta.ema(ohlc4, 26)
q50 = ta.ema(ohlc4, 50)
q100 = ta.ema(ohlc4, 100)
q200 = ta.ema(ohlc4, 200)
qeq=(q1+q5+q9+q13+q26+q50+q100+q200)/8
plot(qeq,"AVG-EMA",color.yellow, linewidth=1)
-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358....hissenetteki yörük....
// https://www.hisse.net/topluluk/newreply.php?do=postreply&t=45225
//@version=2
study("3günlükdünya",overlay=true)
xzx = input(true, title="Adaptive Coloring", type=bool)
source = close
length = input(3)
//resolution
x1=input("1", type=resolution, title="Resolution")
x3=input("3", type=resolution, title="Resolution")
x5=input("5", type=resolution, title="Resolution")
x15=input("15", type=resolution, title="Resolution")
x30=input("30", type=resolution, title="Resolution")
x45=input("45", type=resolution, title="Resolution")
x60=input("60", type=resolution, title="Resolution")
x120=input("120", type=resolution, title="Resolution")
x180=input("180", type=resolution, title="Resolution")
x240=input("240", type=resolution, title="Resolution")
x720=input("D", type=resolution, title="Resolution")
//output functions
z = ema(source,length)
// Security
y1 = security(tickerid, x1, z)
y3 = security(tickerid, x3, z)
y5 = security(tickerid, x5, z)
y15 = security(tickerid, x15, z)
y30 = security(tickerid, x30, z)
y45 = security(tickerid, x45, z)
y60 = security(tickerid, x60, z)
y120 = security(tickerid, x120, z)
y180 = security(tickerid, x180, z)
y240 = security(tickerid, x240, z)
y720 = security(tickerid, x720, z)
//Signal
xyzq=(y1+y3+y5+y15+y30+y45+y60+y120+y180+y240+y720)/11
plot(xyzq, title="3EMA", style=linebr, color=xzx?(y15>close?red:lime) : silver, transp=00, linewidth=1)
//
length1 = input(5)
//resolution
x1sd=input("1", type=resolution, title="Resolution")
x3sd=input("3", type=resolution, title="Resolution")
x5sd=input("5", type=resolution, title="Resolution")
x15sd=input("15", type=resolution, title="Resolution")
x30sd=input("30", type=resolution, title="Resolution")
x45sd=input("45", type=resolution, title="Resolution")
x60sd=input("60", type=resolution, title="Resolution")
x120sd=input("120", type=resolution, title="Resolution")
x180sd=input("180", type=resolution, title="Resolution")
x240sd=input("240", type=resolution, title="Resolution")
x720sd=input("D", type=resolution, title="Resolution")
//output functions
zsd = ema(source,length1)
// Security
y1sd = security(tickerid, x1sd, zsd)
y3sd = security(tickerid, x3sd, zsd)
y5sd = security(tickerid, x5sd, zsd)
y15sd = security(tickerid, x15sd, zsd)
y30sd = security(tickerid, x30sd, zsd)
y45sd = security(tickerid, x45sd, zsd)
y60sd = security(tickerid, x60sd, zsd)
y120sd = security(tickerid, x120sd, zsd)
y180sd = security(tickerid, x180sd, zsd)
y240sd = security(tickerid, x240sd, zsd)
y720sd = security(tickerid, x720sd, zsd)
//Signal
xyzqsd=(y1sd+y3sd+y5sd+y15sd+y30sd+y45sd+y60sd+y120sd+y180sd+y240sd+y720sd)/11
plot(xyzqsd, title="5EMA", style=linebr, color=xzx?(y15sd>close?red:lime) : silver, transp=00, linewidth=1)
//
length1x = input(20)
//resolution
x1sdx=input("1", type=resolution, title="Resolution")
x3sdx=input("3", type=resolution, title="Resolution")
x5sdx=input("5", type=resolution, title="Resolution")
x15sdx=input("15", type=resolution, title="Resolution")
x30sdx=input("30", type=resolution, title="Resolution")
x45sdx=input("45", type=resolution, title="Resolution")
x60sdx=input("60", type=resolution, title="Resolution")
x120sdx=input("120", type=resolution, title="Resolution")
x180sdx=input("180", type=resolution, title="Resolution")
x240sdx=input("240", type=resolution, title="Resolution")
x720sdx=input("D", type=resolution, title="Resolution")
//output functions
zsdx = ema(source,length1x)
// Security
y1sdx = security(tickerid, x1sdx, zsdx)
y3sdx = security(tickerid, x3sdx, zsdx)
y5sdx = security(tickerid, x5sdx, zsdx)
y15sdx = security(tickerid, x15sdx, zsdx)
y30sdx = security(tickerid, x30sdx, zsdx)
y45sdx = security(tickerid, x45sdx, zsdx)
y60sdx = security(tickerid, x60sdx, zsdx)
y120sdx = security(tickerid, x120sdx, zsdx)
y180sdx = security(tickerid, x180sdx, zsdx)
y240sdx = security(tickerid, x240sdx, zsdx)
y720sdx = security(tickerid, x720sdx, zsdx)
//Signal
xyzqsdx=(y1sdx+y3sdx+y5sdx+y15sdx+y30sdx+y45sdx+y60sdx+y120sdx+y180sdx+y240sdx+y720sdx)/11
plot(xyzqsdx, title="20EMA", style=linebr, color=xzx?(y15sdx>close?red:lime) : silver, transp=00, linewidth=1)
xyzqsdxo=(xyzq+xyzqsd+xyzqsdx)/3
plot(xyzqsdxo, title="3-5-20EMA", style=linebr, color=xzx?(y15sdx>close?red:lime) : silver, transp=00, linewidth=1)
-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
//@version=2
study("*",overlay=true)
//resolution
x1gh=input("15", type=resolution, title="Resolution")
//output functions
zgh = sar(0, 0.1, 1)
z1gh = sar(0, 0.01, 1)
z2gh = sar(0, 0.02, 0.2)
z3gh = sar(0, 0.04, 0.4)
z4gh = sar(0, 0.06, 0.6)
z5gh = sar(0.1, 0.02, 0.2)
z6gh = sar(0.1, 0.04, 0.4)
z7gh = sar(0.1, 0.06, 0.6)
z8gh = sar(0.01, 0.02, 0.2)
z9gh = sar(0.01, 0.04, 0.4)
z10gh = sar(0.01, 0.06, 0.6)
// Security
y1gh = security(tickerid, x1gh, zgh)
y3gh = security(tickerid, x1gh, z1gh)
y5gh = security(tickerid, x1gh, z2gh)
y15gh = security(tickerid, x1gh, z3gh)
y30gh = security(tickerid, x1gh, z4gh)
y45gh = security(tickerid, x1gh, z5gh)
y60gh = security(tickerid, x1gh, z6gh)
y120gh = security(tickerid, x1gh, z7gh)
y180gh = security(tickerid, x1gh, z8gh)
y240gh = security(tickerid, x1gh, z9gh)
y720gh = security(tickerid, x1gh, z10gh)
//Plots
xzgh = input(true, title="Adaptive Coloring", type=bool)
//plot(y1, title="1", style=circles, color=xz?(y1>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y3, title="3", style=circles, color=xz?(y3>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y5, title="5", style=circles, color=xz?(y5>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y15, title="15", style=circles, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y30, title="30", style=circles, color=xz?(y30>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y45, title="45", style=circles, color=xz?(y45>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y60, title="60", style=circles, color=xz?(y60>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y120, title="120", style=circles, color=xz?(y120>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y180, title="180", style=circles, color=xz?(y180>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y240, title="240", style=circles, color=xz?(y240>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y720, title="720", style=circles, color=xz?(y720>close?red:lime) : silver, transp=100, linewidth=1)
//Functions Sar for support and resistance
//q3 = sar(0.01,0.02,0.2)
//q2 = sar(0.01,0.04,0.4)
//q1 = sar(0.01,0.06,0.6)
//plot(q1, title="FAST", style=circles, color=xz?(q1>close?red:lime) : silver, transp=100, linewidth=1)
//plot(q2, title="AVARAGE", style=circles, color=xz?(q2>close?red:lime) : silver, transp=00, linewidth=1)
//plot(q3, title="SLOW", style=circles, color=xz?(q3>close?red:lime) : silver, transp=100, linewidth=1)
//Signal
xyzqgh=(y1gh+y3gh+y5gh+y15gh+y30gh+y45gh+y60gh+y120gh+y180gh+y240gh+y720gh+close)/12
xyzq1gh=(y1gh+y3gh+y5gh+y15gh+y30gh+y45gh+y60gh+y120gh+y180gh+y240gh+y720gh-close)/12
xyzq12gh=(xyzqgh+xyzq1gh)/2
plot(xyzqgh, title="TimeLESS", style=line, color=xzgh?(y15gh>close?red:lime) : silver, transp=00, linewidth=1)
//plot(xyzq1gh, title="N-Major15", style=linebr, color=xzgh?(y15gh>close?red:lime) : silver, transp=00, linewidth=2)
//plot(xyzq12gh, title="15", style=line, color=xzgh?(y15gh>close?red:lime) : silver, transp=00, linewidth=1)
//Bar Coloring
Green = close > xyzqgh
Red = close < xyzqgh
BarColor = iff(Green,lime,red)
Buy = cross(close,xyzqgh)
Sell = cross(xyzqgh,close)
barcolor(color=BarColor)
//End
-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
//@version=5
indicator(".", overlay = true)
//Trend Sar
psar(start1, inc1, maximum1) =>
out1 = float(na)
isUpTrend1 = bool(na)
maxMin1 = float(na)
acc1 = float(na)
prev1 = float(na)
if bar_index >= 1
prev1 := out1[1]
if bar_index == 1
if close > close[1]
isUpTrend1 := true
maxMin1 := math.max(high, high[1])
prev1 := math.min(low, low[1])
prev1
else
isUpTrend1 := false
maxMin1 := math.min(low, low[1])
prev1 := math.max(high, high[1])
prev1
acc1 := start1
acc1
else
isUpTrend1 := isUpTrend1[1]
acc1 := acc1[1]
maxMin1 := maxMin1[1]
maxMin1
if isUpTrend1
if high > maxMin1
maxMin1 := high
acc1 := math.min(acc1 + inc1, maximum1)
acc1
else
if low < maxMin1
maxMin1 := low
acc1 := math.min(acc1 + inc1, maximum1)
acc1
if na(out1)
out1 := prev1 + acc1 * (maxMin1 - prev1)
out1
if isUpTrend1
if low <= out1
isUpTrend1 := false
out1 := maxMin1
maxMin1 := low
acc1 := start1
acc1
else
if high >= out1
isUpTrend1 := true
out1 := maxMin1
maxMin1 := high
acc1 := start1
acc1
if na(out1)
if isUpTrend1
out1 := math.min(out1, bar_index == 1 ? low[1] : math.min(low[1], low[2]))
out1
else
out1 := math.max(out1, bar_index == 1 ? high[1] : math.max(high[1], high[2]))
out1
[out1, acc1, maxMin1, isUpTrend1]
start1 = input(0)
increment1 = input(0.1)
maximum1 = input(1)
[p1, AF1, EP1, isUpTrend1] = psar(start1, increment1, maximum1)
newEP1 = EP1 != EP1[1]
epNew1 = newEP1 ? EP1 : na
//plot(p1, 'SAR', style=plot.style_stepline, color=isUpTrend1 ? color.rgb(76, 175, 79, 100) : color.rgb(255, 82, 82, 100), linewidth=1)
//plot(EP1, 'ONAY', style=plot.style_circles, color=isUpTrend1 ? color.green : color.red, linewidth=2)
//plot(epNew1, 'Trend-Continue', style=plot.style_line, color=isUpTrend1 ? color.rgb(76, 175, 79, 00) : color.rgb(255, 82, 82, 00), linewidth=1)
asd1=(epNew1-p1 )+close
plot(asd1, title='F+Sar',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asdx1=close-(epNew1-p1 )
plot(asdx1, title='F-Sar',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
//Function
inp = input(title='Source', defval=close)
res = input.timeframe(title='Resolution', defval='720')
rep = input(title='Allow Repainting?', defval=false)
//////////////////////////////////////////////////////
src1 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
fastLength1 = input.int(title='FastLength', defval=12, minval=1)
slowLength1 = input.int(title='SlowLength', defval=26, minval=1)
signalLength1 = input.int(title='SignalLength', defval=9, minval=1)
macdLevel1 = input.float(title='MacdLevel', defval=0, minval=0)
fastAlpha1 = 2.0 / (1 + fastLength1)
slowAlpha1 = 2.0 / (1 + slowLength1)
fastEma1 = ta.ema(src1, fastLength1)
slowEma1 = ta.ema(src1, slowLength1)
pMacdEq1 = fastAlpha1 - slowAlpha1 != 0 ? ((nz(fastEma1[1]) * fastAlpha1) - (nz(slowEma1[1]) * slowAlpha1)) / (fastAlpha1 - slowAlpha1) : 0
pMacdEqSig1 = ta.ema(pMacdEq1, signalLength1)
pMacdLevel1 = fastAlpha1 - slowAlpha1 != 0 ? (macdLevel1 - (nz(fastEma1[1]) * (1 - fastAlpha1)) + (nz(slowEma1[1]) * (1 - slowAlpha1))) / (fastAlpha1 - slowAlpha1) : 0
slo1 = src1 - pMacdEq1
sig1 = slo1 > 0 ? slo1 > nz(slo1[1]) ? 2 : 1 : slo1 < 0 ? slo1 < nz(slo1[1]) ? -2 : -1 : 0
rmacdColor = sig1 > 1 ? color.lime : sig1 > 0 ? color.lime : sig1 < -1 ? color.red : sig1 < 0 ? color.red : color.white
//plot(pMacdEq1, title='Trend',style=plot.style_cross, color=rmacdColor, linewidth=2)
//plot(pMacdEqSig1, title='Stop', color=color.rgb(255, 255, 255, 100), linewidth=1)
//plot(pMacdLevel1, title='MacdLevel', color=color.blue, linewidth=2)
xyzx=(pMacdEq1+pMacdEqSig1+pMacdLevel1)/3
//plot(xyzx, title='Avarage', color=color.rgb(241, 225, 8, 100), linewidth=2)
//plot(xyzx, title='Trend1',style=plot.style_cross, color=rmacdColor, linewidth=2)
asd=(pMacdEq1-xyzx )+close
plot(asd, title='F+Macd',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asdx=close-(pMacdEq1-xyzx )
plot(asdx, title='F-Macd',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
////////////////////////////////////////////////////////////////////////////
-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
//@version=5
indicator('.', max_bars_back=100, overlay=true)
//Function sar
psar(start1, inc1, maximum1) =>
out1 = float(na)
isUpTrend1 = bool(na)
maxMin1 = float(na)
acc1 = float(na)
prev1 = float(na)
if bar_index >= 1
prev1 := out1[1]
if bar_index == 1
if close > close[1]
isUpTrend1 := true
maxMin1 := math.max(high, high[1])
prev1 := math.min(low, low[1])
prev1
else
isUpTrend1 := false
maxMin1 := math.min(low, low[1])
prev1 := math.max(high, high[1])
prev1
acc1 := start1
acc1
else
isUpTrend1 := isUpTrend1[1]
acc1 := acc1[1]
maxMin1 := maxMin1[1]
maxMin1
if isUpTrend1
if high > maxMin1
maxMin1 := high
acc1 := math.min(acc1 + inc1, maximum1)
acc1
else
if low < maxMin1
maxMin1 := low
acc1 := math.min(acc1 + inc1, maximum1)
acc1
if na(out1)
out1 := prev1 + acc1 * (maxMin1 - prev1)
out1
if isUpTrend1
if low <= out1
isUpTrend1 := false
out1 := maxMin1
maxMin1 := low
acc1 := start1
acc1
else
if high >= out1
isUpTrend1 := true
out1 := maxMin1
maxMin1 := high
acc1 := start1
acc1
if na(out1)
if isUpTrend1
out1 := math.min(out1, bar_index == 1 ? low[1] : math.min(low[1], low[2]))
out1
else
out1 := math.max(out1, bar_index == 1 ? high[1] : math.max(high[1], high[2]))
out1
[out1, acc1, maxMin1, isUpTrend1]
start1 = input(0)
increment1 = input(0.1)
maximum1 = input(1)
[p1, AF1, EP1, isUpTrend1] = psar(start1, increment1, maximum1)
newEP1 = EP1 != EP1[1]
epNew1 = newEP1 ? EP1 : na
//plot(p1, 'SAR', style=plot.style_stepline, color=isUpTrend1 ? color.rgb(76, 175, 79, 100) : color.rgb(255, 82, 82, 100), linewidth=1)
//plot(EP1, 'ONAY', style=plot.style_circles, color=isUpTrend1 ? color.green : color.red, linewidth=2)
//plot(epNew1, 'Trend-Continue', style=plot.style_line, color=isUpTrend1 ? color.rgb(76, 175, 79, 00) : color.rgb(255, 82, 82, 00), linewidth=1)
asd1we=(epNew1-p1 )+close
plot(asd1we, title='SarHedef',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asdx1we=close-(epNew1-p1 )
plot(asdx1we, title='SarHedef',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
//Time period
inp = input(title='Source', defval=close)
res = input.timeframe(title='Resolution', defval='15')
rep = input(title='Allow Repainting?', defval=false)
//
src1 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
fastLength1 = input.int(title='FastLength', defval=12, minval=1)
slowLength1 = input.int(title='SlowLength', defval=26, minval=1)
signalLength1 = input.int(title='SignalLength', defval=9, minval=1)
macdLevel1 = input.float(title='MacdLevel', defval=0, minval=0)
fastAlpha1 = 2.0 / (1 + fastLength1)
slowAlpha1 = 2.0 / (1 + slowLength1)
fastEma1 = ta.ema(src1, fastLength1)
slowEma1 = ta.ema(src1, slowLength1)
pMacdEq1 = fastAlpha1 - slowAlpha1 != 0 ? ((nz(fastEma1[1]) * fastAlpha1) - (nz(slowEma1[1]) * slowAlpha1)) / (fastAlpha1 - slowAlpha1) : 0
pMacdEqSig1 = ta.ema(pMacdEq1, signalLength1)
pMacdLevel1 = fastAlpha1 - slowAlpha1 != 0 ? (macdLevel1 - (nz(fastEma1[1]) * (1 - fastAlpha1)) + (nz(slowEma1[1]) * (1 - slowAlpha1))) / (fastAlpha1 - slowAlpha1) : 0
slo1 = src1 - pMacdEq1
sig1 = slo1 > 0 ? slo1 > nz(slo1[1]) ? 2 : 1 : slo1 < 0 ? slo1 < nz(slo1[1]) ? -2 : -1 : 0
rmacdColor = sig1 > 1 ? color.lime : sig1 > 0 ? color.lime : sig1 < -1 ? color.red : sig1 < 0 ? color.red : color.white
//plot(pMacdEq1, title='Trend Continue',style=plot.style_cross, color=rmacdColor, linewidth=2)
//plot(pMacdEqSig1, title='MacdEqSignal', color=color.rgb(255, 255, 255, 100), linewidth=1)
//plot(pMacdLevel1, title='MacdLevel', color=color.blue, linewidth=2)
xyz1=(pMacdEq1+pMacdEqSig1+pMacdLevel1)/3
//plot(xyz11, title='Avarage', color=color.rgb(241, 225, 8, 100), linewidth=2)
//plot(pMacdEq1, title='Trend',style=plot.style_cross, color=rmacdColor, linewidth=2)
//plot(pMacdEqSig1, title='Stop', color=color.rgb(255, 255, 255, 100), linewidth=1)
//plot(pMacdLevel1, title='MacdLevel', color=color.blue, linewidth=2)
xyzx=(pMacdEq1+pMacdEqSig1+pMacdLevel1)/3
//plot(xyzx, title='Avarage', color=color.rgb(241, 225, 8, 100), linewidth=2)
//plot(xyzx, title='Trend1',style=plot.style_cross, color=rmacdColor, linewidth=2)
asd=(pMacdEq1-xyzx )+close
plot(asd, title='MacdHedef',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asdx=close-(pMacdEq1-xyzx )
plot(asdx, title='MacdHedef',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
////////////////////////////////////////////////////////////////////////////
//
src25 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
fastLimit25 = input.float(title='FastLimit', defval=0.2, minval=0.01, step=0.01)
slowLimit25 = input.float(title='SlowLimit', defval=0.02, minval=0.01, step=0.01)
pi25 = 2 * math.asin(1)
period25 = 0.0
smooth25 = (4 * src25 + 3 * nz(src25[1]) + 2 * nz(src25[2]) + nz(src25[3])) / 10
detrender25 = (0.0962 * smooth25 + 0.5769 * nz(smooth25[2]) - 0.5769 * nz(smooth25[4]) - 0.0962 * nz(smooth25[6])) * (0.075 * nz(period25[1]) + 0.54)
q125 = (0.0962 * detrender25 + 0.5769 * nz(detrender25[2]) - 0.5769 * nz(detrender25[4]) - 0.0962 * nz(detrender25[6])) * (0.075 * nz(period25[1]) + 0.54)
i125 = nz(detrender25[3])
jI25 = (0.0962 * i125 + 0.5769 * nz(i125[2]) - 0.5769 * nz(i125[4]) - 0.0962 * nz(i125[6])) * (0.075 * nz(period25[1]) + 0.54)
jQ25 = (0.0962 * q125 + 0.5769 * nz(q125[2]) - 0.5769 * nz(q125[4]) - 0.0962 * nz(q125[6])) * (0.075 * nz(period25[1]) + 0.54)
i225 = i125 - jQ25
i225 := 0.2 * i225 + 0.8 * nz(i225[1])
q225 = q125 + jI25
q225 := 0.2 * q225 + 0.8 * nz(q225[1])
re25 = i225 * nz(i225[1]) + q225 * nz(q225[1])
re25 := 0.2 * re25 + 0.8 * nz(re25[1])
im25 = i225 * nz(q225[1]) - q225 * nz(i225[1])
im25 := 0.2 * im25 + 0.8 * nz(im25[1])
period25 := im25 != 0 and re25 != 0 ? 2 * pi25 / math.atan(im25 / re25) : 0
period25 := math.min(math.max(period25, 0.67 * nz(period25[1])), 1.5 * nz(period25[1]))
period25 := math.min(math.max(period25, 6), 50)
period25 := 0.2 * period25 + 0.8 * nz(period25[1])
smoothPeriod25 = 0.0
smoothPeriod25 := 0.33 * period25 + 0.67 * nz(smoothPeriod25[1])
phase25 = i125 != 0 ? math.atan(q125 / i125) * 180 / pi25 : 0
deltaPhase25 = nz(phase25[1]) - phase25
deltaPhase25 := deltaPhase25 < 1 ? 1 : deltaPhase25
alpha25 = fastLimit25 / deltaPhase25
alpha25 := alpha25 < slowLimit25 ? slowLimit25 : alpha25
mama25 = 0.0
mama25 := alpha25 * src25 + (1 - alpha25) * nz(mama25[1])
fama25 = 0.0
fama25 := 0.5 * alpha25 * mama25 + (1 - 0.5 * alpha25) * nz(fama25[1])
sig25 = mama25 > fama25 ? 1 : mama25 < fama25 ? -1 : 0
mamaColor25 = sig25 > 0 ? color.green : sig25 < 0 ? color.red : color.black
//plot(mama25, title='MAMA', color=mamaColor25, linewidth=2)
//plot(fama25, title='FAMA', color=color.new(color.yellow, 0), linewidth=2)
xyz2=(mama25+fama25)/2
//
length26 = input.int(title='Length', defval=15, minval=1)
momLength26 = input.int(title='MomentumLength', defval=5, minval=1)
src26 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
num26 = 0.0
coefSum26 = 0.0
for i = 0 to length26 - 1 by 1
coef26 = math.abs(nz(src26[i]) - nz(src26[i + momLength26]))
num26 += coef26 * nz(src26[i])
coefSum26 += coef26
coefSum26
filt26 = coefSum26 != 0 ? num26 / coefSum26 : 0
sig26 = src26 > filt26 ? 1 : src26 < filt26 ? -1 : 0
filtColor26 = sig26 > 0 ? color.green : sig26 < 0 ? color.red : color.black
//plot(filt26, title='Filter', color=filtColor26, linewidth=2)
//
src27 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
wma127 = (7 * src27 + 6 * nz(src27[1]) + 5 * nz(src27[2]) + 4 * nz(src27[3]) + 3 * nz(src27[4]) + 2 * nz(src27[5]) + nz(src27[6])) / 28
wma227 = (7 * wma127 + 6 * nz(wma127[1]) + 5 * nz(wma127[2]) + 4 * nz(wma127[3]) + 3 * nz(wma127[4]) + 2 * nz(wma127[5]) + nz(wma127[6])) / 28
predict27 = 2 * wma127 - wma227
trigger27 = (4 * predict27 + 3 * nz(predict27[1]) + 2 * nz(predict27[2]) + nz(predict27[3])) / 10
sig27 = predict27 > trigger27 ? 1 : predict27 < trigger27 ? -1 : 0
pmaColor27 = sig27 > 0 ? color.green : sig27 < 0 ? color.red : color.black
//plot(predict27, title='Predict', color=pmaColor27, linewidth=2)
//plot(trigger27, title='Trigger', color=color.new(color.yellow, 0), linewidth=1)
xyz3=(filt26+predict27+trigger27)/3
//
src29 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
shortLength29 = input.int(title='ShortLength', defval=5, minval=1)
longLength29 = input.int(title='LongLength', defval=20, minval=1)
shortAvg29 = ta.wma(src29, shortLength29)
shortMa29 = math.sum(math.pow(src29 - shortAvg29, 2), shortLength29) / shortLength29
shortRms29 = shortMa29 > 0 ? math.sqrt(shortMa29) : 0
longAvg29 = ta.wma(src29, longLength29)
longMa29 = math.sum(math.pow(src29 - longAvg29, 2), longLength29) / longLength29
longRms29 = longMa29 > 0 ? math.sqrt(longMa29) : 0
kk29 = longRms29 != 0 ? 0.2 * shortRms29 / longRms29 : 0
vidya29 = 0.0
vidya29 := kk29 * src29 + (1 - kk29) * nz(vidya29[1])
slo29 = src29 - vidya29
sig29 = slo29 > 0 ? slo29 > nz(slo29[1]) ? 2 : 1 : slo29 < 0 ? slo29 < nz(slo29[1]) ? -2 : -1 : 0
vidyaColor29 = sig29 > 1 ? color.green : sig29 > 0 ? color.lime : sig29 < -1 ? color.maroon : sig29 < 0 ? color.red : color.black
//plot(vidya29, title='Vidya', color=vidyaColor29, linewidth=2)
//
src32 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
length32 = input.int(title='Length', defval=3, minval=1)
jsa32 = (src32 + src32[length32]) / 2
sig32 = src32 > jsa32 ? 1 : src32 < jsa32 ? -1 : 0
jsaColor32 = sig32 > 0 ? color.green : sig32 < 0 ? color.red : color.black
//plot(jsa32, color=jsaColor32, linewidth=2)
//
src33 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
fastLength33 = input.int(title = "FastLength", defval = 5, minval = 1)
slowLength33 = input.int(title = "SlowLength", defval = 50, minval = 1)
leavittProjection(src33, length33) =>
result33 = ta.linreg(src33, length33, -1)
fastLp33 = leavittProjection(src33, fastLength33)
slowLp33 = leavittProjection(src33, slowLength33)
slo33 = fastLp33 - slowLp33
sig33 = slo33 > 0 ? slo33 > nz(slo33[1]) ? 2 : 1 : slo33 < 0 ? slo33 < nz(slo33[1]) ? -2 : -1 : 0
lpColor33 = sig33 > 1 ? color.lime : sig33 > 0 ? color.lime : sig33 < -1 ? color.red : sig33 < 0 ? color.red : color.white
//plot(fastLp33, title = 'FastLp', color = lpColor33, linewidth = 2)
//plot(slowLp33, title = 'Stop', style=plot.style_cross, color = rmacdColor, linewidth = 2)
xyz4=(vidya29+jsa32+fastLp33+slowLp33)/4
//
src37 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
fastLength37 = input.int(title='FastLength', defval=5, minval=1)
slowLength37 = input.int(title='SlowLength', defval=20, minval=1)
mult37 = input.int(title='Multiple', defval=1, minval=1)
fastEma37 = ta.ema(src37, fastLength37)
slowEma37 = ta.ema(src37, slowLength37)
sqAvg37 = math.sum(math.pow(slowEma37 - fastEma37, 2), fastLength37) / fastLength37
dev37 = math.sqrt(sqAvg37) * mult37
upperBand37 = slowEma37 + dev37
lowerBand37 = slowEma37 - dev37
middleBand37 = fastEma37
sig37 = src37 > upperBand37 and nz(src37[1]) <= nz(upperBand37[1]) or src37 > lowerBand37 and nz(src37[1]) <= nz(lowerBand37[1]) ? 1 : src37 < lowerBand37 and nz(src37[1]) >= nz(lowerBand37[1]) or src37 < upperBand37 and nz(src37[1]) >= nz(upperBand37[1]) ? -1 : src37 > middleBand37 ? 1 : src37 < middleBand37 ? -1 : 0
mabColor37 = sig37 > 0 ? color.green : sig37 < 0 ? color.red : color.black
//plot(upperBand37, title='MabUp', color=mabColor37, linewidth=2)
//plot(middleBand37, title='MabMid', color=color.new(color.yellow, 0), linewidth=1)
//plot(lowerBand37, title='MabLow', color=mabColor37, linewidth=2)
xyz5=(upperBand37+middleBand37+lowerBand37)/3
//
src44 = request.security(syminfo.tickerid, res, inp[rep ? 0 : barstate.isrealtime ? 1 : 0])[rep ? 0 : barstate.isrealtime ? 0 : 1]
length44 = input.int(title='Length', defval=10, minval=1)
middleBandLength44 = input.int(title='MiddleBandLength', defval=21, minval=1)
bandsDeviation44 = input.float(title='BandsDeviation', defval=2.4, minval=0.1)
lowBandAdjust44 = input.float(title='LowBandAdjust', defval=0.9, minval=0.1)
atrPeriod44 = length44 * 2 - 1
atrBuf44 = ta.atr(atrPeriod44) * bandsDeviation44
ma44 = ta.ema(src44, length44)
upperBand44 = ma44 + ma44 * atrBuf44 / src44
middleBand44 = ta.ema(src44, middleBandLength44)
lowerBand44 = ma44- ma44 * atrBuf44 * lowBandAdjust44 / src44
sig44 = src44 > upperBand44 and nz(src44[1]) <= nz(upperBand44[1]) or src44 > lowerBand44 and nz(src44[1]) <= nz(lowerBand44[1]) or src44 > middleBand44 ? 1 : src44 < lowerBand44 and nz(src44[1]) >= nz(lowerBand44[1]) or src44 < upperBand44 and nz(src44[1]) >= nz(upperBand44[1]) or src44 < middleBand44 ? -1 : 0
svbColor44 = sig44 > 0 ? color.green : sig44 < 0 ? color.red : color.black
//plot(upperBand44, title='SVBUp', color=svbColor44, linewidth=2)
//plot(middleBand44, title='SVBMid', color=color.new(color.black, 0), linewidth=1)
//plot(lowerBand44, title='SVBLow', color=svbColor44, linewidth=2)
xyz6=(upperBand44+middleBand44+lowerBand44)/3
//
float inp55 = input(title = 'Source', defval = close)
string res55 = input.timeframe(title = 'Resolution', defval = '')
bool rep55 = input(title = 'Allow Repainting?', defval = false)
//
float src51 = request.security(syminfo.ticker, res55, inp55[rep55 ? 0 : barstate.isrealtime ? 1 : 0])[rep55 ? 0 : barstate.isrealtime ? 0 : 1]
int fastLength51 = input.int(title = 'FastLength', defval = 5, minval = 1)
int slowLength51 = input.int(title = 'SlowLength', defval = 20, minval = 1)
int sampleLength51 = input.int(title = 'SampleLength', defval = 5, minval = 1)
hannFilter51(float sampleSrc51, int length51) =>
filt51 = 0.0, coef51 = 0.0
for i = 1 to length51
cosine51 = 1 - math.cos(2 * math.pi * i / (length51 + 1))
filt51 := filt51 + (cosine51 * nz(sampleSrc51[i - 1]))
coef51 := coef51 + cosine51
filt51 := coef51 != 0 ? filt51 / coef51 : 0
float sample51 = 0.0
sample51 := bar_index % sampleLength51 == 0 ? src51 : nz(sample51[1])
float fastAvg51 = hannFilter51(sample51, fastLength51)
float slowAvg51 = hannFilter51(sample51, slowLength51)
float slo51 = fastAvg51 - slowAvg51
int sig51 = slo51 > 0 ? slo51 > nz(slo51[1]) ? 2 : 1 : slo51 < 0 ? slo51 < nz(slo51[1]) ? -2 : -1 : 0
color udsmaColor51 = sig51 > 1 ? color.green : sig51 > 0 ? color.lime : sig51 < -1 ? color.maroon : sig51 < 0 ? color.red : color.black
//plot(fastAvg51, title = "FastAverage", color = udsmaColor51, linewidth = 2)
//plot(slowAvg51, title = "SlowAverage", color = chart.fg_color, linewidth = 1)
xyz7=(fastAvg51+slowAvg51)/2
//
float src52 = request.security(syminfo.tickerid, res55, inp55[rep55 ? 0 : barstate.isrealtime ? 1 : 0])[rep55 ? 0 : barstate.isrealtime ? 0 : 1]
fastLength52 = input.int(title = "FastLength", defval = 14, minval = 1)
slowLength52 = input.int(title = "SlowLength", defval = 30, minval = 1)
leavittProjection52(float src52, int length52) =>
float result52 = ta.linreg(src52, length52, -1)
leavittConvolution52(float src52, int length52) =>
int sqrtLength52 = math.floor(nz(math.sqrt(length52)))
float result52 = ta.linreg(leavittProjection52(src52, length52), sqrtLength52, -1)
float fastConv52 = leavittConvolution52(src52, fastLength52)
float slowConv52 = leavittConvolution52(src52, slowLength52)
float slo52 = fastConv52 - slowConv52
int sig52 = slo52 > 0 ? slo52 > nz(slo52[1]) ? 2 : 1 : slo52 < 0 ? slo52 < nz(slo52[1]) ? -2 : -1 : 0
color lcColor52 = sig52 > 1 ? color.green : sig52 > 0 ? color.lime : sig52 < -1 ? color.maroon : sig52 < 0 ? color.red : color.white
//plot(fastConv52, title = 'FastConv', color = lcColor52, linewidth = 2)
//plot(slowConv52, title = 'SlowConv', color = chart.fg_color, linewidth = 1)
xyz8=(fastConv52+slowConv52)/2
//
f_security(_symbol66, _res66, _src66, _repaint66) =>
request.security(_symbol66, _res66, _src66[_repaint66 ? 0 : barstate.isrealtime ? 1 : 0])[_repaint66 ? 0 : barstate.isrealtime ? 0 : 1]
res66 = input.timeframe(title='Resolution', defval='')
rep66 = input(title='Allow Repainting?', defval=false)
//
length53 = input.int(title='Length', defval=20, minval=1)
factor53 = input.int(title='Factor', defval=2, minval=1)
p53 = f_security(syminfo.tickerid, res66, hl2, rep66)
h53 = f_security(syminfo.tickerid, res66, high, rep66)
l53 = f_security(syminfo.tickerid, res66, low, rep66)
t53 = f_security(syminfo.tickerid, res66, ta.tr, rep66)
mpEma53 = ta.ema(p53, length53)
trEma53 = ta.ema(t53, length53)
stdDev53 = ta.stdev(trEma53, length53)
ad53 = p53 > nz(p53[1]) ? mpEma53 + trEma53 / 2 : p53 < nz(p53[1]) ? mpEma53 - trEma53 / 2 : mpEma53
adm53 = ta.ema(ad53, length53)
trndDn53 = 0.0
trndDn53 := ta.crossunder(adm53, mpEma53) ? h53[2] : p53 < nz(p53[1]) ? p53 + stdDev53 * factor53 : nz(trndDn53[1], h53[2])
trndUp53 = 0.0
trndUp53 := ta.crossover(adm53, mpEma53) ? l53[2] : p53 > nz(p53[1]) ? p53 - stdDev53 * factor53 : nz(trndUp53[1], l53[2])
trndr53 = 0.0
trndr53 := adm53 < mpEma53 ? trndDn53 : adm53 > mpEma53 ? trndUp53 : nz(trndr53[1], 0)
sig53 = p53 > trndr53 ? 1 : p53 < trndr53 ? -1 : 0
trndrColor53 = sig53 > 0 ? color.green : sig53 < 0 ? color.red : color.black
//plot(trndr53, color=trndrColor53, linewidth=2)
//plot(mpEma53, color=color.new(color.blue, 0), linewidth=2)
//plot(adm53, color=color.new(color.black, 0), linewidth=1)
xyz9=(trndDn53+mpEma53+adm53)/3
//
c54 = f_security(syminfo.tickerid, res66, close, rep66)
v54 = f_security(syminfo.tickerid, res66, volume, rep66)
length54 = input.int(title='Length', defval=50, minval=2)
mult54 = input.float(title='Mult', defval=10.0, minval=0.01)
alpha54 = 2.0 / (length54 + 1)
mom54 = c54 - nz(c54[1])
pv54 = mom54 > 0 ? v54 : 0
nv54 = mom54 < 0 ? v54 : 0
pvMa54 = ta.ema(pv54, length54)
nvMa54 = ta.ema(nv54, length54)
vs54 = pvMa54 + nvMa54 != 0 ? math.abs(pvMa54 - nvMa54) / (pvMa54 + nvMa54) : 0
rsvaEma54 = 0.0
rsvaEma54 := nz(rsvaEma54[1]) + (alpha54 * (1 + (vs54 * mult54)) * (c54 - nz(rsvaEma54[1])))
slo54 = c54 - rsvaEma54
sig54 = slo54 > 0 ? slo54 > nz(slo54[1]) ? 2 : 1 : slo54 < 0 ? slo54 < nz(slo54[1]) ? -2 : -1 : 0
rsvaemaColor54 = sig54 > 1 ? color.green : sig54 > 0 ? color.lime : sig54 < -1 ? color.maroon : sig54 < 0 ? color.red : color.black
//plot(rsvaEma54, title='RSEma', color=rsvaemaColor54, linewidth=2)
//
length56 = input.int(title='Length', defval=20, minval=1)
h56 = f_security(syminfo.tickerid, res66, high, rep66)
l56 = f_security(syminfo.tickerid, res66, low, rep66)
c56 = f_security(syminfo.tickerid, res66, close, rep66)
hh56 = ta.highest(h56, length56)
ll56 = ta.lowest(l56, length56)
atr56 = ta.atr(length56)
mult56 = math.sqrt(length56)
dSup56 = hh56 - atr56 * mult56
dRes56 = ll56 + atr56 * mult56
dMid56 = (dSup56 + dRes56) / 2
sig56 = c56 > dMid56 ? 1 : c56 < dMid56 ? -1 : 0
dsrColor56 = sig56 > 0 ? color.green : sig56 < 0 ? color.red : color.black
//plot(dSup56, title='Support', color=color.new(color.red, 0), linewidth=2)
//plot(dMid56, title='Middle', color=dsrColor56, linewidth=1)
//plot(dRes56, title='Resistance', color=color.new(color.green, 0), linewidth=2)
xyz10=(rsvaEma54+dSup56+dMid56+dRes56)/4
//
length57 = input.int(title='Length', defval=10, minval=1)
h57 = f_security(syminfo.tickerid, res66, high, rep66)
l57 = f_security(syminfo.tickerid, res66, low, rep66)
c57 = f_security(syminfo.tickerid, res66, close, rep66)
highMa57 = ta.sma(h57, length57)
lowMa57 = ta.sma(l57, length57)
ghla57 = 0.0
ghla57 := c57 > nz(highMa57[1]) ? lowMa57 : c57 < nz(lowMa57[1]) ? highMa57 : nz(ghla57[1])
sig57 = c57 > ghla57 ? 1 : c57 < ghla57 ? -1 : 0
ghlaColor57 = sig57 > 0 ? color.green : sig57 < 0 ? color.red : color.black
//plot(ghla57, title='GHLA', color=ghlaColor57, linewidth=2)
//
inp59 = input(title='Source', defval=close)
h59 = f_security(syminfo.tickerid, res66, high, rep66)
l59 = f_security(syminfo.tickerid, res66, low, rep66)
c59 = f_security(syminfo.tickerid, res66, inp59, rep66)
length59 = input.int(title='Length', defval=14, minval=1)
mHigh59 = ta.linreg(h59, length59, 0) - ta.linreg(h59, length59, 1)
mLow59 = ta.linreg(l59, length59, 0) - ta.linreg(l59, length59, 1)
upperBand59 = h59, lowerBand59 = l59
for i = 0 to length59 - 1
currH59 = nz(h59[i])
prevH59 = nz(h59[i - 1])
currL59 = nz(l59[i])
prevL59 = nz(l59[i - 1])
vHigh59 = currH59 + (nz(mHigh59[i]) * i)
vLow59 = currL59 + (nz(mLow59[i]) * i)
upperBand59 := math.max(vHigh59, upperBand59)
lowerBand59 := math.min(vLow59, lowerBand59)
middleBand59 = (upperBand59 + 59) / 2
slo59 = c59 - middleBand59
sig59 = (c59 > upperBand59 and nz(c59[1]) <= nz(upperBand59[1])) or (c59 > lowerBand59 and nz(c59[1]) <= nz(lowerBand59[1]))
? 1 : (c59 < lowerBand59 and nz(c59[1]) >= nz(lowerBand59[1])) or (c59 < upperBand59 and nz(c59[1]) >= nz(upperBand59[1]))
? -1 : slo59 > 0 ? slo59 > nz(slo59[1]) ? 2 : 1 : slo59 < 0 ? slo59 < nz(slo59[1]) ? -2 : -1 : 0
pbColor59 = sig59 > 1 ? color.green : sig59 > 0 ? color.lime : sig59 < -1 ? color.maroon : sig59 < 0 ? color.red : color.black
//plot(upperBand59, title="UpperBand", linewidth=2, color=pbColor59)
//plot(lowerBand59, title="LowerBand", linewidth=2, color=pbColor59)
xyz11=(ghla57+upperBand59+lowerBand59)/3
//
length61 = input.int(title='Length', defval=25, minval=1)
h61 = f_security(syminfo.tickerid, res66, high, rep66)
l61 = f_security(syminfo.tickerid, res66, low, rep66)
c61 = f_security(syminfo.tickerid, res66, close, rep66)
hh61 = ta.highest(h61, length61)
ll61 = ta.lowest(l61, length61)
range_161 = hh61 - ll61
sup161 = ll61 - 0.25 * range_161
sup261 = ll61 - 0.5 * range_161
res161 = hh61 + 0.25 * range_161
res261 = hh61 + 0.5 * range_161
mid61 = (sup161 + sup261 + res161 + res261) / 4
sig61 = c61 > mid61 ? 1 : c61 < mid61 ? -1 : 0
psrColor61 = sig61 > 0 ? color.green : sig61 < 0 ? color.red : color.black
//plot(sup161, title='Support1', color=color.new(color.red, 0), linewidth=2)
//plot(sup261, title='Support2', color=color.new(color.red, 0), linewidth=2)
//plot(mid61, title='Middle', color=psrColor61, linewidth=1)
//plot(res161, title='Resistance1', color=color.new(color.green, 0), linewidth=2)
//plot(res261, title='Resistance2', color=color.new(color.green, 0), linewidth=2)
xyz12=(sup161+sup261+mid61+res161+res261)/5
//Function Avarage
xyz13=(xyz1+xyz2+xyz3+xyz4+xyz5+xyz6+xyz7+xyz8+xyz9+xyz10+xyz11+xyz12)/12
plot(xyz13, title='@Yörük@',style=plot.style_stepline, color=color.rgb(155, 39, 176, 100), linewidth=2)
dfg=(xyz13*1.3)
plot(dfg, title='@Yörük@heddef',style=plot.style_stepline, color=color.rgb(155, 39, 176, 100), linewidth=2)
//END
//2 Pole Super Smoother Function
SSF(x, t) =>
omega = 2 * math.atan(1) * 4 / t
a = math.exp(-math.sqrt(2) * math.atan(1) * 4 / t)
b = 2 * a * math.cos(math.sqrt(2) / 2 * omega)
c2 = b
c3 = -math.pow(a, 2)
c1 = 1 - c2 - c3
SSF = 0.0
SSF := c1 * x + c2 * nz(SSF[1], x) + c3 * nz(SSF[2], nz(SSF[1], x))
SSF
//Getter Function For Pseudo 2D Matrix
get_val(mat, row, col, rowsize) =>
array.get(mat, int(rowsize * row + col))
//Setter Function For Pseudo 2D Matrix
set_val(mat, row, col, rowsize, val) =>
array.set(mat, int(rowsize * row + col), val)
//LU Decomposition Function
LU(A, B) =>
A_size = array.size(A)
B_size = array.size(B)
var L = array.new_float(A_size)
var U = array.new_float(A_size)
L_temp = 0.0
U_temp = 0.0
for c = 0 to B_size - 1 by 1
set_val(U, 0, c, B_size, get_val(A, 0, c, B_size))
for r = 1 to B_size - 1 by 1
set_val(L, r, 0, B_size, get_val(A, r, 0, B_size) / get_val(U, 0, 0, B_size))
for r = 0 to B_size - 1 by 1
for c = 0 to B_size - 1 by 1
if r == c
set_val(L, r, c, B_size, 1)
if r < c
set_val(L, r, c, B_size, 0)
if r > c
set_val(U, r, c, B_size, 0)
for r = 0 to B_size - 1 by 1
for c = 0 to B_size - 1 by 1
if na(get_val(L, r, c, B_size))
L_temp := get_val(A, r, c, B_size)
for k = 0 to math.max(c - 1, 0) by 1
L_temp -= get_val(U, k, c, B_size) * get_val(L, r, k, B_size)
L_temp
set_val(L, r, c, B_size, L_temp / get_val(U, c, c, B_size))
if na(get_val(U, r, c, B_size))
U_temp := get_val(A, r, c, B_size)
for k = 0 to math.max(r - 1, 0) by 1
U_temp -= get_val(U, k, c, B_size) * get_val(L, r, k, B_size)
U_temp
set_val(U, r, c, B_size, U_temp)
[L, U]
//Lower Triangular Solution Function (Forward Substitution)
LT_solve(L_, B) =>
B_size = array.size(B)
var Y = array.new_float(B_size)
Y_temp = 0.0
array.set(Y, 0, array.get(B, 0) / get_val(L_, 0, 0, B_size))
for r = 1 to B_size - 1 by 1
Y_temp := array.get(B, r)
for k = 0 to math.max(r - 1, 0) by 1
Y_temp -= get_val(L_, r, k, B_size) * array.get(Y, k)
Y_temp
array.set(Y, r, Y_temp / get_val(L_, r, r, B_size))
Y
//Upper Triangular Solution Function (Backward Substitution)
UT_solve(U_, Y_) =>
Y_size = array.size(Y_)
U_rev = array.copy(U_)
Y_rev = array.copy(Y_)
array.reverse(U_rev)
array.reverse(Y_rev)
X_rev = LT_solve(U_rev, Y_rev)
X = array.copy(X_rev)
array.reverse(X)
X
//Regression Function
regression_val(X_, index_, order_, offset_) =>
reg = 0.0
for i = 0 to order_ by 1
reg += array.get(X_, i) * math.pow(index_ - offset_, i)
reg
reg
//Curve Segment Drawing Function
draw_curve(Y, sdev, n, step_, col, ls, lw, draw, conf) =>
var line segment = line.new(x1=time[n * step_], y1=array.get(Y, n) + sdev, x2=time[(n - 1) * step_], y2=array.get(Y, n - 1) + sdev, xloc=xloc.bar_time)
if draw
if conf ? barstate.isconfirmed : 1
line.set_xy1(segment, time[n * step_], array.get(Y, n) + sdev)
line.set_xy2(segment, time[(n - 1) * step_], array.get(Y, n - 1) + sdev)
line.set_color(segment, col)
line.set_width(segment, lw)
line.set_style(segment, ls == 'Solid' ? line.style_solid : ls == 'Dotted' ? line.style_dotted : line.style_dashed)
else
line.delete(segment)
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Inputs
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Source Inputs
src = input(defval=close, title='Input Source Value')
use_filt = input(defval=true, title='Smooth Data Before Curve Fitting')
filt_per = input.int(defval=2, minval=2, title='Data Smoothing Period ═══════════════════')
//Calculation Inputs
per = input.int(defval=50, minval=2, title='Regression Sample Period')
order = input.int(defval=2, minval=1, title='Polynomial Order')
calc_offs = input(defval=0, title='Regression Offset')
ndev = input.float(defval=2.0, minval=0, title='Width Coefficient')
equ_from = input.int(defval=0, minval=0, title='Forecast From _ Bars Ago ═══════════════════')
//Channel Display Inputs
show_curve = input(defval=true, title='Show Fitted Curve')
show_high = input(defval=true, title='Show Fitted Channel High')
show_low = input(defval=true, title='Show Fitted Channel Low')
draw_step1 = input.int(defval=2, minval=1, title='Curve Drawing Step Size')
auto_step = input(defval=true, title='Auto Decide Step Size Instead')
draw_freq = input.string(defval='Close Only', options=['Continuous', 'Close Only'], title='Curve Update Frequency')
poly_col_h = input(defval=color.yellow, title='Channel High Line Color')
poly_lw_h = input.int(defval=1, minval=1, title='Channel High Line Width')
poly_ls_h = input.string(defval='Dashed', options=['Solid', 'Dotted', 'Dashed'], title='Channel High Line Style')
poly_col_m = input(defval=color.rgb(255, 235, 59, 100), title='Channel Middle Line Color')
poly_lw_m = input.int(defval=1, minval=1, title='Channel Middle Line Width')
poly_ls_m = input.string(defval='Dotted', options=['Solid', 'Dotted', 'Dashed'], title='Channel Middle Line Style')
poly_col_l = input(defval=color.yellow, title='Channel Low Line Color')
poly_lw_l = input.int(defval=1, minval=1, title='Channel Low Line Width')
poly_ls_l = input.string(defval='Dashed', options=['Solid', 'Dotted', 'Dashed'], title='Channel Low Line Style ═══════════════════')
//Smooth data and determine source type for calculation.
filt = SSF(src, filt_per)
srcxd = use_filt ? filt : src
//Populate a period sized array with bar values.
var x_vals = array.new_float(per)
for i = 0 to per - 1 by 1
array.set(x_vals, i, i + 1)
//Populate a period sized array with historical source values.
var src_vals = array.new_float(per)
for i = 0 to per - 1 by 1
array.set(src_vals, i, srcxd[per - 1 - i + equ_from])
//Populate an order*2 + 1 sized array with bar power sums.
var xp_sums = array.new_float(order * 2 + 1)
xp_sums_temp = 0.0
for i = 0 to order * 2 by 1
xp_sums_temp := 0
for j = 0 to per - 1 by 1
xp_sums_temp += math.pow(array.get(x_vals, j), i)
xp_sums_temp
array.set(xp_sums, i, xp_sums_temp)
//Populate an order + 1 sized array with (bar power)*(source value) sums.
var xpy_sums = array.new_float(order + 1)
xpy_sums_temp = 0.0
for i = 0 to order by 1
xpy_sums_temp := 0
for j = 0 to per - 1 by 1
xpy_sums_temp += math.pow(array.get(x_vals, j), i) * array.get(src_vals, j)
xpy_sums_temp
array.set(xpy_sums, i, xpy_sums_temp)
//Generate a pseudo square matrix with row and column sizes of order + 1 using bar power sums.
var xp_matrix = array.new_float(int(math.pow(order + 1, 2)))
for r = 0 to order by 1
for c = 0 to order by 1
set_val(xp_matrix, r, c, order + 1, array.get(xp_sums, r + c))
//Factor the power sum matrix into lower and upper triangular matrices with order + 1 rows and columns.
[lower, upper] = LU(xp_matrix, xpy_sums)
//Find lower triangular matrix solutions using (bar power)*(source value) sums.
l_solutions = LT_solve(lower, xpy_sums)
//Find upper triangular matrix solutions using lower matrix solutions. This gives us our regression coefficients.
reg_coefs = UT_solve(upper, l_solutions)
//Define curve drawing step size.
draw_step = auto_step ? math.ceil(per / 10) : draw_step1
//Calculate curve values.
var inter_vals = array.new_float(11)
for i = 0 to 10 by 1
array.set(inter_vals, i, regression_val(reg_coefs, per, order, calc_offs - equ_from + draw_step * i))
//Calculate standard deviation for channel.
Stdev = array.stdev(src_vals) * ndev
//Draw interpolated segments.
draw_curve(inter_vals, 0, 1, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 2, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 3, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 4, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 5, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 6, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 7, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 8, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 9, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
draw_curve(inter_vals, 0, 10, draw_step, poly_col_m, poly_ls_m, poly_lw_m, show_curve, draw_freq == 'Close Only')
//Draw channel high segments.
draw_curve(inter_vals, Stdev, 1, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 2, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 3, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 4, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 5, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 6, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 7, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 8, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 9, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
draw_curve(inter_vals, Stdev, 10, draw_step, poly_col_h, poly_ls_h, poly_lw_h, show_high, draw_freq == 'Close Only')
//Draw channel low segments.
draw_curve(inter_vals, -Stdev, 1, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 2, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 3, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 4, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 5, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 6, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 7, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 8, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 9, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
draw_curve(inter_vals, -Stdev, 10, draw_step, poly_col_l, poly_ls_l, poly_lw_l, show_low, draw_freq == 'Close Only')
//END
//Reverse
requestSecurity(string _symbol, string _res, bool _repaints) =>
repIndex = _repaints ? 0 : barstate.isrealtime ? 1 : 0
resIndex = _repaints ? 0 : barstate.isrealtime ? 0 : 1
[h, l, t] = request.security(_symbol, _res, [high[repIndex], low[repIndex], time[repIndex]])
[h[resIndex], l[resIndex], t[resIndex]]
var GRP1 = "General Settings"
string resxc = input.timeframe(title = "Resolution", defval = "", group = GRP1)
bool ignoreInsideBars = input.bool(title = "Ignore Inside Bars?", defval = true, group = GRP1)
bool repxc = input.bool(title = "Allow Repainting?", defval = false, group = GRP1)
var string GRP2 = "Short Term Settings"
bool showSTHighs = input.bool(title = "Show Short Term Highs?", defval = true, group = GRP2)
color stHighsColor = input.color(color.red, "Short Term Highs Color", group = GRP2)
bool showSTLows = input.bool(title = "Show Short Term Lows?", defval = true, group = GRP2)
color stLowsColor = input.color(color.yellow, "Short Term Lows Color", group = GRP2)
var string GRP3 = "Mid Term Settings"
bool showMTHighs = input.bool(title = "Show Mid Term Highs?", defval = true, group = GRP3)
color mtHighsColor = input.color(color.red, "Mid Term Highs Color", group = GRP3)
bool showMTLows = input.bool(title = "Show Mid Term Lows?", defval = true, group = GRP3)
color mtLowsColor = input.color(color.aqua, "Mid Term Lows Color", group = GRP3)
var string GRP4 = "Long Term Settings"
bool showLTHighs = input.bool(title = "Show Long Term Highs?", defval = true, group = GRP4)
color ltHighsColor = input.color(color.red, "Long Term Highs Color", group = GRP4)
bool showLTLows = input.bool(title = "Show Long Term Lows?", defval = true, group = GRP4)
color ltLowsColor = input.color(color.white, "Long Term Lows Color", group = GRP4)
[h, l, t] = requestSecurity(syminfo.ticker, res, rep)
type ReversalPoint
int bar_time
float price
var lowShortRevPoints = array.new<ReversalPoint>()
var highShortRevPoints = array.new<ReversalPoint>()
var lowMediumRevPoints = array.new<ReversalPoint>()
var highMediumRevPoints = array.new<ReversalPoint>()
isReversalPoint(bool isLow, float firstSrc, float midSrc, float lastSrc, bool isInsideBar) =>
bool isReversalPoint = false
if not (isInsideBar and ignoreInsideBars)
if isLow
isReversalPoint := lastSrc > midSrc and midSrc < firstSrc
else
isReversalPoint := lastSrc < midSrc and midSrc > firstSrc
isReversalPoint
plotReversalPoint(bool isLow, ReversalPoint revPoint, color revPointColor, string labelSize, bool createLabel) =>
if createLabel
label.new(revPoint.bar_time, revPoint.price, isLow ? '▲' : '▼',
xloc = xloc.bar_time, yloc = isLow ? yloc.belowbar : yloc.abovebar, size = labelSize, color = color(na),
textcolor = revPointColor, style = label.style_text_outline)
getReversalPoints(bool isLow, ReversalPoint[] sourceArray, color plotColor, ReversalPoint newRp, string labelSize,
bool createLabel, bool isInsideBar) =>
ReversalPoint result = na
sourceArray.push(newRp)
plotReversalPoint(isLow, newRp, plotColor, labelSize, createLabel)
int arraySize = sourceArray.size()
float midArrayValue = arraySize >= 2 ? sourceArray.get(arraySize - 2).price : na
float firstArrayValue = arraySize >= 3 ? sourceArray.get(arraySize - 3).price : na
if not na(firstArrayValue) and not na(midArrayValue) and isReversalPoint(isLow, firstArrayValue, midArrayValue, newRp.price, isInsideBar)
result := sourceArray.get(arraySize - 2)
result
bool isInsideBar = h < nz(h[1]) and l > nz(l[1])
ReversalPoint shortTermLow = isReversalPoint(true, nz(l[2]), nz(l[1]), l, isInsideBar) ? ReversalPoint.new(nz(t[1]), nz(l[1])) : na
ReversalPoint midTermLow = na
ReversalPoint longTermLow = na
if not na(shortTermLow)
midTermLow := getReversalPoints(true, lowShortRevPoints, stLowsColor, shortTermLow, size.tiny, showSTLows, isInsideBar)
if not na(midTermLow)
longTermLow := getReversalPoints(true, lowMediumRevPoints, mtLowsColor, midTermLow, size.small, showMTLows, isInsideBar)
if not na(longTermLow)
plotReversalPoint(true, longTermLow, ltLowsColor, size.normal, showLTLows)
ReversalPoint shortTermHigh = isReversalPoint(false, nz(h[2]), nz(h[1]), h, isInsideBar) ? ReversalPoint.new(nz(t[1]), nz(h[1])) : na
ReversalPoint midTermHigh = na
ReversalPoint longTermHigh = na
if not na(shortTermHigh)
midTermHigh := getReversalPoints(false, highShortRevPoints, stHighsColor, shortTermHigh, size.tiny, showSTHighs, isInsideBar)
if not na(midTermHigh)
longTermHigh := getReversalPoints(false, highMediumRevPoints, mtHighsColor, midTermHigh, size.small, showMTHighs, isInsideBar)
if not na(longTermHigh)
plotReversalPoint(false, longTermHigh, ltHighsColor, size.normal, showLTHighs)
//TrailingStop
//Stop
//Top-Bottom
plot = input.bool(true, title="Display past dots")
OverSold = input(0)
OverBought = input(100)
length1 = input.int(2, title = "Length")
tr = input.int(1, title = "Trigger Length")
// Define the function
func(source, int len, int tr) =>
HP = 0.00, a1 = 0.00, b1 = 0.00, c1 = 0.00, c2 = 0.00, c3 = 0.00, ag = 0.00, Sp = 0.00, X = 0.00, Quotient1 = 0.00, Quotient2 = 0.00, w = math.sqrt(.5)
HP := 2500 * (source - 2 * nz(source[1]) + nz(source[2])) + 1.92 * nz(HP[1]) - .9216 * nz(HP[2])
a1 := math.exp(-math.sqrt(2) * math.pi / len)
b1 := 2 * a1 * math.cos(math.sqrt(2) * math.pi / len)
c2 := b1
c3 := -a1 * a1
c1 := 1 - c2 - c3
ag := c1 * (HP + nz(HP[1])) / 2 + c2 * nz(ag[1]) + c3 * nz(ag[2])
Sp := .991 * nz(Sp[1])
if math.abs(ag) > Sp
Sp := math.abs(ag)
Sp
if Sp != 0
X := ag / Sp
X
q1 = X * 60 + 50
out= ta.sma(q1, tr)
[out]
[k] = func(close, length1,tr)
OverboughtCond = k > OverBought
OversoldCond = k < OverSold
//plotshape(plot? OverboughtCond:na, style=shape.cross, location=location.abovebar, color=color.new(color.red, 50), size=size.tiny)
//plotshape(plot? OversoldCond:na, style=shape.cross, location=location.belowbar, color=color.new(color.lime, 50), size=size.tiny)
var label myLabel_Overbought = na
if OverboughtCond
// Delete the previous label if there is one
if not na(myLabel_Overbought)
label.delete(myLabel_Overbought[1])
// Create a new label
myLabel_Overbought := label.new(bar_index, high, 'Tepe',yloc=yloc.abovebar,style=label.style_circle, size=size.normal, color=color.rgb(255, 82, 82, 50), textcolor=color.white)
myLabel_Overbought
var label myLabel_Oversold = na
if OversoldCond
// Delete the previous label if there is one
if not na(myLabel_Oversold)
label.delete(myLabel_Oversold[1])
// Create a new label
myLabel_Oversold := label.new(bar_index, low, 'Dip',yloc=yloc.belowbar,style=label.style_circle, size=size.normal, color=color.rgb(0, 230, 119, 50), textcolor=color.white)
myLabel_Oversold
//
startsa = input.float(0, "Starting value")
incsa = input.float(0.01, "Increment")
maxsa = input.float(1, "Max Value")
widthsa = input.float(9.00, "Zone width")
atrs = ta.atr(100) * widthsa
sarone = ta.sar(startsa, incsa, maxsa)
sarzone = if close > sarone
sarone + atrs
else if close < sarone
sarone - atrs
sartwo = ta.sar(startsa/2, incsa/2, maxsa/2)
p1sa = plot(sarone, "Kanal", color = close > sarone ? #2962ff00 : #e91e6200, style=plot.style_circles)
p3sa = plot(sarzone, "Kanal", color = close > sarone ? #2962ff00 : #e91e6200, style=plot.style_circles)
fill(p1sa, p3sa, color = close > sarone ? color.new(#8e9646, 80) : color.new(#e91e62, 100))
//plot(sartwo, "Second SAR", color = close > sartwo ? color.new(#2962ff, 50) : color.new(#e91e63, 50), style=plot.style_linebr)
////Emas
q1 = ta.ema(ohlc4, 1)
q5 = ta.ema(ohlc4, 5)
q9 = ta.ema(ohlc4, 9)
q13 = ta.ema(ohlc4, 13)
q26 = ta.ema(ohlc4, 26)
q50 = ta.ema(ohlc4, 50)
q100 = ta.ema(ohlc4, 100)
q200 = ta.ema(ohlc4, 200)
qeq=(q1+q5+q9+q13+q26+q50+q100+q200)/8
//plot(qeq,"EMA",color.rgb(255, 235, 59, 100), linewidth=1)
//super avarage farkı
asd1=(close-xyz13 )+close
//plot(asd1, title='Pozitif',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asd2=close-(close-xyz13 )
//plot(asd2, title='Negatif',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
//ema farkı
asd11=(close-qeq )+close
//plot(asd11, title='Pozitife',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asd22=close-(close-qeq )
//plot(asd22, title='Negatife',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
//macd farkı
asd111=(pMacdEq1-pMacdEqSig1 )+pMacdEq1
//plot(asd111, title='Pozitifemacd',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asd222=pMacdEq1-(pMacdEq1-pMacdEqSig1 )
//plot(asd222, title='Negatifemacd',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
//sar farkı
asd1111=(sarone-sartwo )+sarone
//plot(asd1111, title='Pozitifemacdsar',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asd2222=sarone-(sarone-sartwo )
//plot(asd2222, title='Negatifemacdsar',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
//toplam farkı
asd11111=(asd1+asd11+asd111+asd1111 )/4
plot(asd11111, title='EmaHedef',style=plot.style_cross, color=color.rgb(0, 230, 119, 100), linewidth=2)
asd22222=(asd2+asd22+asd222+asd2222 )/4
plot(asd22222, title='EmaHedef',style=plot.style_cross, color=color.rgb(255, 82, 82, 100), linewidth=2)
//Function Sar; slow-avarage-fast
lenxc = input(3)
lenxc20 = input(2)
lenxc50 = input(1)
z(close, lenxc) =>
hxc = 0.0
dxc = 0.0
for i = 0 to lenxc - 1 by 1
kxc = (lenxc - i) * lenxc
hxc += kxc
dxc += close[i] * kxc
dxc
dxc / hxc
cxc = z(close, math.floor(math.sqrt(lenxc)))
//
z20(close, lenxc20) =>
hcx20 = 0.0
dxc20 = 0.0
for i = 0 to lenxc20 - 1 by 1
kxc20 = (lenxc20 - i) * lenxc20
hcx20 += kxc20
dxc20 += close[i] * kxc20
dxc20
dxc20 / hcx20
cxc20 = z20(close, math.floor(math.sqrt(lenxc20)))
//
z50(close, lenxc50) =>
hxc50 = 0.0
dxc50 = 0.0
for i = 0 to lenxc50 - 1 by 1
kxc50 = (lenxc50 - i) * lenxc50
hxc50 += kxc50
dxc50 += close[i] * kxc50
dxc50
dxc50 / hxc50
cxc50 = z50(close, math.floor(math.sqrt(lenxc50)))
//
//
startsx = 0.05
incrementsx = 0.75
maximumsx = 0.35
ssx = ta.sar(startsx, incrementsx, maximumsx)
s1sx = z(ssx, lenxc)
pcsx = close < s1sx ? color.rgb(255, 82, 82, 100) : color.rgb(76, 175, 79, 100)
//plot(s1sx, title="SAR Avarage",style=plot.style_cross, color=pcsx, linewidth=1)
startsx20 = 0
incrementsx20 = 0.01
maximumsx20 = 1
ssx20 = ta.sar(startsx20, incrementsx20, maximumsx20)
s1sx20 = z20(ssx20, lenxc20)
pcsx20 = close < s1sx20 ? color.rgb(255, 82, 82, 00) : color.rgb(76, 175, 79, 00)
//plot(s1sx20, title="YavaşDöngü",style=plot.style_cross, color=pcsx20, linewidth=2)
startsx50 = 0
incrementsx50 = 0.1
maximumsx50 = 1
ssx50 = ta.sar(startsx50, incrementsx50, maximumsx50)
s1sx50 = z50(ssx50, lenxc50)
pcsx50 = close < s1sx50 ? color.rgb(255, 82, 82, 00) : color.rgb(76, 175, 79, 00)
//plot(s1sx50, title="HızlıDöngü",style=plot.style_cross, color=pcsx50, linewidth=2)
//Break
start88 = input(0, title="start", group="Parabolic SAR")
increment88 = input(0.001, title="Increment", group="Parabolic SAR")
maximum88 = input(1, title="Maximum", group="Parabolic SAR")
out88 = ta.sar(start88, increment88, maximum88)
sarChange1 = ta.change(out88<high)
var prevSar1 = out88
if(sarChange1)
prevSar1 := out88[1] + ((out88[1]/100)*0.9)
//plot(out88 and sarChange1?na:prevSar1, style=plot.style_linebr, offset = -5, color=out88<high? color.rgb(255, 153, 0, 100) : color.orange, title="Kırılım", linewidth=3)
//END
//Stop Function
mult156 = input.float(3, 'Multiplicative Factor', minval = 0)
slope156 = input.float(20, 'Slope', minval = 0)
width156 = input.float(100, 'Width %', minval = 0, maxval = 100) / 100
//Style
bullCss156 = input.color(color.lime, 'Average Color', inline = 'avg', group = 'Style')
bearCss156 = input.color(color.red, '' , inline = 'avg', group = 'Style')
//Calculation
//-----------------------------------------------------------------------------{
var float upper156 = na
var float lower156 = na
var float avg156 = close
var hold156 = 0.
var os156 = 1.
atr156 = nz(ta.atr(200)) * mult156
avg156 := math.abs(close - avg156) > atr156 ?
math.avg(close, avg156)
: avg156 + os156 * (hold156 / mult156 / slope156)
os156 := math.sign(avg156 - avg156[1])
hold156 := os156 != os156[1] ? atr156 : hold156
upper156 := avg156 + width156 * hold156
lower156 := avg156 - width156 * hold156
css156 = os156 == 1 ? bullCss156 : bearCss156
plot_avg156 = plot(avg156, 'STOP', os156 != os156[1] ? na : css156, style=plot.style_line,linewidth = 3)
//END
-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
//@version=2
study("*",overlay=true)
//resolution
x1=input("1", type=resolution, title="Resolution")
x3=input("3", type=resolution, title="Resolution")
x5=input("5", type=resolution, title="Resolution")
x15=input("15", type=resolution, title="Resolution")
x30=input("30", type=resolution, title="Resolution")
x45=input("45", type=resolution, title="Resolution")
x60=input("60", type=resolution, title="Resolution")
x120=input("120", type=resolution, title="Resolution")
x180=input("180", type=resolution, title="Resolution")
x240=input("240", type=resolution, title="Resolution")
x720=input("D", type=resolution, title="Resolution")
//output functions
z = sar(0, 0.01, 1)
// Security
y1 = security(tickerid, x1, z)
y3 = security(tickerid, x3, z)
y5 = security(tickerid, x5, z)
y15 = security(tickerid, x15, z)
y30 = security(tickerid, x30, z)
y45 = security(tickerid, x45, z)
y60 = security(tickerid, x60, z)
y120 = security(tickerid, x120, z)
y180 = security(tickerid, x180, z)
y240 = security(tickerid, x240, z)
y720 = security(tickerid, x720, z)
//Plots
xz = input(true, title="Adaptive Coloring", type=bool)
//plot(y1, title="1", style=circles, color=xz?(y1>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y3, title="3", style=circles, color=xz?(y3>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y5, title="5", style=circles, color=xz?(y5>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y15, title="15", style=circles, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y30, title="30", style=circles, color=xz?(y30>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y45, title="45", style=circles, color=xz?(y45>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y60, title="60", style=circles, color=xz?(y60>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y120, title="120", style=circles, color=xz?(y120>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y180, title="180", style=circles, color=xz?(y180>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y240, title="240", style=circles, color=xz?(y240>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y720, title="720", style=circles, color=xz?(y720>close?red:lime) : silver, transp=100, linewidth=1)
//Functions Sar for support and resistance
q3 = sar(0.01,0.02,0.2)
q2 = sar(0.01,0.04,0.4)
q1 = sar(0.01,0.06,0.6)
//plot(q1, title="FAST", style=circles, color=xz?(q1>close?red:lime) : silver, transp=100, linewidth=1)
//plot(q2, title="AVARAGE", style=circles, color=xz?(q2>close?red:lime) : silver, transp=00, linewidth=1)
//plot(q3, title="SLOW", style=circles, color=xz?(q3>close?red:lime) : silver, transp=100, linewidth=1)
//Signal
xyzq=(y1+y3+y5+y15+y30+y45+y60+y120+y180+y240+y720+q1+q2+q3+close)/14
xyzq1=(y1+y3+y5+y15+y30+y45+y60+y120+y180+y240+y720+q1+q2+q3-close)/14
xyzq12=(xyzq+xyzq1)/2
plot(xyzq, title="UpTrend", style=linebr, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=2)
plot(xyzq1, title="DownTrend", style=linebr, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=2)
plot(xyzq12, title="TRENDtime", style=linebr, color=xz?(y15>close?red:lime) : silver, transp=00, linewidth=1)
xyzqsd=(q1+q2+q3+y15+y60+y240+y720+close)/7
xyzq1sd=(q1+q2+q3+y15+y60+y240+y720-close)/7
xyzq12sd=(xyzqsd+xyzq1sd)/2
plot(xyzqsd, title="HighTime", style=linebr, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=2)
plot(xyzq1sd, title="LowTime", style=linebr, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=2)
//plot(xyzq12sd, title="AvgTime", style=linebr, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=1)
//Bar Coloring
//Green = close > xyzq12
//Red = close < xyzq12
//BarColor = iff(Green,lime,red)
//Buy = cross(close,xyzq12)
//Sell = cross(xyzq12,close)
//barcolor(color=BarColor)
//END
//@version=2
//resolution
x1gh=input("15", type=resolution, title="Resolution")
//output functions
zgh = sar(0, 0.1, 1)
z1gh = sar(0, 0.01, 1)
z2gh = sar(0, 0.02, 0.2)
z3gh = sar(0, 0.04, 0.4)
z4gh = sar(0, 0.06, 0.6)
z5gh = sar(0.1, 0.02, 0.2)
z6gh = sar(0.1, 0.04, 0.4)
z7gh = sar(0.1, 0.06, 0.6)
z8gh = sar(0.01, 0.02, 0.2)
z9gh = sar(0.01, 0.04, 0.4)
z10gh = sar(0.01, 0.06, 0.6)
// Security
y1gh = security(tickerid, x1gh, zgh)
y3gh = security(tickerid, x1gh, z1gh)
y5gh = security(tickerid, x1gh, z2gh)
y15gh = security(tickerid, x1gh, z3gh)
y30gh = security(tickerid, x1gh, z4gh)
y45gh = security(tickerid, x1gh, z5gh)
y60gh = security(tickerid, x1gh, z6gh)
y120gh = security(tickerid, x1gh, z7gh)
y180gh = security(tickerid, x1gh, z8gh)
y240gh = security(tickerid, x1gh, z9gh)
y720gh = security(tickerid, x1gh, z10gh)
//Plots
xzgh = input(true, title="Adaptive Coloring", type=bool)
//plot(y1, title="1", style=circles, color=xz?(y1>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y3, title="3", style=circles, color=xz?(y3>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y5, title="5", style=circles, color=xz?(y5>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y15, title="15", style=circles, color=xz?(y15>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y30, title="30", style=circles, color=xz?(y30>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y45, title="45", style=circles, color=xz?(y45>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y60, title="60", style=circles, color=xz?(y60>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y120, title="120", style=circles, color=xz?(y120>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y180, title="180", style=circles, color=xz?(y180>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y240, title="240", style=circles, color=xz?(y240>close?red:lime) : silver, transp=100, linewidth=1)
//plot(y720, title="720", style=circles, color=xz?(y720>close?red:lime) : silver, transp=100, linewidth=1)
//Signal
xyzqgh=(y1gh+y3gh+y5gh+y15gh+y30gh+y45gh+y60gh+y120gh+y180gh+y240gh+y720gh+close)/12
xyzq1gh=(y1gh+y3gh+y5gh+y15gh+y30gh+y45gh+y60gh+y120gh+y180gh+y240gh+y720gh-close)/12
xyzq12gh=(xyzqgh+xyzq1gh)/2
plot(xyzqgh, title="TİMELESS", style=line, color=xzgh?(y15gh>close?red:lime) : silver, transp=00, linewidth=1)
//plot(xyzq1gh, title="N-Major15", style=linebr, color=xzgh?(y15gh>close?red:lime) : silver, transp=00, linewidth=2)
//plot(xyzq12gh, title="15", style=line, color=xzgh?(y15gh>close?red:lime) : silver, transp=00, linewidth=1)
//Bar Coloring
Green = close > xyzqgh
Red = close < xyzqgh
BarColor = iff(Green,lime,red)
Buy = cross(close,xyzqgh)
Sell = cross(xyzqgh,close)
barcolor(color=BarColor)
//End
//Functions Sar for support and resistance
q3rf = sar(0.1,0,1)
//q2rf = sar(0.01,0.04,0.4)
q1rf = sar(0,0.01,1)
//plot(q1rf, title="SLOWtime", style=linebr, color=yellow, transp=100, linewidth=1)
//plot(q2rf, title="AVARAGE", style=circles, color=xzgh?(q2>close?red:lime) : silver, transp=00, linewidth=1)
//plot(q3rf, title="FASTtime", style=linebr, color=aqua, transp=100, linewidth=1)
-
PHP Code:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carefulCode53358
// ------------------------------------------------------------------
// RJT CRYSTALS v1.02
// [en]Version 1.1 (solved the new compilator detection errors)
// Use this graphic tracer based in crystals to help interpreting
// the evolution of the price under a new and different perspective.
// The form of the crystals and the overlap between them will show
// a new mode to predict the begin and the end of trends.
// A clue... find the triangles. ;)
// *Parameters: Coloured Crystals?
// ------------------------------------------------------------------
// [es]Version 1.1 (resuelta la nueva detección de errores del compilador)
// Utiliza este trazador gráfico a base de cristales para ayudarte
// a interpretar la evolución del precio bajo una nueva y diferente
// perspectiva. La forma de los cristales así como su superposición
// entre ellos mostrarán un modo diferente de predecir el comienzo y
// final de las tendencias. Una pista... encuentra los triángulos. ;)
// *Parámetros: Coloured Crystals? (¿cristales coloreados?)
// ------------------------------------------------------------------
// [ID. 0014-03-102-1300-00]
// ------------------------------------------------------------------
// Author: Rafael Jiménez Tocino
// Email: info@tradingrafa.com
// ------------------------------------------------------------------
// Source code protected by PineCrypt v.1.0 (www.pinescripts.com)
// (to renove expiry key contact the author of this script)
// ------------------------------------------------------------------
//@version=2
GcFuzSqity9GSymNUaJlKX6gThDdzlqJEpAjb9JXVgOGfE='V',Ln840RhQbZP83Vr3Z5w8_SB9E45dUSKTSh5LNDSe0J4eHH=sunday,
ZLlkue66ZsJ8LvP3RMiLSfYSDNVZzntMPpdCUiQH1q2s4Uc4xXvMv='l',
wNPRv_gQGgpa4ji1P7gKh8H6yBWHVcrXrCdNT99r2gg51XKh3Fg1lr='Y',KyUlqQomCm6fdYO668sUMQ62FVWvWkyCjKonMIppacBhHegWjcyl=areabr,f6mLmDZpdyyFj9YuPG8Q_lPZD9c9Upuz4jnQZlUwcgjGfG='R',rz_ZiJcnaPNYfmT4E6vp2mIiXI8OlFjXaqC3rJDjj0XwKshMCvJwcwKyt='H',Xpis3JXGi7odLm_avxWrj1lNOgZ59WwFdqH6WULXp_gXcF='p',nM85QXOIUQeZoD3fQiDxU1N1BGvLRRn8Hkt9suzZnlC='G',_gJtts06DICilbBtQ7_zLuhh5aa5EsX3HbhPDIvzECUkGvezC0vQxjSWy='7',li5_GWTSIArsvQ0GYJs5t0rcSsoAApOj2xv6DYQiT3='S',YIeUvifkIqmg1gh6Qqd1ZW04EW6bQtYYQJrK7SekCz4BQBa0uUbd8H=#dbdbea,gNkRgCig3sGuNVMgOzgIze8oRA95fgnAMuU9sgDv54mExSUzcC_VZD0='X',LeNKDF9MgTw1Y6wSeu38pN2iuyn91G7zhU_QU19icdfgeKc6km77m='o',iJa5Szyg84anB6j6RQGKwrhQOuHuK_NqSuAEqGBX0H='£',yYZJn5q8wJs7PAIsyLcWJtUKDk5G_cql1Wsq5ZTGtFcXk65JDNBB1m='1',uU5p2NYnpxt5_iRbHpGJtXsxD8wsGYtQ8PNG0APcOUaGRVV='5',mVN5E9MyiQoj63MgW6vRIp1SK23hfCe42LCHgnnJsTGLC5=true,R3wMZKF4Mbtop0JwTGzlmYIf5MRZbP36KxtqrkG74Xygr7_aoY1='%',cYcixbkUVPiafMBGmWkhsjTj8_aKjEikoIFL3TvnUWt='b',wqhqShbPxmtPMWpxK_z7FeL3EG4f2CIOD_arqs7o93CG5DzM=weekofyear(0)-43,WTpyn_G42b_JL6VWNoZUzUavyoMvTmBXan1kkuGEjX='\\',JTOwS6iJ8VlhhFDzEivttlBtQF7hU7YhCJNJjyQce_ly6MhR='v',Flaw6RSjtZojdz0ZYgyTsdwOTOj00nY3_twig1TDULi='#',dj9EvhtgHr6LgISsqTdCtfIEojlelK28Wvq6voG3XlrOaDVTPGNs='r',ucQW2BjC2isWOqcAVnfZVPWQNLmbGvmzIG3NwxLHXbiLjpcqQ9A43D7IDl='T',H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y=' ',AKgpuWGr_PAeEdy1jylLiFETqH7Txak7MhsACKmR6POC6=#ffff26,sPFbnRqiCkaFEVp95L_mycWr2OVA3rOvPiiYufJdpe_Ka2a='6',DmMuaSYttz_Ztw3QrNCOAfDBwrRWONpVMVXZf_r2aMo='P',xHloWCuSikqyZ3JwvofZ8rep3NRv1rNv8Ldphzt1DgwbFQyGEv='k',FAypCIlJYAR5ZNiWU4KYpyUHTkDdnz15iQ0EXquyPag5SL2k5Cmyta=cross,qKr1YAGXuJDcFEbWsDJISVzdLKL4I3vWBe1h6eau1D0phZBDIxNUsppTPm='W',HjqHLCwpIYJKBjlJzQc0byIRDDr0YBm_sbcPTTPIwblD9nqHLTy2y2='j',T7fsdM_HwpiFzbem8yn7mKqYiy6bNti_P6qgVoij5jIn2j9HEsHm442qnx8=#73fafb,waHH5rAjClM6qRGDfBR2DNXbOm2DyBsBzzYyS4P14eE7ri=#fdfdff,fhMV1JVPsp67Cpc9PBjo9H7fe8z4sSemWBTkV63ccS3gUlI0='4',py8MnLkFau195MRjwmIm4DUn96UPsAg6G0SMIqoNsg7pg2m='|',oLnLrIgytZ0dhKdlkIKpqo6natksUWqEK2lPCi_GLojNLS9Xs0ba5PWu0Kc='Z',szuqCKVI48Mc10TOQ9mOwopjTrDTvmXnApPYhXjd1lFNS='m',dzLLzMcAaPD2U_gBZZBt6VyHf8UIG4vJ06cwD5xZxflm_A_R='(',k0m6GT3P538HSlUq_uPPe_EUDDZFZWavGCvTL4QkfmxG81hBP='n',GD6XgdsUjST32t5FrMJJk1Af2kmzFovNY0AXdyYXUdMzrtxo0QnCB=#bf00ff,MNWxWO599A8oZP_sTMtJV3zmjVH_ZFb1F02a_rv_TkUqPQ2nNY='2',_qYHoJIiPkc84VAWuFw7TjnZXwZQfQlQrqy3H1MJglea_Kr1jUE='0',F0earkWF_97ICRSvo8FDv_96YRTVUbyxZ1RkHqzHOxZzygS7fg=')',IGznK6g3xPi2MiYPzYokQyiOR5o4F7CGbQ3N1qTKpzN9O=#d90201,x3JcXa_FBjFqicRJEz8FWOlcSd0R8YwNea5nIABCRDeUzjs7hE='K',Z8F46fvVOFyjMJMLkUI1hiFTMQgixLK7a6MlFIA1YU='L',wqZ4foykGfrzkwfRZX6bgaSdEfQHDLWWcBgewDhr2h='*',VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp='e',LCGm8V2sJrWaagLP64QOkOvYI1ORQkw3dvOjXD9xPhd=year(0)-1960,faf7ajrzk_i0UxzhJSkgAqRzZiGFObNaJC_vEHGEkIqv1='E',PTxKDVR4efifkfM4wccpREEsN2sSgCWv2GuyIlU06BHolVOnmo5BQ8Out=sunday,e6dEORZu_UKZfNVneAm92bxbNYx57GXT4MllsuxM='C',tm6D8VL5QS6u9QJrCsxpG4oxm0d9XGO4H_TX2573kAobb_YDYdX=#acac9d,PgY8gjTKdBQAbNYXzGQC_CJQeCoRwJheNBhK0va5YLGW3GcCC1fFl4_WKdAE=solid,gw__OiRjFE8rqMkfQMVQt0bIaRhnkvvNDXLJsXm7z5kj1ts='M',ECI7Z6jyOAPUv9oOLXn5mub1NoXWVsvPw2m5k5K94auPjmQW=friday,V3r75fwx1pisUACBYmy1LQyc7TlrW56uMvMHYi9aIOl='-',yhJsWH4kHzRV5Wf6NwctkCrVcrllLUbPssTlLT03=':',h9a8eZ2aifOLotRLOn7ze1hG5ZoZIwuDSEqEn127XUc3HHy=#ffbf00,CgItlfYuq6uW12wyRzBdQxbIU_UmiKtCrvnZmyzbmZAHU8e8rPSdnr='ñ',jYuW12d7kuJDGH1KQ2hfyRQFi1hYUzNw46cChWTGJOz='F',zQvjtMVRc3KPo2LYKlOyoG5tDeIVeW63bgoNkL8d='=',W24qDHFdLaW_or4WT3OXH_31oHgtFeagKq7cIea7e='f',UqLN8EKcwfxFUm_2_Ou6GEoc0ydc_udcGXx15wlYCTmHaYJiLurfMMMfv5V4='/',K_rZAL9JE7RyuaB9TDF2hTo3ofNwaY1vcN9H9W1mGMBjqQQx8mTvKhsgdsw='D',nLiu54cHtsK3pPdG9kRDkr9ItjDgbWbxLT2RykpzynP=',',M6YRrYCnneffiw3m51lNav_HSdnRB9K6YG73ioMdrzT2a5KTOq21='N',pFK8yGSTvVbJ3mS1Tyu5VfqwCI_tnLyFU3uDvFHXtBUbZyH=#b3b304,JdRC6Jsfo6QQqZboU_wX9l0qqQAIUqpb3Xu5qcwGKi6XdThzfz='_',pbVk1aquuVIVb_KBICIpaOL8T_MFXW8OaDnNZ5TIc1k1fUaoUug=#ff26c9,cSGX7mEUCzk0IBHs66BKJ1Ak0lr2KyOOX1SQSDjmUeyI6JgcNWeiF='Q',XDHUlls1Mdgyg_cChqhCCcc8s2nTmYJJqKKpWXH52kt6iJKDwGfplQ=';',v3Me7PLYYHfyR8Nc8FzuIJdP3e7BzWBLzFrYqPrYG=monday,BJWz42pe1_9l2NAvHlOwCVXLFJTw2ArckzWK3cfoKS5hmwT='g',uh6hPv_ZNRUxtF6hQ4gcVYAkaE2eIef2NB8qQ2dduL933no1I09='€',egqjPz92F8N5LVr2ZCTbw5QPnyPIyyNeq_o3IANUwWJlNcaD2pKZEXvdoVpO='q',F0_hc4C3ZCNA1Aa7QDWTwPkle_P5CzWRF5fGm0skplGz=#4cff4c,GbBuGtlaSs6CN4lgOWz2sMHReBf0dHXa5YHXhu4AMvASz8kkoGJ='U',VQrg641NIyUS_6Xoo_HxwH6mlKf6p9d5ztssspNnQ9Wf=wednesday,V8qAlVCh5ZOyW2hvAgRYgNzd8jvFXnBV1XZi5SxRu2rXG3eRIW3jIHvj6XZ='A',MaTuXlVZmiTfahHBa_X1B_KbA_2T3RKFGPjMyqzJm68m6='@',mUFBAomv0x_aY4yFfQjruIdYW8avjPu9RZDFQX9okpSDDh45y55F3cCjpY9q='a',yzXxVrYOfVM0iwGubttTGD_lde4WoH2GOrHwRJxlB8D4ZxSnQRbyeL=na,g8PKlCASBtbREeOJZVDqmdWC8Qn6F6kyBQTSGblMHj=#2626ff,zwQCFgZcxteVOyHDdwgIiEB_NMnk_LOiE4pub3WbqukwTtAFZnPAr_oxnhS='{',RRffTbmST0hOKtvqI1AdSQ2OW4IlUoMj9pq5X0yN_isShpZSimDuWn9E='J',bpVJWc8POWNLV14FAbUFtqQHzvcBobZPyZ_xHnQovhtW0CD='©',l99Ijwe20STJfNgKIy2Wv8S2dWDoXO3Jm1T3D020VThESWmLFKyK8AeFOAD_=#8c0208,CzbjfxLgjZ8mvZdpeok9FmzUv50GfvDAuXc4G1_e7dZuaXASul1Kmph1slo='\n',s3YbyuwMjY4ygMfwlxrcmPR2XgfhyocAaNmztN7tDC='B',p9AhwpPCgL9Nt8OTX3DtBHnyHkwO5vfahTxqKeStxuzV9OrK4FO=#018c23,D6p_V8DQu4CN6HL5myBKbtgI5gthZVt2Lm3Kscdn7BB0u9eozqJCgnTXuO=false,vQdTYziXRf3fbw1Vy3gkejjb3krDvurT7zhOdknzgZ=#05b3b2,e10qp9quHBlSR1e201f4wUeXPvHIK4SHxmUvgee8AeJR7XEFjiWl=tuesday,u7KlYrkFx6XAm6hkqRUnoTSD8YbZNHuhPEfxNbG0DqCaaDQN37_lm='w',P_TQqis5Hg9qid9DjXKRezoGgwtapabgjPKrtkG0HlPTA='u',mVocr6sPxs6FCS7oshNOupSb5W9d7vXZxBdAij5aTbBoFWXPTbUT8VDBha='¥',BXFKbybekaThYWmF24qHnsr8JKDuEprQPgjRZvACFmSi='$',MlkBRRlTdu57RNWlbSrZ0VZ8Q2iSsIDxqDzbqnhnW8Fx8J6XzZb='y',C1twuE4G32ZXqBJ0cva2qnsjsGnM9tWbiJSbV1Nvj9fpLXg_y90J='"',iJyUoSaJ5UCjymuNqoLNgH0Aj2j0YJA33r3SSYXwd_7PShqIo1RCVsts0='3',TUfBfYTgXyBd6M6pTEQz2e0rNvaUD2j1Bcp_iWx7=dashed,FOq2JFOiUHX1ni2mEI5jc3AizkajXCOyFlSUvtk4j7Z5FJXzJKH8rvHj5='c',kmvg004V8sK6L6YVg9raosCWrWU5CCtQVwCOH4z3I7gKAbZmGFHUX='Ñ',vo5ZgEUvVtOW64D0IhQzFGXquiCTiDE8PsLBjQCL9TYugGM5Q=thursday,s5zV2usKqVJA1nenV1tMi7L8OTG0gLYJQAF9hdHZuHdLwsCYhErjk=#23028c,IcWDHNz9WKi_L9dONtK67adD60U9JUBlMJB3ZhA_Gl9k='z',r7t9T6p3Ih3lmn7mT69pnALRDhg2RyudTkJ4kY9YUx='x',Kv_kcdnpq2hJLUeM5X4sgT9r9yfkD7X5yud7Y0kxGYnkQnHIHu0Hm8gyb='O',K1KDOEchpZawFOIzdvksoCfbE_e8mCWaAQZbERvGje8lkDBfsbGglD1DV2l=dayofweek(0),PsCbLNKkeEiTuNofCc7NV12xrwut5zdw9fOElMi7npxTaD8qi68cqx='d',JdDwmIUOxSrfg3e4iSY2fEqpB5eMQMUqSjNVfHBFnQxKZhG2uXUgsfHE5e3='I',jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf='t',VSLP1_sp1W_XeCO1qXCm_9080MWuBq5eizKZb1b8_z3gyh_UHYJ1ybmu=saturday,CsDfgxebTvnUvH7lM7N3m2ysAUJoI_PkKJuvxQTnhxKdIiix='h',Wu0DFfeuJrYouyceqJm8ePFFMc0b2VEBioVTEeYQfAJgx='s',E0x3xktM8JRoEeWOCc7EFkepkPcqBLB_i40drC0toP2='.',RCB8KSDHlZOFiSrvAwSrS07xkEvmA9WJEtknUvpkgNP2rYwHGxIi=thursday,mJvbLQMDMiBkHQs4gsrQh6uGJpTzG3c5FalvOipV3Me9KLDvQFFoD='8',Iahx6DMy0_7avpT7wnrJ1y3nR1r4MOCEJ0uT9w7tp2UuBOsUeATP='&',E6d_T8VVvC_uNR47TvSuhwriVDpOvl234k_oYj_PAK8='!',o4VY1EYRGRPd7I3CP4gHh7uMoCuz5oIn1iG_9hMjZKsyTsXvq3N4ZAZu='i',JyHoxAPnERpUBiv8op35egvwin0g2qXTcKNDpCDJzk5nAVY6pEwK=#0f0f1e,WUJzzn1nTP2b_Y4KFc5dz1RbBdZnhJ7BPKcZi5a5mIY53hoABfJ=saturday,L6akNHIq4sayfVJGUf8CNs2BDD6OGAkyeYLaLemhUjtCtuLMItcwHv='9',NhBIa8RCqW4qwb6eoYKiZCKoRHn87wSonvPLhwqxhM=circles,z9BUoXbwS2Hz9QuguW8u1ajDsv8n2Wgw9cauN1HoZxWSATkRETYj='}',JUuRAwmLWEz1qGKe50Z3vFdBgj11EdmUwi4BkLzVc1NL4UUNbthuJ='+',TIatrXQo5X4CxZp5YFYxODLgsG_zoJGIhEj7jBst4y2=qKr1YAGXuJDcFEbWsDJISVzdLKL4I3vWBe1h6eau1D0phZBDIxNUsppTPm+qKr1YAGXuJDcFEbWsDJISVzdLKL4I3vWBe1h6eau1D0phZBDIxNUsppTPm+qKr1YAGXuJDcFEbWsDJISVzdLKL4I3vWBe1h6eau1D0phZBDIxNUsppTPm+E0x3xktM8JRoEeWOCc7EFkepkPcqBLB_i40drC0toP2+DmMuaSYttz_Ztw3QrNCOAfDBwrRWONpVMVXZf_r2aMo+JdDwmIUOxSrfg3e4iSY2fEqpB5eMQMUqSjNVfHBFnQxKZhG2uXUgsfHE5e3+M6YRrYCnneffiw3m51lNav_HSdnRB9K6YG73ioMdrzT2a5KTOq21+faf7ajrzk_i0UxzhJSkgAqRzZiGFObNaJC_vEHGEkIqv1+li5_GWTSIArsvQ0GYJs5t0rcSsoAApOj2xv6DYQiT3+e6dEORZu_UKZfNVneAm92bxbNYx57GXT4MllsuxM+f6mLmDZpdyyFj9YuPG8Q_lPZD9c9Upuz4jnQZlUwcgjGfG+JdDwmIUOxSrfg3e4iSY2fEqpB5eMQMUqSjNVfHBFnQxKZhG2uXUgsfHE5e3+DmMuaSYttz_Ztw3QrNCOAfDBwrRWONpVMVXZf_r2aMo+ucQW2BjC2isWOqcAVnfZVPWQNLmbGvmzIG3NwxLHXbiLjpcqQ9A43D7IDl+li5_GWTSIArsvQ0GYJs5t0rcSsoAApOj2xv6DYQiT3+E0x3xktM8JRoEeWOCc7EFkepkPcqBLB_i40drC0toP2+e6dEORZu_UKZfNVneAm92bxbNYx57GXT4MllsuxM+Kv_kcdnpq2hJLUeM5X4sgT9r9yfkD7X5yud7Y0kxGYnkQnHIHu0Hm8gyb+gw__OiRjFE8rqMkfQMVQt0bIaRhnkvvNDXLJsXm7z5kj1ts,XkRBbzWQv7g0z_qpPTNsAFuPMYL2u8pCVoP8ZYsi0K=u7KlYrkFx6XAm6hkqRUnoTSD8YbZNHuhPEfxNbG0DqCaaDQN37_lm+u7KlYrkFx6XAm6hkqRUnoTSD8YbZNHuhPEfxNbG0DqCaaDQN37_lm+u7KlYrkFx6XAm6hkqRUnoTSD8YbZNHuhPEfxNbG0DqCaaDQN37_lm+E0x3xktM8JRoEeWOCc7EFkepkPcqBLB_i40drC0toP2+DmMuaSYttz_Ztw3QrNCOAfDBwrRWONpVMVXZf_r2aMo+o4VY1EYRGRPd7I3CP4gHh7uMoCuz5oIn1iG_9hMjZKsyTsXvq3N4ZAZu+k0m6GT3P538HSlUq_uPPe_EUDDZFZWavGCvTL4QkfmxG81hBP+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+li5_GWTSIArsvQ0GYJs5t0rcSsoAApOj2xv6DYQiT3+FOq2JFOiUHX1ni2mEI5jc3AizkajXCOyFlSUvtk4j7Z5FJXzJKH8rvHj5+dj9EvhtgHr6LgISsqTdCtfIEojlelK28Wvq6voG3XlrOaDVTPGNs+o4VY1EYRGRPd7I3CP4gHh7uMoCuz5oIn1iG_9hMjZKsyTsXvq3N4ZAZu+Xpis3JXGi7odLm_avxWrj1lNOgZ59WwFdqH6WULXp_gXcF+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+Wu0DFfeuJrYouyceqJm8ePFFMc0b2VEBioVTEeYQfAJgx+E0x3xktM8JRoEeWOCc7EFkepkPcqBLB_i40drC0toP2+FOq2JFOiUHX1ni2mEI5jc3AizkajXCOyFlSUvtk4j7Z5FJXzJKH8rvHj5+LeNKDF9MgTw1Y6wSeu38pN2iuyn91G7zhU_QU19icdfgeKc6km77m+szuqCKVI48Mc10TOQ9mOwopjTrDTvmXnApPYhXjd1lFNS,yIpcF3Y3UuIrTcUNZCVYXqsHB8cYw1h5MvTZ3fmUn8k=ucQW2BjC2isWOqcAVnfZVPWQNLmbGvmzIG3NwxLHXbiLjpcqQ9A43D7IDl+rz_ZiJcnaPNYfmT4E6vp2mIiXI8OlFjXaqC3rJDjj0XwKshMCvJwcwKyt+JdDwmIUOxSrfg3e4iSY2fEqpB5eMQMUqSjNVfHBFnQxKZhG2uXUgsfHE5e3+li5_GWTSIArsvQ0GYJs5t0rcSsoAApOj2xv6DYQiT3+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+li5_GWTSIArsvQ0GYJs5t0rcSsoAApOj2xv6DYQiT3+e6dEORZu_UKZfNVneAm92bxbNYx57GXT4MllsuxM+f6mLmDZpdyyFj9YuPG8Q_lPZD9c9Upuz4jnQZlUwcgjGfG+JdDwmIUOxSrfg3e4iSY2fEqpB5eMQMUqSjNVfHBFnQxKZhG2uXUgsfHE5e3+DmMuaSYttz_Ztw3QrNCOAfDBwrRWONpVMVXZf_r2aMo+ucQW2BjC2isWOqcAVnfZVPWQNLmbGvmzIG3NwxLHXbiLjpcqQ9A43D7IDl+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+rz_ZiJcnaPNYfmT4E6vp2mIiXI8OlFjXaqC3rJDjj0XwKshMCvJwcwKyt+V8qAlVCh5ZOyW2hvAgRYgNzd8jvFXnBV1XZi5SxRu2rXG3eRIW3jIHvj6XZ+li5_GWTSIArsvQ0GYJs5t0rcSsoAApOj2xv6DYQiT3+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+faf7ajrzk_i0UxzhJSkgAqRzZiGFObNaJC_vEHGEkIqv1+gNkRgCig3sGuNVMgOzgIze8oRA95fgnAMuU9sgDv54mExSUzcC_VZD0+DmMuaSYttz_Ztw3QrNCOAfDBwrRWONpVMVXZf_r2aMo+JdDwmIUOxSrfg3e4iSY2fEqpB5eMQMUqSjNVfHBFnQxKZhG2uXUgsfHE5e3+f6mLmDZpdyyFj9YuPG8Q_lPZD9c9Upuz4jnQZlUwcgjGfG+faf7ajrzk_i0UxzhJSkgAqRzZiGFObNaJC_vEHGEkIqv1+K_rZAL9JE7RyuaB9TDF2hTo3ofNwaY1vcN9H9W1mGMBjqQQx8mTvKhsgdsw+E0x3xktM8JRoEeWOCc7EFkepkPcqBLB_i40drC0toP2+CzbjfxLgjZ8mvZdpeok9FmzUv50GfvDAuXc4G1_e7dZuaXASul1Kmph1slo+e6dEORZu_UKZfNVneAm92bxbNYx57GXT4MllsuxM+LeNKDF9MgTw1Y6wSeu38pN2iuyn91G7zhU_QU19icdfgeKc6km77m+k0m6GT3P538HSlUq_uPPe_EUDDZFZWavGCvTL4QkfmxG81hBP+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+mUFBAomv0x_aY4yFfQjruIdYW8avjPu9RZDFQX9okpSDDh45y55F3cCjpY9q+FOq2JFOiUHX1ni2mEI5jc3AizkajXCOyFlSUvtk4j7Z5FJXzJKH8rvHj5+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+CsDfgxebTvnUvH7lM7N3m2ysAUJoI_PkKJuvxQTnhxKdIiix+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+mUFBAomv0x_aY4yFfQjruIdYW8avjPu9RZDFQX9okpSDDh45y55F3cCjpY9q+P_TQqis5Hg9qid9DjXKRezoGgwtapabgjPKrtkG0HlPTA+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+CsDfgxebTvnUvH7lM7N3m2ysAUJoI_PkKJuvxQTnhxKdIiix+LeNKDF9MgTw1Y6wSeu38pN2iuyn91G7zhU_QU19icdfgeKc6km77m+dj9EvhtgHr6LgISsqTdCtfIEojlelK28Wvq6voG3XlrOaDVTPGNs+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+LeNKDF9MgTw1Y6wSeu38pN2iuyn91G7zhU_QU19icdfgeKc6km77m+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+BJWz42pe1_9l2NAvHlOwCVXLFJTw2ArckzWK3cfoKS5hmwT+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+mUFBAomv0x_aY4yFfQjruIdYW8avjPu9RZDFQX9okpSDDh45y55F3cCjpY9q+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+k0m6GT3P538HSlUq_uPPe_EUDDZFZWavGCvTL4QkfmxG81hBP+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+u7KlYrkFx6XAm6hkqRUnoTSD8YbZNHuhPEfxNbG0DqCaaDQN37_lm+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+x3JcXa_FBjFqicRJEz8FWOlcSd0R8YwNea5nIABCRDeUzjs7hE+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+MlkBRRlTdu57RNWlbSrZ0VZ8Q2iSsIDxqDzbqnhnW8Fx8J6XzZb+CzbjfxLgjZ8mvZdpeok9FmzUv50GfvDAuXc4G1_e7dZuaXASul1Kmph1slo+dzLLzMcAaPD2U_gBZZBt6VyHf8UIG4vJ06cwD5xZxflm_A_R+Xpis3JXGi7odLm_avxWrj1lNOgZ59WwFdqH6WULXp_gXcF+dj9EvhtgHr6LgISsqTdCtfIEojlelK28Wvq6voG3XlrOaDVTPGNs+LeNKDF9MgTw1Y6wSeu38pN2iuyn91G7zhU_QU19icdfgeKc6km77m+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+FOq2JFOiUHX1ni2mEI5jc3AizkajXCOyFlSUvtk4j7Z5FJXzJKH8rvHj5+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+PsCbLNKkeEiTuNofCc7NV12xrwut5zdw9fOElMi7npxTaD8qi68cqx+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+cYcixbkUVPiafMBGmWkhsjTj8_aKjEikoIFL3TvnUWt+MlkBRRlTdu57RNWlbSrZ0VZ8Q2iSsIDxqDzbqnhnW8Fx8J6XzZb+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+TIatrXQo5X4CxZp5YFYxODLgsG_zoJGIhEj7jBst4y2+F0earkWF_97ICRSvo8FDv_96YRTVUbyxZ1RkHqzHOxZzygS7fg,_fAUQL6gyA8nyC6yFL6D4S4mzVWblHfV7ty3Rv_x_BmreRWe=DmMuaSYttz_Ztw3QrNCOAfDBwrRWONpVMVXZf_r2aMo+dj9EvhtgHr6LgISsqTdCtfIEojlelK28Wvq6voG3XlrOaDVTPGNs+LeNKDF9MgTw1Y6wSeu38pN2iuyn91G7zhU_QU19icdfgeKc6km77m+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+FOq2JFOiUHX1ni2mEI5jc3AizkajXCOyFlSUvtk4j7Z5FJXzJKH8rvHj5+jmQSISfemsz1iqV3eyYV0Vz01v4B4A01CZlyrfIbPuf+VBHfdDcmHXXF80KPtoAO5O9awj8WvQYURFnR_BGp+PsCbLNKkeEiTuNofCc7NV12xrwut5zdw9fOElMi7npxTaD8qi68cqx+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+cYcixbkUVPiafMBGmWkhsjTj8_aKjEikoIFL3TvnUWt+MlkBRRlTdu57RNWlbSrZ0VZ8Q2iSsIDxqDzbqnhnW8Fx8J6XzZb+H_RQ8zLa89f2AZrlNbxiyBP6_hsaZ80VYEKXQknfBI54y+XkRBbzWQv7g0z_qpPTNsAFuPMYL2u8pCVoP8ZYsi0K,aaa7lCelvXyPIPy8t68AGttUSElxXoGP4BI4LJb443Vv8LDyD0bQoIeZhW0P=input(defval="Protected by www.PineScripts.com",title="Do not change this:",type=string),z9GzrEXmrop7fV4vW1VgUzzrwN4ar7SeTRvjsIEPeXTZmSO=aaa7lCelvXyPIPy8t68AGttUSElxXoGP4BI4LJb443Vv8LDyD0bQoIeZhW0P,strategy("Yörük",shorttitle="Time Analysis Sar",overlay=true),kitHrHSgbQzNXEP394ABUILQ3ae9h8hOXGv4mGQo=input(title="Coloured Crystals",defval=true,type=bool),Lnsar3bPNOUy4pvpKguwBJ185x8FY1gR9vZ_gxJMi7726svsIBzCo34dgu=50,size=1,JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom=nz(JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom[1],0)==2?0:nz(JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom[1],0)+1,pR2Xtf2Jr9FZnhyetDFEtpbgNWkv8CC3nKbMBJebNo4U2k4n2sxfj2TG=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?high:JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?open:close,WMAouErwmjtwruTqtTFQkXBQdhl9LrkGFBixNAyEyrHv1NUOiEQQt=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?low:JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?open:close,B6K6ycIZZ1a5O0PgwIHX6oOy62SPnmxfj_aUMiFj8lcKUD4XafSxs=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?close:JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?high:open,H6vPa6kjBCiKRzS7oOS_3eDFI7QPkAa27nS9QQiHsurowZwcrvD=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?close:JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?low:open,LaTE7Majfp26QTTzaydQ2gh7Dmn8CvX3vr2XiRyd=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?open:JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?close:high,Yl5PT3ESlD1khHsMSRk27rEBkJyY9bCW95CCMJ8jV=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?open:JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?close:low,p_7XreXNftmjq_No8R_tgdF1_q4b6NtBTeMEQuGo_byv=close>=close[1]?p9AhwpPCgL9Nt8OTX3DtBHnyHkwO5vfahTxqKeStxuzV9OrK4FO:IGznK6g3xPi2MiYPzYokQyiOR5o4F7CGbQ3N1qTKpzN9O,pwk7HlMTbZAnhXbZKJ2snM2LL3bwJLDuKfSd5wb_e7CZi_8VOWT8ezfv=kitHrHSgbQzNXEP394ABUILQ3ae9h8hOXGv4mGQo?p_7XreXNftmjq_No8R_tgdF1_q4b6NtBTeMEQuGo_byv:tm6D8VL5QS6u9QJrCsxpG4oxm0d9XGO4H_TX2573kAobb_YDYdX,s9XR4fGGXFXq9idsrWqHBjsMpXdPow20j_je_y_3jJ6EhIBjz=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?na:p_7XreXNftmjq_No8R_tgdF1_q4b6NtBTeMEQuGo_byv,XW3B5YBJmnqTQIQKDeziOIpRhE22DU2Q5KpaFIFMsg=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?na:p_7XreXNftmjq_No8R_tgdF1_q4b6NtBTeMEQuGo_byv,NotTJ5V776tSeBTYb6exI2ts71pdZ5GI8vPkzE7pATjRr=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==2?na:p_7XreXNftmjq_No8R_tgdF1_q4b6NtBTeMEQuGo_byv,q5cQYFGSOWU_xoa0gyOW2ssxpDdRGhtHDckn82uUHEnIMQE2yEj4iZ=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==0?waHH5rAjClM6qRGDfBR2DNXbOm2DyBsBzzYyS4P14eE7ri:pwk7HlMTbZAnhXbZKJ2snM2LL3bwJLDuKfSd5wb_e7CZi_8VOWT8ezfv,wGatSkza6xPH2cJyEtukU1TFXFRhUt8G_7R_No9oRzRybtud_s9jMyzQ=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==1?waHH5rAjClM6qRGDfBR2DNXbOm2DyBsBzzYyS4P14eE7ri:pwk7HlMTbZAnhXbZKJ2snM2LL3bwJLDuKfSd5wb_e7CZi_8VOWT8ezfv,_3P6obn2T8WMKcq_1qWBfGE98m0HU3lScMoDcRHUdCF1aMmTQfwf6aEjaBu3=JGMjbBNRMP5bKh_fI2o1c7IZXnVgHGxOkukE1P462nfND6yGBVIUsitom==2?waHH5rAjClM6qRGDfBR2DNXbOm2DyBsBzzYyS4P14eE7ri:pwk7HlMTbZAnhXbZKJ2snM2LL3bwJLDuKfSd5wb_e7CZi_8VOWT8ezfv,BPZAANEc8fRcuL6dSmNnX1_CZo6nJK9DVTmVTMNjFTYsW4h=plot(pR2Xtf2Jr9FZnhyetDFEtpbgNWkv8CC3nKbMBJebNo4U2k4n2sxfj2TG,transp=0,linewidth=size,style=line,****=true,color=NotTJ5V776tSeBTYb6exI2ts71pdZ5GI8vPkzE7pATjRr),Zb1xkZK9Il89LpS1nqlKbXlCdJOcCZEfy20A4TndedtU5f=plot(WMAouErwmjtwruTqtTFQkXBQdhl9LrkGFBixNAyEyrHv1NUOiEQQt,transp=0,linewidth=size,style=line,****=true,color=NotTJ5V776tSeBTYb6exI2ts71pdZ5GI8vPkzE7pATjRr),fill(BPZAANEc8fRcuL6dSmNnX1_CZo6nJK9DVTmVTMNjFTYsW4h,Zb1xkZK9Il89LpS1nqlKbXlCdJOcCZEfy20A4TndedtU5f,transp=Lnsar3bPNOUy4pvpKguwBJ185x8FY1gR9vZ_gxJMi7726svsIBzCo34dgu,color=_3P6obn2T8WMKcq_1qWBfGE98m0HU3lScMoDcRHUdCF1aMmTQfwf6aEjaBu3),guU7LEPon1Y7ogNupxzv3ZVhqSJbw0if3AyhyTrXWjaEz7yYtLlR_09=plot(B6K6ycIZZ1a5O0PgwIHX6oOy62SPnmxfj_aUMiFj8lcKUD4XafSxs,transp=0,linewidth=size,style=circles,****=true,color=s9XR4fGGXFXq9idsrWqHBjsMpXdPow20j_je_y_3jJ6EhIBjz),uOKSBBL8yK5QVpfRHL9jV5FcO4sV5HjjPW2Nq6XQlVRX_er6VPAwmq=plot(H6vPa6kjBCiKRzS7oOS_3eDFI7QPkAa27nS9QQiHsurowZwcrvD,transp=0,linewidth=size,style=circles,****=true,color=s9XR4fGGXFXq9idsrWqHBjsMpXdPow20j_je_y_3jJ6EhIBjz),fill(guU7LEPon1Y7ogNupxzv3ZVhqSJbw0if3AyhyTrXWjaEz7yYtLlR_09,uOKSBBL8yK5QVpfRHL9jV5FcO4sV5HjjPW2Nq6XQlVRX_er6VPAwmq,transp=Lnsar3bPNOUy4pvpKguwBJ185x8FY1gR9vZ_gxJMi7726svsIBzCo34dgu,color=q5cQYFGSOWU_xoa0gyOW2ssxpDdRGhtHDckn82uUHEnIMQE2yEj4iZ),QSH9z2grqSGiyliKwiU_Z3F1tnXWTGJN6LEOnqfHlvdN0Tlx2lWPHlLRj=plot(LaTE7Majfp26QTTzaydQ2gh7Dmn8CvX3vr2XiRyd,transp=0,linewidth=size,style=circles,****=true,color=XW3B5YBJmnqTQIQKDeziOIpRhE22DU2Q5KpaFIFMsg),Ddfb4f29Jt4wxfaSSK3pcKRsZCXDKNFSBAVISJhfi0e7kCy=plot(Yl5PT3ESlD1khHsMSRk27rEBkJyY9bCW95CCMJ8jV,transp=0,linewidth=size,style=circles,****=true,color=XW3B5YBJmnqTQIQKDeziOIpRhE22DU2Q5KpaFIFMsg),fill(QSH9z2grqSGiyliKwiU_Z3F1tnXWTGJN6LEOnqfHlvdN0Tlx2lWPHlLRj,Ddfb4f29Jt4wxfaSSK3pcKRsZCXDKNFSBAVISJhfi0e7kCy,transp=Lnsar3bPNOUy4pvpKguwBJ185x8FY1gR9vZ_gxJMi7726svsIBzCo34dgu,color=wGatSkza6xPH2cJyEtukU1TFXFRhUt8G_7R_No9oRzRybtud_s9jMyzQ),nIygynyDXCdXGrOF8lInLfpjuFuW6WZkEmpYKxvmRwYy0yBqFRkF=z9GzrEXmrop7fV4vW1VgUzzrwN4ar7SeTRvjsIEPeXTZmSO,G3aJS_mfSiwGJrVGQuXbMBA3DUM_ozvIjBrrwEGxhXc9yt9Zf=nIygynyDXCdXGrOF8lInLfpjuFuW6WZkEmpYKxvmRwYy0yBqFRkF,iLDSiZ1nAUUfVfHImS1MqboJTVTZtxn0WUqjNDeSK5OI2=G3aJS_mfSiwGJrVGQuXbMBA3DUM_ozvIjBrrwEGxhXc9yt9Zf,mo7pp7lhzCTyu4mNeCr2h7UEiTr2gxY_KyxI958ZBM6ERHTI7oFzI0r=iLDSiZ1nAUUfVfHImS1MqboJTVTZtxn0WUqjNDeSK5OI2==_fAUQL6gyA8nyC6yFL6D4S4mzVWblHfV7ty3Rv_x_BmreRWe,_yn7ttTHoxR6KJngAyd2sWOOdwbBl0DIJDoPC4EMEC8wu=mo7pp7lhzCTyu4mNeCr2h7UEiTr2gxY_KyxI958ZBM6ERHTI7oFzI0r?0:-1,hrv2IIFtLx3JJhdtrlFmFBdFktZzHnXbFpAN9KShCuN=mo7pp7lhzCTyu4mNeCr2h7UEiTr2gxY_KyxI958ZBM6ERHTI7oFzI0r?na:close[_yn7ttTHoxR6KJngAyd2sWOOdwbBl0DIJDoPC4EMEC8wu],plot(hrv2IIFtLx3JJhdtrlFmFBdFktZzHnXbFpAN9KShCuN),zwKllUgrZrbxmM_U4S34k_jmlxiiNVqIeRk9Ra74HGXw_YMRV4RSOmi=close,VDhmznjndtMibnBeW02kdV3n8hZFk5WVxdziGRTUd0vWOV2qeXGfhUd4=high,K4J2jlKNcvtiS1r7W76KICidGq1X45AWL35kuBIiW7GlihW_w3PyesM=VDhmznjndtMibnBeW02kdV3n8hZFk5WVxdziGRTUd0vWOV2qeXGfhUd4+zwKllUgrZrbxmM_U4S34k_jmlxiiNVqIeRk9Ra74HGXw_YMRV4RSOmi,rX6cIln6LMSceWUyljMJJndYKR02K1Nton2nSIirk0uU7n1c=(VDhmznjndtMibnBeW02kdV3n8hZFk5WVxdziGRTUd0vWOV2qeXGfhUd4*open[15])+zwKllUgrZrbxmM_U4S34k_jmlxiiNVqIeRk9Ra74HGXw_YMRV4RSOmi,P8fadzT4TQ_9xeQE3fExvrS1WBtY_99hj0zyq3nLwpGLiqXqb4l7cIe=aaa7lCelvXyPIPy8t68AGttUSElxXoGP4BI4LJb443Vv8LDyD0bQoIeZhW0P=="Protected by www.PineScripts.com"?na:-10000,plot(P8fadzT4TQ_9xeQE3fExvrS1WBtY_99hj0zyq3nLwpGLiqXqb4l7cIe)
// Encrypt Compilation [1838] ---------------------------------------