Takipçi Performans verileri aşağıdaki formül kullanılarak hesaplanır:
//@version=5
indicator(title="Screener Performance")
fastSearchN(_xs, x, maxbarsback) =>// xs - sorted, ascending
xs = _xs if bar_index == 0
xs += xs[maxbarsback] * 0// max_bars_back
left = 0
right = math.min(bar_index, maxbarsback)
mid = 0if xs < x 0elsefor i = 0 to 9 by 1
mid := math.ceil((left + right) / 2)if left == right breakelse if xs[mid] < x right := mid continueelse if xs[mid] > x left := mid continueelsebreak
mid years5 = 365 * 4 + 366
years5_ago = timenow - 1000 * 60 * 60 * 24 * years5 countOfBars5YearAgo = fastSearchN(time, years5_ago, years5)
weeks52 = 7 * 52
weeks52_ago = timenow - 1000 * 60 * 60 * 24 * weeks52 countOfBars52WeekAgo = fastSearchN(time, weeks52_ago, weeks52)
month6 = 180
months6_ago = timenow - 1000 * 60 * 60 * 24 * month6 countOfBars6MonthAgo = fastSearchN(time, months6_ago, month6)
month3 = 90
months3_ago = timenow - 1000 * 60 * 60 * 24 * month3 countOfBars3MonthAgo = fastSearchN(time, months3_ago, month3)
month1 = 30
month_ago = timenow - 1000 * 60 * 60 * 24 * month1 month_ago_this_bar = time - 1000 * 60 * 60 * 24 * month1 countOfBars1MonthAgo = fastSearchN(time, month_ago, month1)
countOfBars1MonthAgoThisBar = fastSearchN(time, month_ago_this_bar, month1)
week1 = 7
week_ago = timenow - 1000 * 60 * 60 * 24 * week1 week_ago_this_bar = time - 1000 * 60 * 60 * 24 * week1 countOfBarsWeekAgo = fastSearchN(time, week_ago, week1)
countOfBarsWeekAgoThisBar = fastSearchN(time, week_ago_this_bar, week1)// performance
rateOfreturn(v1, v2) =>(v1 - v2) * 100 / math.abs(v2)
rr(_bb, maxbarsback) =>
bb = _bb if bar_index == 0
bb += math.round(open[maxbarsback] * 0)// max_bars_backif bb == 0
na else
rof = rateOfreturn(close, open[bb])
rof
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(countOfBars52WeekAgo, weeks52), title="Perf.Y")
plot(rr(countOfBars5YearAgo, years5), title="Perf.5Y")
var lastYearOpen = open
if year > year[1]
lastYearOpen := open[1]
plot(rateOfreturn(close, lastYearOpen), title="Perf.YTD")
JavaNot: Bu komut dosyası değerleri, timenow nedeniyle geçmişte ve gerçek zamanlı olarak farklıdır, https://tr.tradingview.com/pine-script-docs/en/v4/essential/Indicator_repainting.html
Görsel ekranlar için, grafiğin günlük zaman dilimini kullanarak bu komut dosyasını Pine Editor aracılığıyla grafiğinize ekleyebilirsiniz. Grafikte, grafikleri her performans türü için değerleri gösterecek bir gösterge görünecektir.
Değişim % ve Performans %:
Diyelim ki bugün Salı. Haftalık Değişim, geçerli kapanış (Salı) ile geçen haftanın kapanışı (önceki Cuma gününün kapanış fiyatı) arasındaki farkı hesaplar. Haftalık Performans, geçerli kapanış (Salı) ile bir hafta önceki açık kapanış (önceki Salı) arasındaki farkı tam olarak hesaplar.