Files
xPineScript/xIndicators/x-saherelm.vbm.buy.sell.pine
2024-01-25 04:07:49 +03:30

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:
// -------
// - []
//////////////////////////////////////////////////////