-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathdemarker.pine
40 lines (30 loc) · 1.81 KB
/
demarker.pine
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//@version=4
// Copyright (c) 2018-present, Alex Orekhov (everget)
// DeMarker script may be freely distributed under the terms of the GPL-3.0 license.
study("DeMarker", shorttitle="DeMarker")
length = input(title="Length", type=input.integer, defval=14)
maType = input(title="Smoothing Type", defval="SMA", options=["EMA", "SMA", "VWMA", "WMA"])
obLevel = input(title="Overbought Level", defval=70)
osLevel = input(title="Oversold Level", defval=30)
highlightBreakouts = input(title="Highlight Overbought/Oversold Breakouts ?", type=input.bool, defval=true)
_ma(src, length) =>
maType == "EMA" ? ema(src, length) :
maType == "VWMA" ? vwma(src, length) :
maType == "WMA" ? wma(src, length) :
sma(src, length)
demax = max(change(high), 0)
demin = -min(change(low), 0)
demarker = 100 * _ma(demax, length) / (_ma(demax, length) + _ma(demin, length))
demarkerColor = demarker > obLevel ? #0ebb23 : demarker < osLevel ? color.red : #f4b77d
plot(demarker, title="DeMarker", linewidth=2, color=demarkerColor, transp=0)
transparent = color.new(color.white, 100)
maxLevelPlot = hline(100, title="Max Level", linestyle=hline.style_dotted, color=transparent)
obLevelPlot = hline(obLevel, title="Overbought Level", linestyle=hline.style_dotted)
hline(50, title="Middle Level", linestyle=hline.style_dotted)
osLevelPlot = hline(osLevel, title="Oversold Level", linestyle=hline.style_dotted)
minLevelPlot = hline(0, title="Min Level", linestyle=hline.style_dotted, color=transparent)
fill(obLevelPlot, osLevelPlot, color=color.purple, transp=95)
obFillColor = demarker > obLevel and highlightBreakouts ? color.green : transparent
osFillColor = demarker < osLevel and highlightBreakouts ? color.red : transparent
fill(maxLevelPlot, obLevelPlot, color=obFillColor, transp=90)
fill(minLevelPlot, osLevelPlot, color=osFillColor, transp=90)