OPEN-SOURCE SCRIPT

The Profit Screener

61
//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)

Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.