Initial Commit ...
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
///////////////////////////////////////////////////////
|
||||
//
|
||||
// SaherElm IT Center Leledc Level Indicator
|
||||
// ---------------------------------------------
|
||||
// saherelm implementation of above indicator ...
|
||||
//
|
||||
// Maintainer:
|
||||
// ------------
|
||||
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
||||
//
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
//
|
||||
//@version=5
|
||||
indicator(title="SaherElm Leledc Levels Indicator", shorttitle = "XS_LL_IND", overlay = true)
|
||||
|
||||
//
|
||||
// START Inputs ....
|
||||
//
|
||||
exhaustionSwitch = input.bool(defval = true, title = "Show exhaustion Bar point (Arrows)")
|
||||
levelSwitch = input.bool(defval = true, title = "Show exhaustion levels (Lines)")
|
||||
length = input.int(defval = 40, title = "Exhaustions swing length")
|
||||
bars = input.int(defval = 42, title = "Exhaustion bar count")
|
||||
thicknesSwitch = input.int(defval = 7, title ="Line Thickness(Level thickness)")
|
||||
//
|
||||
// END Inputs ....
|
||||
//
|
||||
|
||||
//
|
||||
// START Functions ....
|
||||
//
|
||||
Lelec(bars, len) =>
|
||||
//
|
||||
result = 0
|
||||
bindex = int(na)
|
||||
bindex := nz(bindex[1], 0)
|
||||
sindex = int(na)
|
||||
sindex := nz(sindex[1], 0)
|
||||
|
||||
//
|
||||
bindex := close > close[4] ? bindex + 1 : bindex
|
||||
sindex := close < close[4] ? sindex + 1 : sindex
|
||||
|
||||
//
|
||||
lowest = ta.lowest(low, len)
|
||||
highest = ta.highest(high, len)
|
||||
|
||||
//
|
||||
if bindex > bars and close < open and high >= highest
|
||||
bindex := 0
|
||||
result := -1
|
||||
result
|
||||
else
|
||||
if sindex > bars and close > open and low <= lowest
|
||||
sindex := 0
|
||||
result := 1
|
||||
result
|
||||
//
|
||||
// END Functions ....
|
||||
//
|
||||
|
||||
//
|
||||
// START Calculations ....
|
||||
//
|
||||
//
|
||||
// Out C ...
|
||||
Lelex = Lelec(bars, length)
|
||||
|
||||
//
|
||||
// Out Bar ...
|
||||
highlel = Lelex == -1 ? high : na
|
||||
lowlel = Lelex == 1 ? low : na
|
||||
|
||||
//
|
||||
// Out level ...
|
||||
resistance = float(na)
|
||||
support = float(na)
|
||||
resistance := close < open and Lelex ? high : resistance[1]
|
||||
support := close > open and Lelex ? low : support[1]
|
||||
|
||||
//
|
||||
// Resistanse Color ...
|
||||
resistanseColor = color.red
|
||||
highColor = ta.change(resistance) == 0 ? resistanseColor : na
|
||||
|
||||
//
|
||||
// Support Color ...
|
||||
supportColor = color.lime
|
||||
lowColor = ta.change(support) == 0 ? supportColor : na
|
||||
|
||||
//
|
||||
// Has Signal ...
|
||||
hasSignal = exhaustionSwitch
|
||||
|
||||
//
|
||||
// Up Signals ...
|
||||
upSignal = hasSignal ? lowlel : na
|
||||
|
||||
//
|
||||
// Down Signals ...
|
||||
downSignal = hasSignal ? highlel : na
|
||||
//
|
||||
// END Calculations ....
|
||||
//
|
||||
|
||||
//
|
||||
// START Plots ....
|
||||
//
|
||||
// Plot Bar ...
|
||||
plotshape(hasSignal ? upSignal : na, title = "Up", color = supportColor, location = location.belowbar, style = shape.triangleup, size = size.normal)
|
||||
plotshape(hasSignal ? downSignal : na, title = "Down", color = resistanseColor, location = location.abovebar, style = shape.triangledown, size = size.normal)
|
||||
|
||||
//
|
||||
// Plot level ...
|
||||
plot(levelSwitch ? resistance : na, title = "Reistance Level", style = plot.style_line, color = highColor, linewidth = thicknesSwitch)
|
||||
plot(levelSwitch ? support : na, title = "Support Level", style = plot.style_line, color = lowColor, linewidth = thicknesSwitch)
|
||||
|
||||
//
|
||||
// END Plots ....
|
||||
//
|
||||
|
||||
//
|
||||
// START Alerts ...
|
||||
//
|
||||
alertcondition(lowlel, "Up")
|
||||
alertcondition(highlel, "Down")
|
||||
//
|
||||
// END Alerts ...
|
||||
//
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// TODOS:
|
||||
// -------
|
||||
// - []
|
||||
//////////////////////////////////////////////////////
|
||||
Reference in New Issue
Block a user