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)
نص برمجي مفتوح المصدر
بروح TradingView الحقيقية، قام مبتكر هذا النص البرمجي بجعله مفتوح المصدر، بحيث يمكن للمتداولين مراجعة وظائفه والتحقق منها. شكرا للمؤلف! بينما يمكنك استخدامه مجانًا، تذكر أن إعادة نشر الكود يخضع لقواعد الموقع الخاصة بنا.
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.
نص برمجي مفتوح المصدر
بروح TradingView الحقيقية، قام مبتكر هذا النص البرمجي بجعله مفتوح المصدر، بحيث يمكن للمتداولين مراجعة وظائفه والتحقق منها. شكرا للمؤلف! بينما يمكنك استخدامه مجانًا، تذكر أن إعادة نشر الكود يخضع لقواعد الموقع الخاصة بنا.
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.