OPEN-SOURCE SCRIPT

The Profit Screener

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

Thông báo miễn trừ trách nhiệm

Thông tin và ấn phẩm không có nghĩa là và không cấu thành, tài chính, đầu tư, kinh doanh, hoặc các loại lời khuyên hoặc khuyến nghị khác được cung cấp hoặc xác nhận bởi TradingView. Đọc thêm trong Điều khoản sử dụng.