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