كيف يتم حساب الأداء في منصة الفلترة Screener ؟

يتم حساب بيانات أداء منصة الفلترة باستخدام الصيغة:

//@version=5
indicator(title="Screener Performance")

rateOfreturn(ref) =>
	if ref < 0 and close > 0
		na
	else
		(close - ref) * 100 / math.abs(ref)

rr(bb, maxbarsback) =>
	open[maxbarsback] * 0 + bb == 0 ? na : rateOfreturn(open[bb])

perfYTD() =>
	var lastYearOpen = open
	if year > year[1]
		lastYearOpen := open
	rateOfreturn(lastYearOpen)

fastSearchTimeIndex(x, maxbarsback) =>
	mid = 0 * time[maxbarsback]
	right = math.min(bar_index, maxbarsback)
	left = 0
	if time < x
		0
	else
		for i = 0 to 9 by 1
			mid := math.ceil((left + right) / 2)
			if left == right
				break
			else if time[mid] < x
				right := mid
				continue
			else if time[mid] > x
				left := mid
				continue
			else
				break
		mid

week1 = 7
week_ago = timenow - 1000 * 60 * 60 * 24 * week1
week_ago_this_bar = time - 1000 * 60 * 60 * 24 * week1
countOfBarsWeekAgo = fastSearchTimeIndex(week_ago, week1)

month1 = 30
month_ago = timenow - 1000 * 60 * 60 * 24 * month1
countOfBars1MonthAgo = fastSearchTimeIndex(month_ago, month1)

month3 = 90
months3_ago = timenow - 1000 * 60 * 60 * 24 * month3
countOfBars3MonthAgo = fastSearchTimeIndex(months3_ago, month3)

month6 = 180
months6_ago = timenow - 1000 * 60 * 60 * 24 * month6
countOfBars6MonthAgo = fastSearchTimeIndex(months6_ago, month6)

years1 = 365
oneYearAgo = timenow - 1000 * 60 * 60 * 24 * years1
barsCountOneYear = fastSearchTimeIndex(oneYearAgo, years1)

years3 = 365 * 3
years3_ago = timenow - 1000 * 60 * 60 * 24 * years3
countOfBars3YearAgo = fastSearchTimeIndex(years3_ago, years3)

years5 = 365 * 4 + 366
years5_ago = timenow - 1000 * 60 * 60 * 24 * years5
countOfBars5YearAgo = fastSearchTimeIndex(years5_ago, years5)

years10 = (365 * 4 + 366) * 2
years10_ago = timenow - 1000 * 60 * 60 * 24 * years10
countOfBars10YearAgo = fastSearchTimeIndex(years10_ago, years10)

perfYTD = perfYTD()
plot((close - open[4]) / open[4] * 100, title='Perf.5D')
plot(rr(countOfBarsWeekAgo, week1), title='Perf.W')
plot(rr(countOfBars1MonthAgo, month1), title='Perf.1M')
plot(rr(countOfBars3MonthAgo, month3), title='Perf.3M')
plot(rr(countOfBars6MonthAgo, month6), title='Perf.6M')
plot(rr(barsCountOneYear, years1), title='Perf.Y')
plot(rr(countOfBars3YearAgo, years3), title='Perf.3Y')
plot(rr(countOfBars5YearAgo, years5), title='Perf.5Y')
plot(rr(countOfBars10YearAgo, years10), title='Perf.10Y')
plot(perfYTD, title='Perf.YTD')
J

 ملاحظة: تختلف قيم هذا البرنامج النصي في التاريخ والوقت الفعلي بسبب الوقت ، انظر

https://www.tradingview.com/pine-script-docs/en/v4/essential/Indicator_repainting.html

بالنسبة للعرض المرئي، يمكنك إضافة هذا البرنامج النصي إلى الرسم البياني الخاص بك من خلال محرر Pine باستخدام الإطار الزمني اليومي للمخطط. سيظهر مؤشر على الرسم البياني ، ستُظهر مخططاته القيم لكل نوع من أنواع الأداء.

التغيير٪ مقابل الأداء٪: 

لنفترض أن اليوم هو الثلاثاء. التغيير الأسبوعي يحسب الفرق بين الإغلاق الحالي (الثلاثاء) والإغلاق من الأسبوع الماضي (سعر الإغلاق ليوم الجمعة السابقة). الأداء الأسبوعي يحسب الفرق بين الإغلاق الحالي (الثلاثاء) والإغلاق من أسبوع مضى بالضبط (الثلاثاء السابق).