108 lines
2.8 KiB
Plaintext
108 lines
2.8 KiB
Plaintext
///////////////////////////////////////////////////////
|
|
//
|
|
// SaherElm IT Center VBM Buy Sell Indicator
|
|
// ---------------------------------------------
|
|
// saherelm implementation of above indicator ...
|
|
//
|
|
// Maintainer:
|
|
// ------------
|
|
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
|
//
|
|
//////////////////////////////////////////////////////
|
|
|
|
//
|
|
//@version=5
|
|
indicator(title="SaherElm VBM Buy Sell Indicator", shorttitle = "XS_VBMBS_IND", overlay = true)
|
|
|
|
//
|
|
// START Inputs ....
|
|
//
|
|
VBMBSFactor = input.int(defval = 4, minval = 1, maxval = 100, title = "Factor")
|
|
VBMBSPd = input.int(defval = 7, minval = 1, maxval = 100, title = "Period")
|
|
//
|
|
// END Inputs ....
|
|
//
|
|
|
|
//
|
|
// START Functions ....
|
|
//
|
|
//
|
|
// END Functions ....
|
|
//
|
|
|
|
//
|
|
// START Calculations ....
|
|
//
|
|
var bullishColor = color.lime
|
|
var bearishColor = color.red
|
|
|
|
//
|
|
VBMBSUp = hl2 - (VBMBSFactor * ta.atr(VBMBSPd))
|
|
VBMBSDown = hl2 + (VBMBSFactor * ta.atr(VBMBSPd))
|
|
|
|
//
|
|
// Trend Up ...
|
|
float VBMBSTrendUp = na
|
|
VBMBSTrendUp := close[1] > VBMBSTrendUp[1] ? math.max(VBMBSUp, VBMBSTrendUp[1]) : VBMBSUp
|
|
|
|
//
|
|
// Trend Down ...
|
|
float VBMBSTrendDown = na
|
|
VBMBSTrendDown := close[1] < VBMBSTrendDown[1] ? math.min(VBMBSDown, VBMBSTrendDown[1]) : VBMBSDown
|
|
|
|
//
|
|
float VBMBSTrend = na
|
|
VBMBSTrend := close > VBMBSTrendDown[1] ? 1 : close < VBMBSTrendUp[1] ? -1 : nz(VBMBSTrend[1], 1)
|
|
|
|
//
|
|
VBMBSMACD = VBMBSTrend == 1 ? VBMBSTrendUp : VBMBSTrendDown
|
|
|
|
//
|
|
VBMBSLinecolor = VBMBSTrend == 1 ? bullishColor : bearishColor
|
|
|
|
//
|
|
VBMBSUpArrow = ta.cross(close, VBMBSMACD) and close > VBMBSMACD
|
|
VBMBSDownArrow = ta.cross(VBMBSMACD, close) and close < VBMBSMACD
|
|
|
|
//
|
|
VBMBSLongSignal = VBMBSTrend == 1 and VBMBSTrend[1] == -1 ? VBMBSTrend : na
|
|
VBMBSHasLongSignal = not na (VBMBSLongSignal)
|
|
|
|
//
|
|
VBMBSShortSignal = VBMBSTrend == -1 and VBMBSTrend[1] == 1 ? VBMBSTrend : na
|
|
VBMBSHasShortSignal = not na (VBMBSShortSignal)
|
|
|
|
//
|
|
VBMBSHasSignal = VBMBSHasLongSignal or VBMBSHasShortSignal
|
|
//
|
|
// END Calculations ....
|
|
//
|
|
|
|
//
|
|
// START Plots ....
|
|
//
|
|
plot(series = VBMBSMACD, color = VBMBSLinecolor , style = plot.style_line, linewidth = 2, title = "B/S Line")
|
|
|
|
//
|
|
plotshape(series = VBMBSUpArrow, title = "Up Arrow", style = shape.triangleup, location = location.belowbar, color = bullishColor)
|
|
plotshape(series = VBMBSDownArrow, title = "Down Arrow", style = shape.triangledown, location = location.abovebar, color = bearishColor)
|
|
|
|
//
|
|
plotarrow(series = VBMBSHasLongSignal ? VBMBSLongSignal : na, title = "Up Entry Arrow", colorup = bullishColor, maxheight = 40, minheight = 30)
|
|
plotarrow(series = VBMBSHasShortSignal ? VBMBSShortSignal : na, title = "Down Entry Arrow", colordown = bearishColor, maxheight = 40, minheight = 30)
|
|
//
|
|
// END Plots ....
|
|
//
|
|
|
|
//
|
|
// START Alerts ...
|
|
//
|
|
// END Alerts ...
|
|
//
|
|
|
|
//////////////////////////////////////////////////////
|
|
// TODOS:
|
|
// -------
|
|
// - []
|
|
//////////////////////////////////////////////////////
|