OPEN-SOURCE SCRIPT
The Profit Screener

//version=6
indicator(title="Profit Screener", shorttitle="Profit Screener", overlay=true)
//========================= ADR PART =========================//
// Current day ka open
dayOpen = request.security(syminfo.tickerid, "D", open[0], lookahead=barmerge.lookahead_on)
// Previous days ka range
r1 = request.security(syminfo.tickerid, "D", high[1] - low[1], lookahead=barmerge.lookahead_on)
r2 = request.security(syminfo.tickerid, "D", high[2] - low[2], lookahead=barmerge.lookahead_on)
r3 = request.security(syminfo.tickerid, "D", high[3] - low[3], lookahead=barmerge.lookahead_on)
r4 = request.security(syminfo.tickerid, "D", high[4] - low[4], lookahead=barmerge.lookahead_on)
r5 = request.security(syminfo.tickerid, "D", high[5] - low[5], lookahead=barmerge.lookahead_on)
r6 = request.security(syminfo.tickerid, "D", high[6] - low[6], lookahead=barmerge.lookahead_on)
r7 = request.security(syminfo.tickerid, "D", high[7] - low[7], lookahead=barmerge.lookahead_on)
r8 = request.security(syminfo.tickerid, "D", high[8] - low[8], lookahead=barmerge.lookahead_on)
r9 = request.security(syminfo.tickerid, "D", high[9] - low[9], lookahead=barmerge.lookahead_on)
r10 = request.security(syminfo.tickerid, "D", high[10] - low[10], lookahead=barmerge.lookahead_on)
// ADR averages
adr_10 = (r1+r2+r3+r4+r5+r6+r7+r8+r9+r10) / 10
adr_5 = (r1+r2+r3+r4+r5) / 5
// Plotting ADR (same day par)
adrhigh10 = plot(dayOpen + adr_10/2, title="ADR High10", style=plot.style_circles, color=color.red, linewidth=2)
adrlow10 = plot(dayOpen - adr_10/2, title="ADR Low10", style=plot.style_circles, color=color.green, linewidth=2)
adrhigh5 = plot(dayOpen + adr_5/2, title="ADR High5", style=plot.style_circles, color=color.red, linewidth=2)
adrlow5 = plot(dayOpen - adr_5/2, title="ADR Low5", style=plot.style_circles, color=color.green, linewidth=2)
fill(adrlow10, adrlow5, color=color.new(color.lime, 60))
fill(adrhigh10, adrhigh5, color=color.new(color.maroon, 60))
//========================= EMA PART =========================//
len = input.int(9, minval=1, title="EMA Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.ema(src, len)
plot(out, title="EMA", color=color.blue, offset=offset)
// --- Smoothing Options
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected."
maTypeInput = input.string("None", "Type", options=["None","SMA","SMA + Bollinger Bands","EMA","SMMA (RMA)","WMA","VWMA"], group=GRP)
maLengthInput = input.int(14, "Length", group=GRP)
bbMultInput = input.float(2.0, "BB StdDev", minval=0.001, maxval=50, step=0.5, tooltip=TT_BB, group=GRP)
isBB = maTypeInput == "SMA + Bollinger Bands"
enableMA = maTypeInput != "None"
ma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
smoothingMA = enableMA ? ma(out, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(out, maLengthInput) * bbMultInput : na
plot(smoothingMA, "EMA-based MA", color=color.yellow, display= enableMA ? display.all : display.none)
bbUpperBand = plot(smoothingMA + smoothingStDev, "Upper BB", color=color.green, display=isBB ? display.all : display.none)
bbLowerBand = plot(smoothingMA - smoothingStDev, "Lower BB", color=color.green, display=isBB ? display.all : display.none)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na)
indicator(title="Profit Screener", shorttitle="Profit Screener", overlay=true)
//========================= ADR PART =========================//
// Current day ka open
dayOpen = request.security(syminfo.tickerid, "D", open[0], lookahead=barmerge.lookahead_on)
// Previous days ka range
r1 = request.security(syminfo.tickerid, "D", high[1] - low[1], lookahead=barmerge.lookahead_on)
r2 = request.security(syminfo.tickerid, "D", high[2] - low[2], lookahead=barmerge.lookahead_on)
r3 = request.security(syminfo.tickerid, "D", high[3] - low[3], lookahead=barmerge.lookahead_on)
r4 = request.security(syminfo.tickerid, "D", high[4] - low[4], lookahead=barmerge.lookahead_on)
r5 = request.security(syminfo.tickerid, "D", high[5] - low[5], lookahead=barmerge.lookahead_on)
r6 = request.security(syminfo.tickerid, "D", high[6] - low[6], lookahead=barmerge.lookahead_on)
r7 = request.security(syminfo.tickerid, "D", high[7] - low[7], lookahead=barmerge.lookahead_on)
r8 = request.security(syminfo.tickerid, "D", high[8] - low[8], lookahead=barmerge.lookahead_on)
r9 = request.security(syminfo.tickerid, "D", high[9] - low[9], lookahead=barmerge.lookahead_on)
r10 = request.security(syminfo.tickerid, "D", high[10] - low[10], lookahead=barmerge.lookahead_on)
// ADR averages
adr_10 = (r1+r2+r3+r4+r5+r6+r7+r8+r9+r10) / 10
adr_5 = (r1+r2+r3+r4+r5) / 5
// Plotting ADR (same day par)
adrhigh10 = plot(dayOpen + adr_10/2, title="ADR High10", style=plot.style_circles, color=color.red, linewidth=2)
adrlow10 = plot(dayOpen - adr_10/2, title="ADR Low10", style=plot.style_circles, color=color.green, linewidth=2)
adrhigh5 = plot(dayOpen + adr_5/2, title="ADR High5", style=plot.style_circles, color=color.red, linewidth=2)
adrlow5 = plot(dayOpen - adr_5/2, title="ADR Low5", style=plot.style_circles, color=color.green, linewidth=2)
fill(adrlow10, adrlow5, color=color.new(color.lime, 60))
fill(adrhigh10, adrhigh5, color=color.new(color.maroon, 60))
//========================= EMA PART =========================//
len = input.int(9, minval=1, title="EMA Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.ema(src, len)
plot(out, title="EMA", color=color.blue, offset=offset)
// --- Smoothing Options
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected."
maTypeInput = input.string("None", "Type", options=["None","SMA","SMA + Bollinger Bands","EMA","SMMA (RMA)","WMA","VWMA"], group=GRP)
maLengthInput = input.int(14, "Length", group=GRP)
bbMultInput = input.float(2.0, "BB StdDev", minval=0.001, maxval=50, step=0.5, tooltip=TT_BB, group=GRP)
isBB = maTypeInput == "SMA + Bollinger Bands"
enableMA = maTypeInput != "None"
ma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
smoothingMA = enableMA ? ma(out, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(out, maLengthInput) * bbMultInput : na
plot(smoothingMA, "EMA-based MA", color=color.yellow, display= enableMA ? display.all : display.none)
bbUpperBand = plot(smoothingMA + smoothingStDev, "Upper BB", color=color.green, display=isBB ? display.all : display.none)
bbLowerBand = plot(smoothingMA - smoothingStDev, "Lower BB", color=color.green, display=isBB ? display.all : display.none)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na)
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.