كيف يتم حساب الأداء في منصة الفلترة Screener ؟
يتم حساب بيانات أداء منصة الفلترة باستخدام الصيغة:
Perf. = (currentClose – openDaysAgo) × 100 / abs(openDaysAgo)Javaحيث:
- CurrentClose - أحدث سعر إغلاق
- OpenDaysago - سعر الافتتاح للشريط السابق المقابل، والذي يتم تحديده من خلال الفاصل الزمني المحدد (على سبيل المثال، أسبوع واحد، 3 أشهر، 365 يومًا)
مثال
اليوم هو الثلاثاء، دعنا نحسب Perf.W:
- خذ سعر الإغلاق اليوم.
- اطرح سعر افتتاح البار اليومي يوم الثلاثاء الماضي
- اضرب الفرق في 100
- اقسم النتيجة على القيمة المطلقة لسعر فتح الشريط اليومي يوم الثلاثاء الماضي
فيما يلي صيغة تفصيلية للقرارات الأكثر استخدامًا، مع مراعاة التفاصيل مثل عدد الأيام في سنة كبيسة.
//@version=6
indicator("Screener Performance")// first bar's timestamp in pine history
var first_bar_time = time / 1000// Performance helper functions
rateOfreturn(ref) =>if ref < 0 and close > 0
na else(close - ref) * 100 / math.abs(ref)
rr(bb, maxbarsback) =>nz(open[maxbarsback] * 0) + bb == 0 ? na : rateOfreturn(open[bb])
perfYTD() =>if year != year(timenow)
na elsevar lastYearOpen = openif year > year[1]
lastYearOpen := openrateOfreturn(lastYearOpen)fastSearchTimeIndex(x, maxbarsback) =>
mid = 0 * time[maxbarsback]
right = math.min(bar_index, maxbarsback)
left = 0if x/1000 <= first_bar_time bar_index else if time < x 0elsefor i = 0 to 10
mid := math.ceil((left + right) / 2)if left == right breakelse if time[mid] < x right := mid continueelse if time[mid] > x left := mid continueelsebreak
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)// Perf.<W | 1M | 3M | 6M | Y | 5Y | 10Y | YTD>
fiveDays = 5
fiveDaysAgo = timenow - 1000 * 60 * 60 * 24 * fiveDays countOfBarsFiveDaysAgo = fastSearchTimeIndex(fiveDaysAgo, fiveDays)
perfYTD = perfYTD()
plot(rr(countOfBarsFiveDaysAgo, fiveDays), 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')Javaملاحظة: تختلف قيم هذا البرنامج النصي في التاريخ والوقت الفعلي بسبب timenow، انظر هنا .
بالنسبة للعروض المرئية، يمكنك إضافة هذا البرنامج النصي إلى المخطط الخاص بك من خلال Pine Editor باستخدام الإطار الزمني اليومي للمخطط. سيظهر مؤشر على الرسم البياني، حيث ستعرض مخططاته قيم كل نوع من أنواع الأداء.
التغيير% مقابل الأداء%:
لنفترض أن اليوم هو الثلاثاء.
التغيير الأسبوعي - الفرق بين الإغلاق الحالي (الثلاثاء) والإغلاق من الأسبوع الماضي (سعر إغلاق يوم الجمعة السابق).
الأداء الأسبوعي - الفرق بين الإغلاق الحالي (الثلاثاء) والفتح منذ أسبوع بالضبط (الثلاثاء السابق).