# //
# // @author LazyBear
# //
# // List of my public indicators: http://bit.ly/1LQaPK8
# // List of my app-store indicators: http://blog.tradingview.com/?p=970
# //
# study(title="DecisionPoint Price Momentum Oscillator [LazyBear]", shorttitle="DPMO_LB")
declare lower;
script nz {
input x = 1;
input y = 0;
def ret = if x != 0 then x else y;
plot nz = ret;
}
# src=input(close, title="Source")
input src = CLOSE;
# length1=input(35, title="First Smoothing")
input length1 = 35;
# length2=input(20, title="Second Smoothing")
input length2 = 20;
# siglength=input(10, title="Signal Smoothing")
input siglength = 10;
# fr=input(true, title="Fill Region")
# ehc=input(false, title="Enable Histo Color")
# ebc=input(false, title="Enable Bar Colors")
# soh=input(false, title="Show Only Histo")
# slvl=input(false, title="Show OB/OS Levels")
# oblvl=input(2.5, title="OB Level"), oslvl=input(-2.5, title="OS Level")
input oblv1 = 2.5;
input oslv1 = -2.5;
# calc_csf(src, length) =>
# sm = 2.0/length
script calc_csf {
input src = CLOSE;
input length = 10;
def sm = 2 / length;
def csf = (src - nz(csf[1])) * sm + nz(csf[1]);
plot returnVal = csf;
}
# csf=(src - nz(csf[1])) * sm + nz(csf[1])
# csf
# i=(src/nz(src[1], src))*100
def i = (src / nz( src[1], src )) * 100;
# pmol2=calc_csf(i-100, length1)
def pmol2 = calc_csf(i - 100, length1);
# pmol=calc_csf( 10 * pmol2, length2)
def pmol = calc_csf( 10 * pmol2, length2);
# pmols=ema(pmol, siglength)
def pmols = MovAvgExponential(pmol, siglength);
# d=pmol-pmols
def d = pmol - pmols;
# duml=plot(not soh and fr?(d>0?pmol:pmols):na, style=circles, color=gray, linewidth=0, title="DummyL")
def dum1 = if d > 0 then pmol else pmols;
# plot(0, title="MidLine")
plot MidLine = 0;
Midline.SetDefaultColor(color.gray);
# hc=d>0?d>d[1]?lime:green:d<d[1]?red:eek:range
# plot(d, style=columns, color=ehc?hc:gray, transp=80, title="Histo")
plot Histo = d;
Histo.SetDefaultColor(color.light_gray);
Histo.SetPaintingStrategy(PaintingStrategy.SQUARED_HISTOGRAM);
# sigl=plot(soh?na:pmols, title="PMO Signal", color=gray, linewidth=2, title="Signal")
plot PMOSignal = pmols;
PMOSignal.SetDefaultColor(Color.GRAY);
# mdl=plot(soh?na:pmol, title="PMO", color=black, linewidth=2, title="PMO")
plot PMO = pmol;
PMO.SetDefaultColor(Color.BLACK);
AddCloud(PMO, PMOSignal, color.green, color.red);
# fill(duml, sigl, green, transp=70, title="PosFill")
# fill(duml, mdl, red, transp=70, title="NegFill")
# barcolor(ebc?hc:na)
# plot(not soh and slvl?oblvl:na, title="OB Level", color=gray, linewidth=2)
# plot(not soh and slvl?oslvl:na, title="OS Level", color=gray, linewidth=2)