diff --git a/xSamples/indicators/atr.stop.loss.finder.verified.pine b/xSamples/indicators/atr.stop.loss.finder.verified.pine new file mode 100644 index 0000000..c535dd2 --- /dev/null +++ b/xSamples/indicators/atr.stop.loss.finder.verified.pine @@ -0,0 +1,47 @@ +//@version=4 +study(title="Average True Range Stop Loss Finder", shorttitle="ATR", overlay=true) +length = input(title="Length", defval=14, minval=1) +smoothing = input(title="Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"]) +m = input(1.5, "Multiplier") +src1 = input(high) +src2 = input(low) +pline = input(true, "Show Price Lines") +col1 = input(color.blue, "ATR Text Color") +col2 = input(color.teal, "Low Text Color",inline ="1") +col3 = input(color.red, "High Text Color",inline ="2") + +collong = input(color.teal, "Low Line Color",inline ="1") +colshort = input(color.red, "High Line Color",inline ="2") + +ma_function(source, length) => + if smoothing == "RMA" + rma(source, length) + else + if smoothing == "SMA" + sma(source, length) + else + if smoothing == "EMA" + ema(source, length) + else + wma(source, length) + +a = ma_function(tr(true), length) * m +x = ma_function(tr(true), length) * m + src1 +x2 = src2 - ma_function(tr(true), length) * m + +p1 = plot(x, title = "ATR Short Stop Loss", color= colshort, transp=20, trackprice = pline ? true : false) +p2 = plot(x2, title = "ATR Long Stop Loss", color= collong, transp=20, trackprice = pline ? true : false) + +var table Table = table.new(position.bottom_center, 3, 1, border_width = 3) + +f_fillCell(_table, _column, _row, _value, _timeframe) => + + _cellText = _timeframe+ tostring(_value, "#.#") + table.cell(_table, _column, _row, _cellText, text_color = col1) + table.cell_set_text_color(Table, 1, 0, color.new(col3, transp = 0)) + table.cell_set_text_color(Table, 2, 0, color.new(col2, transp = 0)) + +if barstate.islast + f_fillCell(Table, 0, 0, a, "ATR: " ) + f_fillCell(Table, 1, 0, x, "H: " ) + f_fillCell(Table, 2, 0, x2, "L: " ) diff --git a/xSamples/indicators/parabolic.sar.everget.pine b/xSamples/indicators/parabolic.sar.everget.pine new file mode 100644 index 0000000..e772461 --- /dev/null +++ b/xSamples/indicators/parabolic.sar.everget.pine @@ -0,0 +1,39 @@ +//@version=4 +// Copyright (c) 2019-present, Alex Orekhov (everget) +// Parabolic SAR script may be freely distributed under the terms of the GPL-3.0 license. +study("Parabolic SAR", shorttitle="PSAR", overlay=true) + +start = input(title="Start", type=input.float, step=0.001, defval=0.02) +increment = input(title="Increment", type=input.float, step=0.001, defval=0.02) +maximum = input(title="Maximum", type=input.float, step=0.01, defval=0.2) +width = input(title="Point Width", type=input.integer, minval=1, defval=2) +highlightStartPoints = input(title="Highlight Start Points ?", type=input.bool, defval=true) +showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true) +highlightState = input(title="Highlight State ?", type=input.bool, defval=true) + +psar = sar(start, increment, maximum) +dir = psar < close ? 1 : -1 + +psarColor = dir == 1 ? #3388bb : #fdcc02 +psarPlot = plot(psar, title="PSAR", style=plot.style_circles, linewidth=width, color=psarColor, transp=0) + +var color longColor = color.green +var color shortColor = color.red + +buySignal = dir == 1 and dir[1] == -1 +plotshape(buySignal and highlightStartPoints ? psar : na, title="Long Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0) +plotshape(buySignal and showLabels ? psar : na, title="Buy Label", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=longColor, textcolor=color.white, transp=0) + +sellSignal = dir == -1 and dir[1] == 1 +plotshape(sellSignal and highlightStartPoints ? psar : na, title="Short Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0) +plotshape(sellSignal and showLabels ? psar : na, title="Sell Label", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=shortColor, textcolor=color.white, transp=0) + +midPricePlot = plot(ohlc4, title="", display=display.none) + +fillColor = highlightState ? (dir == 1 ? longColor : shortColor) : na +fill(midPricePlot, psarPlot, title="Trade State Filling", color=fillColor) + +changeCond = dir != dir[1] +alertcondition(changeCond, title="Alert: PSAR Direction Change", message="PSAR has changed direction!") +alertcondition(buySignal, title="Alert: PSAR Long", message="PSAR Long") +alertcondition(sellSignal, title="Alert: PSAR Short", message="PSAR Sell")